说明
《JavaScript语言精粹》学习笔记。
1.1、空白
空白可能表现为格式化字符或注释形式。(空白通常没有意义)
1、用于分隔字符序列
// var that 之前空格不能移除 var that = this;
2、避免使用/* */
注释代码
比如:
/* var rm_a = /a*/.match(s) */
1.2、标识符
标识符由一个字母开头,其后可选择性的加上一个或多个字母、数字或下划线。
标识符被用于语句、变量、参数、属性名、运算符和标记。
标识符不能使用下面这些保留字:
abstract boolean break byte case catch char class const continue debugger default delete do double else enum export extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try typeof while with
JavaScript不允许使用保留字来命名变量或参数。
JavaScript不允许在对象字面量中,或者在一个属性存取表达式的点号之后,使用保留字作为对象的属性名。
1.3、数字
JavaScript只有一个单一的数字类型。它在内部表示为64位的浮点数,和 java 的 double 一样。
值 Infinity 表示所有大于1.79769313486231570e+308 的值
1.4、字符串
字符串字面量可以被包围在单引号或双引号中,它可能包含0个或多个字符。
1、JavaScript在被创建的时候,Unicode是一个16位字符集,所以JavaScript中的所有字符都是16位的。
2、转义字符允许把那些正常情况下不被允许的字符插入到字符集中。(比如\
(反斜杠符号)是转义字符。)
\u
约定允许指定用数字表示的字符码位。
"A" === "\u0041"
1.5、语句
一个编译单元包含一组可执行的语句。在web浏览器中,每个
<script>
标签都提供一个被编译且立即执行的编译单元。
1、语句往往按照从上到下的顺序被执行。
JavaScript可以通过下面的方式去改变执行序列:
- 条件语句(if和switch)
- 循环语句(while、for和do)
- 强制跳转语句(break、return和throw)
- 函数调用
2、代码块是包在一对花括号中的一组语句。
1.6、表达式
最简单的表达式是字面量值(比如字符串或数字)、变量、内置的值(true、false、null、undefined、NaN和Infinity)、以new前导的调用表达式、以delete前导的属性存取表达式、包在圆括号中的表达式、以一个前缀运算符作为前导的表达式,或者表达式后面跟着:
- 一个插入运算符与另一个表达式;
- 三元运算符 ? 后面跟着另一个表达式,然后接一个 :,再然后接第三个表达式;
- 一个函数调用
- 一个属性存取表达式
运算符优先级:
运算符 | 说明 |
. [] () | 属性存取及函数调用 |
delete new typeof + - ! | 一元运算符 |
* / % | 乘法 除法 取模 |
+ - | 加法/连接 减法 |
>= <= > < | 不等式运算符 |
=== !== | 等式运算符 |
&& | 逻辑与 |
|| |
逻辑或 |
? : | 三元 |
1.7、字面量
对象字面量是一种方便指定新对象的表示法。属性名可以是标识符或字符串。
1.8、函数
函数字面量定义了函数值。它可以有一个可选的名字,用于递归地调用自己。它可以指定一个参数列表,这些参数将作为变量由调用时传递的实际参数初始化。
函数的主体包括变量定义和语句。