预计在2014年底,ECMAScript 6将会正式发布,他的草案在13年3月份被冻结,后续提出新特性将会移至ECMASript 7中。目前还没有哪款浏览器实现了ES6的全部内容,兼容性最强的一款要数FireFox了。具体情况可以在这里查看。
关于 ECMAScript 6 草案,我在博客里头复制了一份,可以点击这里。
JavaScript的内容是越来越丰富,在ES6中还添加了模块(module)和类(class),感觉他已经失去了曾经的单纯了,不知道这些新功能的补充对开发者来说是福音还是负担。之前写过两篇关于ES6的文章,ECMAScript 6 简介 和 ECMAScript 6中的let和const关键词,本文将一一介绍ES6中的一些新特性。
本文地址:http://www.cnblogs.com/hustskyking/p/ecmascript6-overview.html,转载请注明源地址。
注意:如果想测试以下属性,请安装 0.11+ 版本的 node,并添加上 --harmony 参数。
一、let 和 const
这个内容在 ECMAScript 6中的let和const关键词 一文中已经介绍过了。简单来说就是一句话:ES6中引入了块级作用域,let的有效区间是他所在的 {}
大括号中。const 为常量,定义之后不能更改,也删除不了。
> const PI = 3.14;
> Object.getOwnPropertyDescriptor(window, PI)
Object {value: 3.1415, writable: false, enumerable: true, configurable: false}
writable 和 configurable 都是 false。
二、多变量的模式赋值
写过 coffee-script 的人都知道,我们可以这样给一个数据赋值:
num[1..3] = ["hello", "i'am", "Barret Lee"]
ES6中也允许类似的多变量赋值:
var [x, y, z] = ["hello", "i'am", "Barret Lee"];
更强大的是,他还适合对象:
var { foo, bar } = { foo: "Barret", bar: "Lee" };
这种赋值方式是模式匹配的,只要左侧跟右侧对应,便可以成功赋值。感觉新手不会太适应这种写法。
三、数组推导
先看例子:
var a1 = [1, 2, 3, 4];
var a2 = [i * 2 for (i of a1)]; a2 // [2, 4, 6, 8]
这东西只是简化了编程,没有从根本上增加功能和特性,写 coffee 的人应该比较喜欢,我看着还是有点不习惯,其实上面的写法就等价于:
var a1 = [1, 2, 3, 4];
var a2 = a1.map(function (i) { return i * 2 });
我想除非是代码长度有限制,否则这玩意儿正式出来了我也不会用它。
四、字符串的扩展
这一块的内容相当于是给 JS 编码打一个补丁,这个补丁用来弥补双字节 UTF-16 字符带来的问题,引入的各个函数也只是对不同场景的修复。这个扩展还是相当重要的,尤其是 ArrayBuffer 中数据类型的相关处理,涉及到很多类似 Float64Array Uint32Array 等类型化数组的处理,我在 你所不知道的JavaScript数组 曾提到过。
1. codePointAt
这个地方需要解释下 JavaScript 对字符的储存模式,JavaScript 中的字符串是以 UTF-16 为代码单元,通常我们使用的字符范围都在 Unicode 值 0x10000 以内,他们对应的 UTF-16 就是它们自身,但 Unicode 中也存在这个范围之外的字符,这时候就需要两个 UTF-16 字符来描述,比如:
alert("ECMAScript 6入门的更多相关文章
- ECMAScript 6 入门
ECMAScript 6 入门 东西真多哇 http://es6.ruanyifeng.com/#docs/module 目录 前言 ECMAScript 6简介 let和const命令 变量的解构赋 ...
- ECMAScript 6 入门 ----Generator 函数
本文转自:阮一峰老师的ECMAScript 6 入门,有时间可以看下评论! Generator 函数 简介 基本概念 Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不 ...
- 阅读:ECMAScript 6 入门(4)
参考 ECMAScript 6 入门 ES6新特性概览 ES6 全套教程 ECMAScript6 (原著:阮一峰) JavaScript 教程 重新介绍 JavaScript(JS 教程) 数组的扩展 ...
- 阅读:ECMAScript 6 入门(3)
参考 ECMAScript 6 入门 ES6新特性概览 ES6 全套教程 ECMAScript6 (原著:阮一峰) JavaScript 教程 重新介绍 JavaScript(JS 教程) 字符串的扩 ...
- 阅读:ECMAScript 6 入门(2)
参考 ECMAScript 6 入门 ES6新特性概览 ES6 全套教程 ECMAScript6 (原著:阮一峰) JavaScript 教程 重新介绍 JavaScript(JS 教程) Modul ...
- 阅读:ECMAScript 6 入门(1)
参考 ECMAScript 6 入门 ES6新特性概览 ES6 全套教程 ECMAScript6 (原著:阮一峰) JavaScript 教程 重新介绍 JavaScript(JS 教程) 前言 学了 ...
- Vue.js + Webpack + ECMAScript 6 入门教程
Vue.js学习教程 1.Vue.js——60分钟快速入门 2.Vue.js——60分钟组件快速入门(上篇) 3.Vue.js——60分钟组件快速入门(下篇) 4.Vue.js——基于$.ajax实现 ...
- 读阮一峰《ECMAScript 6 入门》小结
读阮一峰<ECMAScript 6 入门>小结,http://es6.ruanyifeng.com/ 1. ES6简介 Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转 ...
- 《ECMAScript标准入门》第二版读书笔记
title: <ECMAScript标准入门>第二版 date: 2017-04-10 tags: JavaScript categories: Reading-note 2015年6月, ...
随机推荐
- IOS开发基础知识--碎片11
1:AFNetwork判断网络状态 #import “AFNetworkActivityIndicatorManager.h" - (BOOL)application:(UIApplicat ...
- Editplus配置VC++(2) 与/d1reportSingleClassLayout
前篇文章:Editplus配置VC++(1) 及相关注意事项 VC++有两个隐含编译选项/d1reportSingleClassLayout和/d1reportAllClassLayout /d1 ...
- APC注入(Ring3层)
/* 步骤: 1.提权(GrantDebugPrivileges) (1)获得令牌token,OpenThreadToken(),OpenProcessToken () WINADVAPI BOOL ...
- 锋利的jQuery-7--编写插件基础知识
插件的基本要点: 1.命名推荐:jquery.[插件名].js,避免和其他js库插件混淆. 2.对象方法附加到:jQuery.fn上,全局函数附加到:jQuery对象本身. 3.在插件内部,this指 ...
- bc
调试脚本报错bc: command not found 原因是因为这个linux环境里没有安装计算器工具bc 用 apt-get install bc 或者 yum -y install bc 安装后 ...
- android开发步步为营之68:Facebook原生广告接入总结
开发应用的目的是干嘛?一方面当然是提供优质服务给用户,还有一方面最重要的还是须要有盈利.不然谁还有动力花钱花时间去开发app? 我们的应用主攻海外市场,所以主要还是接入国外的广告提供商.本文就今天刚完 ...
- Makfile文件编写
一.make是什么 GNU make是一个工程管理器,专门负责管理.维护较多文件的处理,实现自动化编译.如果一个工程项目中,有成百上千个代码源文件,若其中一个或多个文件进过修改,make就需要能够自动 ...
- 【Saltstack】Saltstack简单说明
[Saltstack] Saltstack是一个服务器集中管理中心平台,可以帮助管理员轻松的对若干台服务器进行统一操作.类似的工具还有Ansible,Puppet,func等等.相比于这些工具,sal ...
- pxe+Kickstart自动装机补充知识点
1.vmlinuzvmlinuz是可引导的.压缩的内核.“vm”代表“Virtual Memory”.Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制.Linux能够使用硬盘 ...
- [原][osg]osg文件与osgb文件的区别
osgb是二进制文件 osg是文本文件 osgb可以通过osgconv.exe转换成osg文件 osgb可以包含纹理文件(就是贴图) osg只能连接外部纹理文件(是的,你看到的cow.osg都是用的外 ...