两个月前就开始准备的ES2015(原名ECMA Script 6)的技术分享,正值ES6规范正式定稿之际(完全是巧合,哈哈),在上周五的时候,给组内做了次技术分享,其中涵盖了比较能说明新特性的若干例子。
介绍了新版本规范的若干新特性:
|  |      1soli      2015-06-23 11:00:06 +08:00 赞一个先! | 
|      2kuno1      2015-06-23 11:34:10 +08:00 谢谢分享,学习了 :) | 
|      3poke707      2015-06-23 11:46:18 +08:00 via Android 之前一直期待ES6,但直到这个PDF才认真地了解一次:) 真是令人兴奋的ES6啊 | 
|  |      4onlyice      2015-06-23 11:51:06 +08:00 赞一个,如果大家的浏览器都能迅速支持新标准就好了。。 | 
|  |      5onlyice      2015-06-23 12:10:16 +08:00  1 看了一下,很多概念跟 Python 很类似。 但是下面这个例子就不理解了,为啥加了个括号就 OK 了?   | 
|  |      7sinux      2015-06-23 13:16:08 +08:00 汽车之家 | 
|  |      8hbkdsm      2015-06-23 13:33:09 +08:00 大赞! | 
|  |      10xcatliu      2015-06-23 13:45:15 +08:00 | 
|  |      11sodatea      2015-06-23 14:04:37 +08:00  2 @onlyice 我觉得楼主这里应该是搞错了 不带括号的形式,不论是 Chrome Developer Tools、Firefox Web Console 还是 Babel REPL,报的错都是 SyntaxError,因为此处 {x: a} 解析起来有歧义,可能是 block statement 也可能是 object literal 而套了括号之后,这一行能够被确定为是 expression statement,所以可以被解析,但是严格模式下仍然会出错(ReferenceError,严格模式禁止隐式创建全局变量)(不过 Chrome 非严格模式下也报 Uncaught ReferenceError: Invalid left-hand side in assignment 错误,不太明白……) 这个 trick 在 ES6 之前也有的 @helone 前端可以用 babel 嘛 | 
|  |      12hkongm OP | 
|  |      14br00k      2015-06-23 15:07:37 +08:00 学习了。。 | 
|  |      15br00k      2015-06-23 15:09:25 +08:00 用ES6规范编写的能编译出兼容的ES5的代码么。 | 
|  |      16hkongm OP | 
|  |      17SoloCompany      2015-06-23 22:50:48 +08:00 via Android 谢谢分享 | 
|  |      18SoloCompany      2015-06-25 16:07:52 +08:00  1 @sodatea  @onlyice 同意11楼的,这里是楼主搞错了 这里出现的是语法错误,和 a 是否有定义完全无关 因为 ES 解释器在这个上下文中遇到左大括号,优先解释为块定义,而不是 Object literal;而如果前面加了小括号,就会强制解释为 Object literal 了。 看看这个 ``` {a:x} ReferenceError: x is not defined //-- 这是楼主误以为报错的原因,但实际不是他想的那样 x=1 1 {a:x} 1 //-- 这里没有出现语法错的,是因为 a: 被解释成 label 了 {x} 1 //-- 没有 label 结果也是一样的 ({a:x}) Object { a: 1 } //-- 加了括号,看出来区别了吧 {x} Object { x: 1 } //-- 这是 object literal 的新语法 ``` 另外,ppt 里面还有个拼写错误,就是对应上面的 object literal 新语法的 ``` var obj = {  // hander: hander 的简写 ------- 拼写错误 handler , }; ``` | 
|  |      19SoloCompany      2015-06-25 16:08:39 +08:00 更正一下 上面最后一个 {x} 漏了打括号了 应该是({x}) | 
|  |      20hkongm OP |