1.字面量
literal 表达源代码中一个固定值的表示法
2.javascript中块状注释是不安全的
用/* */包围的块状注释行是来自于一门叫PL/I的语言。PL/I选择那些不常见的符号对作为注释的符号标志,因为除了可能出现在字符串字面量里之外,它们不大可能在这门语言的程序中出现。在Javascript中,那些字符对也可能出现在正则表达式字面量里,所以块注释对于被注释的代码块来说是不安全的。
例如:
/*
var rm_a = /a*/.match(s);
*/
上面的注释导致了一个语法错误。所以,我建议避免使用/* */注释,而用//注释代替它。
3.Javascript不允许在对象字面量中,或者用点运算符提取对象属性时,使用保留字作为对象的属性名。
4.switch、while、for和do语句允许有一个可选的潜质标签(label),它配合break语句来使用。
5.以下列出的值被当作假(false):
(1)false
(2)null
(3)undefined
(4)空字符串' '
(5)数字0
(6)数字NaN
6.while(expression) block
如果condition被省略掉,则假定返回的条件是真
7. for in
会枚举一个对象的所有属性名(或键名)。在每次循环中,object的一下个属性名字符串被赋值给variable。
通常需要检测object.hasOwnProperty(variable)来确定这个属性名是该对象的成员还是来自于原型链
for (myvar in obj) {
if (obj.hasOwnProperty(myvar)) {...}
}
(for in会输出对象原型链中的属性)
8.do while
do语句就像while语句,唯一的区别是它在代码块执行之后而不是之前检测表达式的值,这就意味着代码块至少要执行一次。
9.try block catch (variable name) block
try语句执行一个代码块,并捕获该代码块抛出的任何异常。catch从句定义一个新的变量variable来接收抛出的异常对象。
try { throw } catch (e) { }
throw语句抛出一个异常。如果throw语句在一个try代码块中,那么控制流会跳转到catch从句中。如果throw语句在函数中,则该函数调用被放弃,控制流跳转到调用该函数的try语句的catch从句中。
throw语句中的表达式通常是一个对象字面量(Object literal),它包含一个name属性和一个message属性。
10.return
没有指定返回表达式,则返回值是undefined
javascript不允许在return关键字和表达式之间换行
11.break
它可以指定一个可选的标签,那退出的就是带该标签的语句
javascript 不允许在break关键字和标签之间换行
12. delete expression refinement
13.delete开头的属性提取表达式 以一个前置运算符作为前导的表达式
14.运算符优先级
. [] () 提取属性与调用函数
delete new typeof + - ! 一元运算符
* / % 乘法除法求余
+ - 加法/连接,减法
>= <= > < 不等式运算符
=== !== 等式运算符
&& 逻辑与
|| 逻辑或
?: 三元
15.typeof
如果运算数是一个数组或null,那么结果是object
16. / 运算符可能会产生一个非整数结果,即使两个运算数都是整数。
17.
18.一个属性存取表达式用于指定一个对象或数组的属性或元素。
19.对象字面量是一种可以方便地按指定规格创建新对象的表示法。属性名可以是标识符或字符串。这些名字被当作字面量名而不是变量名来对待,所以对象的属性名在编译时才能知道。属性的值就是表达式。
20.正则表达式
21.函数
可以指定一个参数列表,这些参数就像变量一样,在调用时由传递的实际参数(argument)初始化。