介绍
- JavaScript是一门大小写敏感的语言
- JavaScript程序使用Unicode字符集编写
- JavaScript使用\u后跟4位16进制数字代表任何16位Unicode码点
字面值
字面值是程序中直接出现的数据值,下列这些都是字面值:
1
2
3
4
5
6
7
8
9
10
|
12 // The number twelve
1.2 // The number one point two
"hello world" // A string of text
'Hi' // Another string
true // A Boolean value
false // The other Boolean value
/javascript/gi // A "regular expression" literal (for pattern matching)
null // Absence of an object
{ x:1, y:2 } // An object initializer
[1,2,3,4,5] // An array initializer
|
标识符和保留字
标识符必须以字母,下划线(_),或美元符($)开头,后续字符可以是字母,数字,下划线或美元符。
关键字
1
2
3
4
5
6
|
break delete function return typeof
case do if switch var
catch else in this void
continue false instanceof throw while
debugger finally new true with
default for null try
|
JavaScript也保留了一些当前未使用但是未来可能会用到的关键字。ES5保留了下面的关键字:
1
|
class const enum export extends import super
|
此外,下列这些词在普通的Javascript代码中是合法的,但是在严格模式下被保留:
1
2
|
implements let private public yield
interface package protected static
|
严格模式还对以下标识符施加限制。它们没有完全被保留,但是不允许用作变量,函数名或参数名:
ES3保留了所有Java语言的关键字,虽然在ES5中放松了,但是如果想要代码能在ES3下运行,你仍应该避免使用这些标识符:
1
2
3
4
5
6
|
abstract double goto native static
boolean enum implements package super
byte export import private synchronized
char extends int protected throws
class final interface public transient
const float long short volatile
|
JavaScript预定义了很多全局变量和函数,你应该避免使用它们作为自己的变量或函数名:
1
2
3
4
5
6
|
arguments encodeURI Infinity Number RegExp
Array encodeURIComponent isFinite Object String
Boolean Error isNaN parseFloat SyntaxError
Date eval JSON parseInt TypeError
decodeURI EvalError Math RangeError undefined
decodeURIComponent Function NaN ReferenceError URIError
|
可选的分号
JavaScript不会将每个换行符当成分号,如果下一个非空字符不能解释成当前语句的延续时,Javascript将换行当成分号。如果一个语句以(,[,/,+,或-开头,就有可能被解释成上一个语句的延续。下面是2个例外:
return,break和continue语句,Javascript总是将它们后面的换行符当成分号。
JavaScript认为是:
++和–操作符,这些操作可以是前缀操作符或后缀操作符。如果你想使用它们作为后缀操作符,那么它们必须出现在它们所应用的表达式同一行上。否则换行符会被当做分号,而++或–将被解释为作用于后面代码的前置操作符。比如:
被解释为x; ++y;
,而不是x++; y
。