JS_高程3.基本概念(1)
1.语法
(1)ECMAScript中的一切(变量,函数名和操作符)都是区分大小写的。
(2)标识符
标识符的第一个字符必须是字母,下划线或是美元符号。
其他字符可以是字母,下划线,美元符号和数字。
ECMAScript标识符采用驼峰大小写的格式。
(3)严格模式(strict mode)
严格模式是为了Javascript定义了一种不同的解析与执行模型。在严格模式下,ECMAScript3中的一些不确定的行为将得到处理,而且对某些不安全的 操作也会抛出错误。
要在整个脚本中启用严格模式,可以在顶部添加如下代码:
“use strict”;
它是一个编译指示(pragma),用于告诉支持的Javascript引擎切换到严格模式。
2.关键字和保留字(高程P21)
3.变量
ECMAScript的变量是松散类型的,可以保存任何类型的数据。
定义变量使用 var 操作符。
注意:
用 var 操作符定义的变量将成为定义该变量的作用域中的局部变量。即如果在函数中定义一个变量,当函数退出后就会被销毁。
eg:
1 <script type="text/javascript"> 2 function test(){ 3 var message="hi"; 4 } 5 test(); 6 alert(message); 7 </script>
结果会出现错误:
这里message是在函数中使用了var定义的。当函数被调用时,就会创建该变量并为其赋值,之后这个变量会立即被销毁,所以当使用alert()函数时,会导致错误。
当省略var操作符时可以定义全局变量,这样只要调用一次test()函数,这个变量就有了定义,就可以在函数外部的任何地方被访问到了。
1 <script type="text/javascript"> 2 function test(){ 3 message="hi"; 4 } 5 test(); 6 alert(message); 7 </script>
注意:
虽然省略 var 操作符可以定义全局变量,但是不推荐这样做,因为在局部作用域中定义全局变量很难维护,而且如果有意地忽略 var操作符,也会因为相应变量不会马上就有定义而导致不必要的混乱。
给未经声明的变量赋值在严格模式下会导致抛出ReferenceError错误。
在严格模式下,不能定义名为eval或arguments的变量,否则会出现语法错误。
Javascript中了eval()函数,arguments对象。