ECMAscript语言大量借鉴了c语言及类c语言(java和Perl)的语法.因此熟悉这些语言的开发人员在接受ECMAScript更加宽松的语法时,一定会有种轻松自在的感觉。
区分大小写
要理解的第一个概念就是ECMAScript中的一切(变量、函数、操作符)都区分大小写。这也就意味着test和Test分别表示两个不同的变量,而函数名不能用typeof ,因为它是一个关键字。而typeOf则完全可以是一个有效的函数名。
标识符
所谓标识符,就是变量,函数,属性的名字或者函数的参数。标识符的规范是:
第一个字符必须是字母、下划线或一个美元符号;
其他字符可以是字母、下划线、美元符号或者数字。
按照惯例,ECMAscript标识符采用驼峰大小写格式,也就是第一个字母是小写。但是并没有强制要使用这种方式。
注释
单行注释是两个双斜杠 //
多行注释是
/*
*/
严格模式
严格模式可以采用'use strict'
语句
ECMAScript中的语句是以分号结尾的,虽然语句结尾的分号不是必须的,但是我们建议任何时候都不要省略他。
变量
ECMAscript的变量是松散类型,所谓松散类型就是可以用来保存任何类型的数据。换句话说,每一个变量就是一个保存值的一个占位符而已。定义变量时,还要用var声明,后跟变量名。如
var message
这行代码定义了名为message的变量,该变量可以用来保存变量值(像这样未初始化的变量,会保存一个特殊的值undefined)
<!Doctype html> <html> <head> <title>变量</title> <meta charset="utf-8" /> </head> <body> <script> var message; alert(message); </script> </div> </body> </html>
使用var操作符定义一个变量将成为定义该变量的作用域中的局部变量。也就是说,如果在函数中用var 定义一个变量,那么这个变量在函数退出后将会销毁。
<!Doctype html> <html> <head> <title>变量</title> <meta charset="utf-8" /> </head> <body> <script> function test(){ var message; alert(message);//弹出undefined } test(); alert(message);//报错 </script> </div> </body> </html>
变量message是在函数中用var定义的,当函数被调用时,并创建该变量并为其赋值。而在此之后,变量又会被立即销毁。因此上面例子中的下一行代码会报错。不过声明变量时可以省略var,从而变成全局变量就不会报错。这样只要函数一调用,这个变量就有了定义,就可以在函数外部的任何地方调用。
<!Doctype html> <html> <head> <title>变量</title> <meta charset="utf-8" /> </head> <body> <script> function test(){ message = 'hi'; alert(message); } test(); //hi alert(message);//hi </script> </div> </body> </html>
定义多个变量时,可以用逗号隔开
<!Doctype html> <html> <head> <title>变量</title> <meta charset="utf-8" /> </head> <body> <script> function test(){ var message ='hi', found = false, age=29; alert(message); alert(age); } test(); //hi </script> </div> </body> </html>
ECMAscript中有5种基本类型:undefined、null、boolean、number、string还有一种复杂数据类型就是object,object本质上是由一组无序的名值对组成的。而ECMAscript不支持创建自定义类型的机制,而所有值都是上述这6种数据类型之一。
typeof 操作符
鉴于ECMAscript是松散类型的,因此需要有一种手段来检测给定变量的数据类型。typeof 就是负责提供这方面信息的操作符。对一个值使用typeof操作符可能返回下面某个字符串
undefined 如果这个值未定义
boolean 如果这个值是布尔值
string 如果这个值是字符串
number 如果这个值是数字类型
object 如果这个值是对象或null
function 如果这个值是函数
<!Doctype html> <html> <head> <title>变量</title> <meta charset="utf-8" /> </head> <body> <script> var message ="some thing"; alert(typeof message); alert(typeof (message)); alert(typeof 95); </script> </div> </body> </html>
上面的几个例子可以说明,typeof操作符的操作数可以是变量,也可以是数值字面量。注意,typeof是一个操作符而不是函数,因此例子中的圆括号,尽管可以使用,但是不是必须的。