由于 ECMAScript 是弱类型的,所以解释程序会为 test 自动创建一个字符串值,无需明确的类型声明。
eg:var test = 'hi' 声明了变量 test,并把它的值初始化为 "hi"(字符串),这里无需明确test的字符串类型。
<pre>
var test1='hi',test2=11;//也是合理的
</pre>
与java不同的是:ECMAScript 中的变量并不一定要初始化
var test;进行了变量的申明,但还是未初始化(也可以说成未定义)
<pre>
var test3;alert(test3); //弹出undefind
</pre>
与 Java 不同的还有变量可以存放不同类型的值。这是弱类型变量的优势。例如,可以把变量初始化为字符串类型的值,之后把它设置为数字值,如下所示:
<pre>
var test1 = 'nnan';test1=11;alert(test1);//弹窗显示的是11,后面的值把前面的覆盖掉了
</pre>
但是不建议使用:应该在使用变量时,好的编码习惯是始终存放相同类型的值。
变量的申明不是必须的。
ECMAScript 另一个有趣的方面(也是与大多数程序设计语言的主要区别),是在使用变量之前不必声明。例如:
<pre>
var test4 = 'hello';test5 = test4 +' '+'world';alert(test5); //弹窗显示hello world
</pre>
变量test5 并没有用 var 运算符定义,这里只是插入了它,就像已经声明过它一样。
ECMAScript 的解释程序遇到未声明过的标识符时,用该变量名创建一个全局变量,并将其初始化为指定的值。但是并不建议使用,最好的习惯是像使用其他程序设计语言一样,总是声明所有变量。
undefined和error
undefined是变量已经申明了但是未进行初始化(未赋值)
error是变量压根就没有申明。
所有申明了变量未赋值都会是undefined,但是所有的值未undefined不一定都是申明了但是未赋值的。
例如:
<pre>alert(typeof test1) //弹出undefined
</pre>
值为undefined但是并没有进行变量的申明。
变量
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 词法结构 字符集:unicode 区分大小写,关键字、变量、函数名、标示符必须采取大小写一致 注释// 单行注释/...
- 前端07班 王语句JavaScript程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是...
- 第3章 基本概念 3.1 语法 ECMAScript 的语法大量借鉴了C 及其他类 C 语言(Java / Per...