Page 93 - JavaScript修炼之道
P. 93
附录A JavaScript快速参考 85
标识位
g 全局匹配:匹配所有的目标字符串,而非第一次出现
i 大小写敏感(对Unicode也适用)
m 多行匹配:点字符(.)可匹配任意字符,包括换行符
多次编译同一个正则表达式会造成性能损耗,尽量对其进行预编译。
如果只想检查是否存在匹配而不关心其他细节(例如组)的话,使用regex.test(str)
而不是str.match(regex)。
如果不需要捕获组的内容作为后向引用,而仅仅是在组上应用一个限定符,请把这个组标
记为非捕获型:(?:...)。
函数
声明:function fxName(...) {...}
表达式:function(...) {...}
声明被“提升”到它们的作用域中:作用域中的每一个函数都可以调用其他函数,而不受它
①
们的声明顺序影响(这里并不需要“原型声明 ”)。
"return x;" 退出函数并返回x。
"return;" 退出函数返回undefined。
函数本身也是一种对象,所以函数拥有自己的方法(比如apply和call),也可以按引用被
传递(但这样你就会丢失它们的绑定关系:this关键字原有的含义)。这意味着你可以对函数赋
值,或者将函数作为参数来传递。
函数的参数列表中并不限定参数类型,参数名起到的更多是提示作用。JavaScript会把实参赋
到对应的形参上。需要注意的是,所有的JavaScript参数都像varargs 一样:你可以传递任意数
②
量的参数,并通过内置的参数变量表,以访问数组的形式访问它们。
特殊值
undefined 未被赋值的变量,未匹配实参的形参
null 没有被明确的定义;一般是DOM调用“无结果”的返回值,一般在程序中被作为“空值”赋给
某个变量
false, true 两个布尔值字面量
Infinity 无限的数值(可以带有正负号,比如-Infinity)
NaN 非数值(Not-a-Number)表达式的返回值,比如说失败的数值解析。它与任何数值不等,包括
它自己,所以一般通过isNaN(n)来判断变量是否为NaN
——————————
① C/C++ 语言中在使用一个函数前,必须对其进行原型声明,否则无法使用。*
② C语言中为支持可变参数而采用的机制。*