JavaScript中的变量
来源:互联网 发布:淘宝拍图动作 编辑:程序博客网 时间:2024/06/05 18:32
ECMAScript的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话说,每一个变量仅仅是一个用于保存值的占位符而已。定义变量时要使用var操作符(注意var是一个关键字),后跟变量名(即一个标识符),如下所示:
var message;
这行代码定义了一个名为messsage的变量,该变量可以用来保存任何值(像这样未经过初始化的变量,会保存一个特殊的值—–undefined)。ECMAScript也支持直接初始化变量,因此在定义变量的同时就可以设置变量的值,如下所示:
var message = "hi";message = 100; //有效,但不推荐
在这个例子中,变量message一开始保存了一个字符串值”hi”,然后该值又被一个数字值100取代。虽然我们不建议修改变量所保存的值的类型,但这种操作在ECMAScript中完全有效;
有一点必须注意,即使用var操作符定义一个变量将成为定义该 变量的作用域中的局部变量。也就是说,如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,例如:
function test() { var message = "hi"; //局部变量}test();alert(message);//错误
这里,变量message是在函数中使用var定义的。当函数被调用时,就会创建该变量并为期赋值。而在此之后,这个变量又会立即被销毁,因此例子中的下一行代码就会导致错误。不过可以像下面这样省略var操作符,从而创建一个全局变量:
function test() { message = "hi"; //全局变量}test();alert(message);
这个例子省略了var操作符,因而message就成了全局变量。这样,只要调用过一次test()函数,这个变量就有了定义,就可以在函数外部的任何地方被访问到。
虽然省略var操作符可以定义全局变量,但这也不是我们推荐的做法。因为在局部作用域中定义的全局变量很难维护,而且如果有意地忽略了var操作符,也会由于相应变量不会马上就有定义而导致不必要的混乱。给未经声明的变量值在严格模式下会导致抛出ReferenceError错误。
可以使用一条语句定义多个变量,只要像下面这样把每个变量(初始化或不初始化均可)用逗号分隔开即可:
var message = "hi", found = false, age =30;
这个例子定义并初始了3个变量。同样由于ECMAScript是松散类型的,因而使用不同的类型初始化变量的操作可以放在一条语句中来完成。虽然代码里的换行和变量缩进不是必需的,但这样做可以提高可读性。
在严格模式下,不能定义名为eval或arguments的变量,否则会导致语法错误。
- javaScript中的隐藏变量
- javascript 中的变量范围
- javascript中的变量
- JavaScript中的变量
- Javascript中的特殊变量
- JavaScript中的变量
- javascript中的变量
- JavaScript中的变量声明
- JavaScript中的变量
- JavaScript 中的变量提升
- javascript中的变量
- JavaScript中的变量
- JavaScript中的变量和变量作用域
- JavaScript中的变量及数据类型
- javascript中的变量作用域
- javascript中的变量作用域
- javascript中的变量、作用域
- 关于JavaScript中的堆变量
- 屏蔽掉不能缩放界面-支持ie-chrome
- scala 关于正则匹配器的取值问题
- Tomcat的安装配置与JavaWeb入门教程
- Windows 8.1 use VisionApp RDP to some server issue
- 【JDK动态代理】
- JavaScript中的变量
- Django 创建超级用户
- Oil Deposits UVA
- java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String 解决
- 内部剖析一个进程
- 火狐新标签页更改背景 Changing Firefox Background
- 总结android中的.gradle文件写法及含义
- 建造者模式
- Python中range()函数和list比较