关于javascript,第一个重要的概念是变量,变量的工作机制是javascript的基本特征。事实上,变量是一种标识符。本文将详细介绍变量和标识符。
定义
标识符是一个名字,用来命名变量、函数、属性和参数,或者标记一些循环语句中的跳转位置。
//变量var Identifier=123//属性(新对象)。标识符=' test//函数和参数函数标识符名称(标识符1){ };//跳转标记标识符: FOr(var I=0;i5;I){ if(I==3){ break Identifier;}}在日常生活中,有些事情是固定的,有些事情是会改变的。例如,一个人的名字和生日是固定的,但他的心情和年龄会随着时间而变化。人们称之为会改变变量的东西。
当程序需要保存一个值以备将来使用时,它会将其分配给一个变量。变量是用于保存值的占位符,对值的引用可以通过变量的名称获得。
赋名规则
在词法结构的文章中,我们介绍了javascript是一种区分字母大小写的语言,和其他任何编程语言一样,javascript保留了一些标识符供自己使用,保留的单词不能作为普通的标识符使用。
[注意]保留字包括关键字、未来保留字、空文字和布尔文字。
word reservedword :关键字futureservedword null文字布尔型JavaScript标识符名称允许包含字母、数字、美元符号和下划线(但第一个字符不允许是数字)。
//错误演示6num //不能以数字%sum开头//不能以除(_ $)以外的特殊符号开头,如(%)/等。)sum num //不能以除(_ $)以外的特殊符号开头,如(%)/等。)javascript允许整组Unicode字符中的字母和数字(包括中文)出现在标识符中。因此,程序员也可以使用非英语语言或数学符号来编写标识符。
Var测试文本=' test[注意]为了便于移植和编写,我们通常不使用扩展ASCII或Unicode字符。
通常,驼峰格式是命名标识符的首选格式,第一个字母小写,其余每个单词的第一个字母大写。
var myMoodToday=' happy对于不同的数据类型,javascript为标识符名称建立了命名规则。
类型示例数组(Array) a aItems boolean b bis完整的浮点数(Float) f fPrice函数fn fn处理程序Integer(整数)。oDIv1正则表达式(regexp)的Iitemcount对象(object)关于电子邮件检查字符串(string)的sUserName变量()variant v变量声明。
声明
在javascript中,var(variable)应该在使用之前声明,变量是通过使用关键字var(variable的缩写)来声明的。
风险值I;var和;也可以用var关键字声明多个变量。
var i,sum估价
将值存储到变量中的操作称为赋值。赋值一个变量后,我们说这个变量包含值。
第一次给变量赋值的过程叫做初始化。
我们可以将变量的初始赋值与变量声明一起编写。
var message=' hellovar i=0,j=0,k=0;如果变量没有在var声明语句中被赋予初始值,那么尽管变量被声明了,但是在它被存储为值之前,它的初始值是未定义的。
var语句也可以用在for循环和for-in循环中,这样循环语法中使用的循环变量可以更简洁地声明。
for(var I=0;i10I)控制台.日志(I);变量在声明时可以赋值,但是不能有其他操作,比如=、-=,等等。
var a=2;//是正确的。var a=2;//是错误的。var a=2;//是错误的,只能用于变量,不能用于常量的重复声明。
用var语句反复声明变量是合法无害的。如果用赋值操作反复声明,就相当于重新赋值。
缺少语句
如果您试图读取未声明变量的值,javascript将报告一个错误。
Javascript允许省略声明,也就是直接给变量赋值,不需要事先声明,赋值操作会自动声明变量。
但是,在ECMAScript5严格模式下,为未声明的变量赋值将会报告错误。
脚本“使用严格的”;a=5;console . log(a);/脚本
可变特性
Javascript变量是弱类型的(也称为松散类型),所谓的松散类型可以用来存储任何类型的数据。
编程语言分为动态类型语言和静态类型语言。动态类型语言是指在运行时进行数据类型检查的语言,也就是用动态类型语言编程时,不需要给任何变量赋值,第一次给变量赋值时,语言会在内部记录数据类型。Javascript是动态类型语言的代表。
在javascript中,您可以在修改变量值的同时修改值类型。
var message=' hi消息=100;//有效但不推荐的变量松散类型的特点可以总结为两点:一是声明时无需为变量指定数据类型;第二,赋值时可以修改数据类型。
变量作用域
变量范围,也称为执行上下文,是程序源代码中定义该变量的区域。
范围分为全局范围和功能范围(也称为局部范围)。
全局范围是最外层的执行环境,在web浏览器中,全局执行环境被视为窗口对象。所有全局变量和函数都是作为窗口对象的属性和方法创建的。全局变量具有全局范围,在javascript代码中的任何地方都可以定义。在应用程序退出之前,全局范围不会被破坏,例如关闭网页或浏览器。
在函数中声明的变量只在函数体中定义。它们是局部变量,作用域是局部的。参数也是局部变量,只在函数体中定义。当函数作用域中的所有代码都被执行时,作用域被破坏,存储在其中的所有变量和函数定义也被破坏。
函数test(){ var message=' hi ';} test();警报(消息);//错误如果省略var运算符,将创建一个全局变量。
函数test(){ message=' hi ';} test();警报(消息);//'hi '虽然省略var运算符可以定义全局变量,但不建议这样做。在局部范围内定义的全局变量很难维护,如果故意忽略var运算符,会造成不必要的混乱,因为相应的变量不会立即定义,在严格模式下给未声明的变量赋值会导致抛出ReferenceError错误。
在函数体中,局部变量的优先级高于同名的全局变量。如果函数中声明的局部变量或函数参数中包含的变量与全局变量同名,则全局变量将被局部变量覆盖。
var作用域=“全局”;function check scope(){ var scope=' local ';返回范围;};check scope();//“局部”表示标高(吊装)。
块级范围
块级作用域意味着花括号中的每段代码都有自己的作用域,而javascript没有块级作用域。只有javascript函数作用域:变量在声明它们的函数体和嵌套在这个函数体中的任何函数体中定义。
这意味着变量甚至在声明之前就可用了。javascript的这个特性被非正式地称为声明提升,所有在javascript函数中声明的变量(没有赋值)都被推进到函数体的顶部。
【注意】其实除了变量提升之外,函数也是提升的,在函数部分会详细介绍。
var作用域=“全局”;函数f(){ console.log(作用域);//未定义的var范围=' localconsole.log(作用域);//'local'}//变量声明提升后,相当于下面的代码var scope=' global函数f(){ var scope;console.log(作用域);//未定义的作用域=“local”;console.log(作用域);//' local ' } JavaScript中没有块级作用域,所以有些程序员故意把变量声明放在函数体的顶部。这个源代码清楚地反映了真正的变量范围。
属性变量
当声明一个javascript全局变量时,它实际上定义了全局对象窗口的一个属性。
使用var声明变量时,创建的变量是不可配置的,这意味着该变量不能被delete运算符删除。
var true var=1;console.log(truevar,window . true var);//1 1删除truevar//falseconsole.log(truevar,window . true var);//1 1如果不使用严格模式,并且分配了未声明的变量,javascript将自动创建一个全局变量。这样创建的变量是全局对象的正常可配置属性,可以删除。
window.fakevar1=10console.log(fakevar1,window . fakevar 1);//10 10 this . fakevar 2=20;console.log(fakevar2,window . fakevar 2);//20 20 fakevar=30;console.log(fakevar,window . fake var);//30 30 delete window . fakevar 1;//true delete this . fakevar 2;//true delete fake var;//trueconsole.log(fakevar1,window . fakevar 1);//错误console.log (fakevar2,window . fakevar 2);//错误console.log (fakevar,window . fake var);//错误javascript全局变量是全局对象的属性,在ECMAScript中是强制的。局部变量被视为与函数调用相关的对象的属性。ECMAScript3称为调用对象,ECMAScript5称为声明性环境记录。Javascript允许使用这个关键字来引用全局对象,但是没有办法引用存储在局部变量中的对象。这种存储局部变量对象的独特属性是我们看不见的内部实现。
上面的javascript基本语法——完全理解变量和标识符都是边肖共享的内容。希望能给大家一个参考,支持我们。