前端之路-初期-JavaScript变量
1.定义
在日常生活里,有些东西是固定不变的,有些东西则会发生变化。例如人的姓名和生日是固定不变的,但是心情和年龄却会随着时间的变化而变化。人们把这些会发生变化的东西称为变量(variable)。–JavaScript.DOM编程艺术(第2版)
2.特性
(1)javascript中的变量是松散类型的,可以保存任何类型的数据,变量只是在特定时间用于保存特定值的一个名字而已,由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变 。
(2)JS变量可用于存放值和表达式
3.变量命名
(1)变量可以使用短名称,也可以使用描述性更好的名称。
(2)变量必须以字母开头
(3)变量也能以 $ 和 _ 符号开头(不过不推荐)
一般都是框架内的属性或者变量会加$ 或者 加$作为一个JQuery变量,来启动变量名 “_”下划线开头 一般指的是内部私 有变量。
(4)变量名称对大小写敏感
(5)其他字符可以是字母、下划线、美元符号或数字
(6)字符中的字母可以包括拓展的ASCII或Unicode字母字符,也可以使用中文
(7)不能使用关键字、保留字、true、false和null
(8)标识符应采用小驼峰格式,第一位应该是数据的类型,常见的标识如下:
整数 i Integer iAge
4.
声明变量
创建变量通常称为声明,
使用 var 关键词来声明变量,
变量声明之后,该变量的值为
undefined
。
如需向变量赋值,请使用等号,也可以直接在声明中赋值。(+= 不对)
重新声明 JS变量,该变量的值不会丢失。
5.编码情况
当js外部文件是UTF-8编码时,如果Html没有设置UTF-8编码,会导致中文乱码。当Html的编码与JS外部文件的编码一致时,便不会出现乱码。
6.声明提升
javascript中的变量声明会提升到所有函数和语句之前,但提升后的变量将返回undefined,因为只是声明提升,赋值操作并没有提升。
console.log(iAge);
var iAge = 23;
console.log(iAge);
7.
标识符解析
标识符解析是沿着作用域链一级一级地搜索标识符的过程。搜索过程始终从作用域链的前端开始,然后逐级地向后回溯,直到找到标识符为止。
如果局部环境中存在着同名标识符,就不会使用父环境中的标识符
如果找不到标识符,表示标识符尚未声明,通常会导致错误发生
JavaScript引擎在优化标识符查询方面做得不错,访问父环境和局部环境的标识符的时间差别可以忽略不计
var iTestVariable1 = 23;
var iTestVariable2 = 1;
function fPartGoble() {
iTestVariable1 = 28; //给上边全局的iTestVariable 赋值为28
console.log("局部1:"+iTestVariable1); //结果: 28
var iTestVariable2 = 3;
console.log("局部2:"+iTestVariable2); //结果: 3
}
fPartGoble();
console.log("全局1:"+iTestVariable1); //结果:28 给赋值了
console.log("全局2:"+iTestVariable2); //结果:1
参考w3chool
参考http://www.jb51.net/article/77391.htm