JavaScript 6看上去很美

开发 前端
JavaScript 6让我很兴奋,这是我看了David Herman在YUIConf 2011大会上的演讲后的反应。我非常希望这些语言特征能尽快的在V8引擎上实现,这样我就可以在node.js里使用它们了。这些新增加的语言特征对于一个使用JavaScript的程序员来说,解决了很多以前使用起来很不方便的东西。

本文是从 ECMAScript 6 looks promising 这篇文章翻译而来。

JavaScript 6让我很兴奋,这是我看了David Herman在YUIConf 2011大会上的演讲后的反应。我非常希望这些语言特征能尽快的在V8引擎上实现,这样我就可以在node.js里使用它们了。这些新增加的语言特征对于一个使用JavaScript的程序员来说,解决了很多以前使用起来很不方便的东西。尽管这个标准中2013年才能制定完成(大会上David这样说的),谷歌浏览器和火狐浏览器很有可能会提前实现这些特征。

从我个人来说,下面的这些特征我很感兴趣:

let 关键字

let 关键字能产生一个代码块内的变量范围。因为 var 有一个函数式的范围概念,这有时候容易产生出不注意的错误。以后,我们完全使用 let来代替var,从而避免这样的错误。

缺省参数

  1. function foo(bar="baz") {  
  2.    console.log(bar);  
  3.  

有了缺省参数,省去了很多折腾的代码。

非严格的解构方式

很像Python语言,解构时不需要严格匹配。

  1. let [x,y] = [3,4,5];   // x=3, y = 4 

多行模式的字符串表达

你可以简单的使用 ` (反点号)操作符来声明一个多行字符串。

  1. var htmlString = `Say hello to  
  2. multi-line  
  3. strings!` 

模板化

你可以通过这种方式把JavaScript变量嵌入的字符串中:

  1. var firstName = "Jack";  
  2. var message = `Hello ${firstName}!`; // "Hello Jack!" 

List 复合操作

同样,这也是一个非常Python的结构:

  1. let even = [ x for (x in values([1,2,3,4,5,6])) if (x %2 === 0) ]; 

使用 values() 能够让 x 来表示List里的成员的值,而不是成员变量。你也可以使用新的 for of 语法来实现这样的功能:

  1. let even = [ x for(x of [1,2,3,4,5,6]) if (x%2 === 0) ]; 

除此之外, map, filter, reduce 等等概念也将会成为新标准的内容之一 (有一些功能已经在谷歌浏览器和火狐浏览器里被实现,IE9也有不少这方面的改进)。

更新:

发现这个帖子被顶到了HN的首页,我必须要加上遗漏的新标准中的模块系统操作功能。演讲中的例子:

  1. import { $ } from "jquery.js" 
  2. import { map, each } from "underscore.js" 

还是一样,全是Python的套路!被引用的JavaScript文件会代码执行前加载的你的浏览器中。

【编辑推荐】

  1. 如何更好的面试JavaScript工程师
  2. 什么是JavaScript异步编程
  3. JavaScript异步编程
  4. 一个纯JavaScript游戏:狙击野鸭
  5. 16个优秀的JavaScript教程和库推荐
责任编辑:陈贻新 来源: 外刊IT评论
相关推荐

2012-11-14 09:48:57

HBase大数据

2014-07-09 16:58:38

WIFI

2022-07-05 11:17:46

零信任安全技术网络安全

2019-12-02 12:50:52

LiFiWiFi通信网络

2013-01-25 11:17:17

Gartner大数据传感器

2012-11-14 08:57:29

HBase

2009-08-03 14:09:13

SAP中国真相SAP

2012-09-19 13:47:53

HTML5

2010-06-25 09:19:18

云计算应用

2024-03-26 13:03:16

NettyJavaNIO

2011-05-16 10:10:51

2010-09-02 09:32:26

私有云

2016-10-19 09:17:15

HTML5Javascript可视化

2011-03-31 09:40:58

2011-02-18 14:43:21

人才

2016-06-07 13:53:43

ios苹果概念

2012-12-27 16:52:45

X PhoneGoogle摩托罗拉

2011-10-11 09:33:11

计算机工作

2020-12-16 07:51:42

项目个人博客支付

2020-12-02 15:03:48

工具 UI 开发
点赞
收藏

51CTO技术栈公众号