CoffeeScript 2.5.0
发布了。CoffeeScript 是一套 JavaScript 转译语言,它会将类似 Ruby
语法的代码编译成 JavaScript,而且大部分结构都相似。CoffeeScript
拥有更严格的语法。

JavaScript 的成功得益于在正确的时间出现在正确的地点。JavaScript
的兴起与浏览器的支持息息相关。你瞧,VBScript 就没这么好运气。JavaScript
很流行,但它有先天缺陷。Brendan Eich 当初只花了 10 天时间就把 JavaScript
设计出来了,作为 JavaScript 之父,BE 如是说。引用与其说我爱
JavaScript,不如说我恨它。它是 C 语言和 Self
语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:“它的优秀之处并非原创,它的原创之处并不优秀。”JavaScript
的不足,最明显之处是语法。糟糕冗长的语法可选参数和默认值

此版本更新内容包括:

function(a, b, option) { option = option || {}; // ...}
  • 更新依赖
  • 新的 AST 测试助手有望将颜色变为全局颜色
  • 暂时停用浏览器中的 deepStrictIncludeExpectedProperties 测试
  • 仅更新编译器的输出
  • 更新浏览器编译器输出
  • 修复并重新启用针对浏览器测试套件的深度严格测试

澳门新萄京官方网站,上面的代码中,option 是可选参数,当没有传递时,默认值是 {}. 然而,传递的
option 值有可能是假值(falsy 值)。严格来写,得如下判断:

详情查看更新说明:

function(a, b, option) { option = arguments.length  2 ? option : {}; // ...}

注意:option = typeof option !== ‘undefined’ ? option : {}
也有可能是错误的,因为传递过来的可能就是 undefined.当不需要 b
参数,删除后,基于 arguments.length 的判断很容易导致忘记修改而出错:

(文/开源中国)    

function(a, option) { option = arguments.length  2 ? option : {}; // ...}

如果能增加以下语法该多好呀:

function(a, b, option = {}) { // ...}

Let闭包很强大,也很恼火:

for (var i=0, ilen=elements.length; iilen; i++) { var element = elements[i]; LIB_addEventListener(element, 'click', function(event) { alert('I was originally number ' + i); });}

上面的代码经常在面试题中出现,解决办法是再包裹一层:

for (var i=0, ilen=elements.length; iilen; i++) { var element = elements[i]; (function(num) { LIB_addEventListener(element, 'click', function(event) { alert('I was originally number ' + num); }); }(i));}

如果直接支持 let 语法该多好呀:

for (var i=0, ilen=elements.length; iilen; i++) { var element = elements[i]; let (num = i) { LIB_addEventListener(element, function(event) { alert('I was originally number ' + num); }); };}

模块模块模式是一种无奈的选择:

var event = (function() { // private variables var listeners = []; function addEventListener(f) { listeners.push(f); } function clearEventListeners() { listeners = []; } // ... // export the module's API return { addEventListener: addEventListener, clearEventListeners: clearEventListeners // ... };}());

如果原生支持该多好呀:

网站地图xml地图