[译]Understanding ECMAScript6 基本知识
基本知识
ECMAScript 6在ECMAScript 5之上做了大量的改变。一些改变很大,比如添加新的类型或者语法,而其它的非常小,提供了语言之上的渐进改进。这个章节包含了那些渐进改进,它们可能不会获得很多关注但提供了一些重要的功能,使得某些类型的问题更容易解决。
更好的Unicode支持
ECMAScript 6之前, JavaScript是完全基于16位字符编码的想法。所有的字符串属性和方法,比如length与charAt() ,是基于每一个16位序列表示一个字符这一想法。ECMAScript 5 允许JavaScript 引擎来决定使用UCS-2 或者UTF-16 (两个编码都使用16位编码单元,所有的操作是一样的)这两个编码中的哪一个。确实世界上所有的字符串曾一度适合16位,然而情况已不再如此。就Unicode对世界上的每一个字符提供全球唯一标识的既定目标而言,保持16位是不可能的。这些全球唯一标识,被称为码点,只是简单的从0(你可能会认为这些是字符编码,但是有些微差异)开始的数字。字符编码负责将码点编码成内部一致的编码单元 。UCS-2 有一对一的映射,码点到编码单元,UTF-16则更加灵活。
在 UTF-16中,第一个 2^16 码点被表示为单个16位编码单元。称为基本多文种平面Basic Multilingual Plane (BMP)。一切超出这个范围的东西被认为是辅助平面,这里的码点不能再被表示为仅仅16位。UTF-16通过引入代理对解决了这个问题,在这里,一个单一的码点被表示为两个16位编码单元。这意味着字符串中的任意一个单一字符可以是一个编码单元(对于MBP,总共16位)或者两个编码单元 (对于复制平面字符,总共16位)。
ECMAScript 5保持所有的操作都工作在16位编码单元,这意味着你可以从包含了代理对的字符串中得到意想不到的结果。比如:
var text = "[译]Understanding ECMAScript6 基本知识的更多相关文章
- [译]Understanding ECMAScript6 迭代器与生成器(未完)
迭代器在许多编程语言中被作为一种更易处理数据集合的方式被使用.在ECMAScript6中,JavaScript添加了迭代器,将其作为此语言的一个重要特征.当再加上新的方法和新的集合类型(比如集合与映射 ...
- [译]Understanding ECMAScript6 对象
对象 ECMAScript6将大量精力聚焦在提升对象的实用性性上.聚焦的意义在于JavaScript中几乎每一个值是由对象中的某种类型表示.此外,在一个普通的JavaScript程序中使用对象的数量持 ...
- [译]Understanding ECMAScript6 函数
函数 函数是任何编程语言的重要组成部分,而自从JavaScript被引入以来,JavaScript的函数就未有太多改变.遗留下来的积压问题及微妙行为使我们很容易犯错误,或者需要更多的代码来实现一个非常 ...
- [译]Understanding ECMAScript 6 内容目录
说明 浏览器与Node.js兼容 这本书是写给谁的 概述 帮助与支持 基本知识 更好的Unicode支持 其他字符串变化 其他正则表达式变化 Object.is() 块绑定 解构赋值 数字 总结 函数 ...
- [译]Understanding ECMAScript 6 说明
说明 JavaScript核心语言功能定义在ECMA-262中,此标准定义的语言是ECMAScript,浏览器中的JavaScript和Node.js环境是它的超级.当浏览器与Node.js想要通过额 ...
- 试译 Understanding Delta-Sigma Modulators
接触Σ-Δ调制的时候发现国内有关的资料比较匮乏,因为缺乏了解还有一些人把其中的原理吹得神乎其神难以理解.其实Σ-Δ调制的原理是很简单.逻辑上很自然的,可以定性理解成传统ADC/DAC量化的是 ...
- 关于ECMAScript6一些知识
ECMAScript 是当前 JavaScript 语言规范的最新标准,一般称为 es6, 但是因为 该标准规范是在 2015年6月份发布的,所以也叫作 ECMAScript 2015 let 变量声 ...
- 前端MVC Vue2学习总结(七)——ES6与Module模块化、Vue-cli脚手架搭建、开发、发布项目与综合示例
使用vue-cli可以规范项目,提高开发效率,但是使用vue-cli时需要一些ECMAScript6的知识,特别是ES6中的模块管理内容,本章先介绍ES6中的基础与模块化的内容再使用vue-cli开发 ...
- (译)理解 LSTM 网络 (Understanding LSTM Networks by colah)
@翻译:huangyongye 原文链接: Understanding LSTM Networks 前言:其实之前就已经用过 LSTM 了,是在深度学习框架 keras 上直接用的,但是到现在对LST ...
随机推荐
- ansible-playbook初始化服务器
hosts ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ [test] 0.0.0.0 ansible_ssh_us ...
- js获取dom对象style样式的值
js获取到的dom对象的style通常是没有值得,因为我们都写在外部文件中,从慕课网上见到讲师封装的一个方法,挺不错.特此记录下来. function getStyle(obj,attr){ if(o ...
- hdu-4991 Ordered Subsequence(dp+树状数组)
题目链接: Ordered Subsequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- [TJOI 2018] XOR
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5338 [算法] 首先对这棵树进行树链剖分 那么我们就将一个树上的问题转化为一个序列上 ...
- zookeeper分布式安装
1.先把zookeeper-3.5.2-alpha.tar上传解压到/usr/local/下重命名为zookeeper ############# zookeeper env ############ ...
- CentOS 6 命令行下安装 VirtualBox 虚拟机步骤
CentOS 6 命令行下安装 VirtualBox 虚拟机步骤 1. 准备工作 安装内核更新 yum install kernel-develyum update kernel*如果内核有更新,则需 ...
- PHP + zTree插件树型文件夹显示
zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点.专门适合项目开发,尤其是 树状菜单.树状数据的Web显示.权限管理等等. ...
- PHP 时间戳
<?php php 获取今日.昨日.上周.本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime.下面首先还是直奔主题以示例说明如何使用 mktime 获取今日.昨日 ...
- Eclipse中导入Hadoop源代码工程
以hadoop 2.7.3为例, jdk1.7.0_80 , Eclipse Mars(4.5), Apache Maven 3.0.5 mvn时需要使用root权限,即县切换到root用户,用命 ...
- D - Opponents
Description Arya has n opponents in the school. Each day he will fight with all opponents who are pr ...