一、关于变量
(一)JS变量的规则:
1.必须以字母(严格区分大小写)、下划线或美元符号开头,后面可以跟字母、下划线、美元符号和数字。如下:
正确:
1 mysum 2 _mychar 3 $numa1
错误:
1 6num //开头不能用数字 2 %sum //开头不能用除(_ $)外特殊符号,如(% + /等) 3 sum+num //开头中间不能使用除(_ $)外特殊符号,如(% + /等)
2.变量名区分大小写,如:A与a是两个不同变量。
3.不允许使用JavaScript关键字和保留字做变量名。
js中的关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是ECMAScription的全部关键字:
break、else、new、var、case、finally、return、void 、catch、for 、switch、while、continue、function、this、with 、default、if、throw、delete、 in 、try 、do 、instranceof、typeof
ECMA还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途,但它们有可能将来被用作关键字。下面是ECMA第3版定义的全部保留字:
abstract 、 enum 、int 、short 、boolean、export、interface、static、 byte、extends、long 、super 、char 、final、native、synchronized 、 class、float、package、throws、const、goto、private、transient、debugger、implements、protected 、volatile、double、import、public
定义变量不用立即赋值:
可以同时声明多个变量,用逗号(,)隔开
同一变量可以多次声明,(声明的位置不同使用范围等意义不同)
var x; x = 5-3; alert(x);
var x = 3; var y = 4; var z = 5;等同于var x = 3, y = 4, z = 5;
var x = 10;
x = 16;
function a(){
x = 15;
}
(二)变量的声明
1.使用var多次声明同一个变量,是合法的,不会因此语法的错误;重复的声明并初始化变量值,只是相当于普通的赋值语句。
2.读取一个未声明的变量值,js会产生一个错误。
3.尝试给一个未经var 声明的变量赋值,js会隐式声明该变量,隐式声明的变量被创建为全局变量。
4.无论是全局变量还是局部变量,最好都使用var进行声明。
(三)全局变量和局部变量 ------变量的作用域
全局(global)变量的作用域是全局的,即在js代码中处处有定义。
局部(local)变量的作用域是局部性的,只在特定的范围内,比如函数内部定义的变量,函数的参数变量,这些变量的作用范围是局限在函数的内部的。
1.声明全局变量可以不适用var 关键字,局部变量则必须使用var关键字来声明,为了避免不必要的麻烦,养成所有的变量都使用var关键字来声明。
2.变量的定义没有块级作用域 --在函数中声明的所有的变量,无论是在哪里声明的(只要是在函数内部),在整个的函数中都是有声明的
(四)未定义的变量和未赋值的变量
未定义的变量:指没有声明并且没有初始化的变量,尝试读取这种变量会产生一个错误。注: 这里要区分开没有声明但初始化了的变量,这种变量不会引起错误,程序会在全局变量中隐式的声明该类变量。
未赋值的变量:指已经声明但没有初始化的变量,尝试读取该类变量将得到一个默认值undefined.
(五)JS三大经典变量命名法
1.匈牙利命名法:--通过在变量名前面添加相应小写字母的符号标示作为前缀,标示出变量的作用域,类型等,前缀后面是一个或多个单词组合,单词描述了变量的用途,如i表示的是整数,s表示的是字符串。示例:
1 var sUserName = 'css8'; 2 var iCount = 0;
2.骆驼式/驼峰命名法 --混合使用大小写字母来构成变量的名称。示例:
1 var printLoadTemplates;//名称首字母小写,其他每个单词的首字母大写 2 var print_load_templates;//下划线法,每个单词用一个下划线标记
3.帕斯卡命名法 --和驼峰命名法类似,但是,驼峰第一个单词首字母小写,而帕斯卡命名法第一个单词首字母也大写。
(六)特殊数值常量:(number)
1 Infinity 无穷大的特殊值 2 NaN 非数字值 3 Number.MAX_VALUE 可表示的最大数字 4 Number.MIN_VALUE 可表示的最小数字 5 Number.NaN 非数字值 6 Number.POSITIVE_INFINITY 正无穷大 7 Number.NEGATIVE_INFINITY 负无穷大