javascript|JavaScript 鸡肋( 三 )


一个语句不能以一个函数表达式开头 , 因为官方的语法假定以单词 function 开头的语句是一个 function 语句 。 解决方法就是把函数表达式括在一个圆括号之中 。
(function () {    // 具体操作)()
类型的包装对象JavaScript 中有一套类型的包装对象 。
new Boolean(false)
会返回一个对象 , 该对象有一个 valueOf 方法会返回被包装的值 。 这其实完全没有必要 , 并且有时还令人困惑 。 不要使用 new Boolean、 new Number 或 new String 。
此外也请避免使用 new Object 和 new Arrary 。 可使用 {和 [
来代替 。
newJavaScript 的 new 运算符创建一个继承于其运算数(构造器函数)的原型的新对象 , 然后调用该运算数 , 把新创建的对象绑定给 this 。 这给运算数(它应该是一个构造器函数)一个机会在返回给请求者前去自定义新创建的对象 。
如果你忘记了使用此运算符 , 你所得到的就是一个普通的函数调用 , 并且 this 绑定到全局对象 , 而不是新创建的对象 。 那意味着你的函数尝试去初始化时 , 它将会污染全局变量 , 那是一件非常糟糕的事情 , 而且没有编译警告 , 也没有运行时警告 。
按照惯例 , 打算与 new 结合使用的函数应该命名为首字母大写的形式 , 并且首字母大写的形式应该只用来命名那些构造器函数 。 这个约定给我们提供了一个视觉线索 , 以帮助我们发现那些 JavaScript 语言自身经常忽略 , 但却会带来昂贵代价的错误 。
一个更好的应对策略就根本不去使用 new 。
void在很多语言中 ,void 是一种类型 , 表示没有什么值 。 而在 JavaScript 里 , void 是一个运算符 , 它接受一个运算数并返回 undefined , 这没有什么用 , 而且会令人非常困惑 , 应该完全避免使用它 。