ES6 阮一峰阅读学习

摘要:
参考:要开始使用ECMAScript 6,您应该看看它。JavaScript语言的下一代标准。发布于2015年6月,正式名称为ECMAScript 2015 Standard。ES6具有块级作用域,块级为{}。大括号是块级范围的范围。思考一下:这个范围有什么用?我通常不使用{}作为作用域。ES6允许您从数组和对象中提取值,并根据特定模式将值分配给变量,这称为解构。

参考:

ECMAScript6入门

 

就是随便看看,了解一下。

一、ECMAScript6简介

1. 什么是ECMAScript6? JavaScript语言的下一代标准。2015年6月发布,正式名称是《ECMAScript2015标准》。

思考:编程语言和英语、法语语言差不多吧。其实就是语言的标准、规范之类,和英语语法差不多的东西吧 = =!

二、let和const命令

1. let

1.1 声明的变量仅在块级作用域内有效

1.2 不存在变量提升

1.3 暂时性死区:使用let命令声明变量之前,该变量是不可用的

1.4 不允许重复声明

let a = 1;

思考:其实就是var变量自动提升和作用域容易产生错误,而出现let这样一个严谨定义的“局部变量”。

2. 块级作用域

ES5只有全局作用域、函数作用域。ES6有了块级作用域,块级就是{ }, 花括号内就是块级作用域的范围

思考:这个作用域有啥子用呢,平时也不使用{}来当作用域。

3. const命令

1.1 声明一个只读的常量,常量的值不能改变(变量指向的内存地址的数据不得改动)

1.2 只在声明的块级作用域内有效

1.3 生命对象时,对象的值可改变,只是不能把变量指向另一个对象

const PI = 3.1415;

思考:这个const在其他语言里,用在比如事件名、模块名等等限制变量改变,比如publist static const LOGIN_EVENT:string = "LOGIN_EVENT"

           但是ES6里这个只能当成局部变量用...好想并没啥用...

三、变量的解构赋值

1.1 什么是解构? ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。

let a ;
let b ;
[a,b] = [1,2];
console.log(a,b);  //1,2

思考:个人看这个赋值比较难读不习惯,感觉用在swap交换数值上很好用,不需要定义temp临时变量写3行了 = =!

let a = 1;
let b = 2;
[a,b] = [b,a];
console.log(a,b);  //2,1

 四、字符串的扩展

1.1  字符unicode表示法

以前超出u0000-uFFFF范围的字符需要双字节表示 "uD842uDFB7",现在只需要加个花括号就行了u{1F680}。

1.2  codePointAt

以前的 var s =“吉” (上面是"土",不是"士",编码是4字节) 用chatAt(0)和charCodeAt(0)只能返回2字节,而codePointAt(0)可以正确处理4字节。

var s = "吉";     //实际码点是134071
s.charCodeAt(0);  //只能返回前2字节,55362
s.codePointAt(0); //能正确返回4字节,134071

1.3 String.fromCodePoint

同上,原来的fromCharCode只能处理2字节

String.fromCharCode(0x20BB7);  //返回不知名符号
String.fromCodePoint(0x20BB7); //正确处理4字节,返回"吉"(上面是"土")            

1.4 includes,startsWith,endsWith

1.5 模板字符串

以前
'There are <b>' + count + '</b>'
现在
‘There are <b>${count}</b>‘

就是以前是字符串+号拼接很麻烦,现在在多行字符串反引号(`) 内用&{count}来代入值很方便。

思考:基本都是String扩展了一些API,方便使用。

五、正则的扩展

思考:能不查表随手就写正则的是真男人,我就不受折磨了....

六、数值的扩展

1.1 二进制和八进制的表示法

二进制 0b1010

八进制 0o767

1.2 Number的扩展

基本就是Number扩展了一些API

1.3 Math对象的扩展

基本就是Math扩展了一些API

1.4 指数运算符

思考:就是对数值的处理上,在Number、Math等原数值处理的工具类上扩展了接口。

 待编辑...

 

  

免责声明:文章转载自《ES6 阮一峰阅读学习》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇论文阅读 | BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply ChainWPF RadioButton 绑定枚举下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

极光推送 JPush 简介 集成 MD

Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录JPush产品简介消息形式推送目标集成步骤FAQ简洁版自定义消息推送DemoActivityReceiver消息处理类B...

java代码POST方式请求SOAP

1 package com.http.soap; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.nio.charset.Charset; 7 8 impo...

kubelet全部参数整理

相关连接 #mem相关参数 https://github.com/kubernetes/community/blob/master/contributors/design-proposals/node/kubelet-eviction.md#enforce-node-allocatable https://www.cnblogs.com/breezey/...

MFC获取文本框字符串

//方法1:使用用GetDlgItem,得到控件对像, 再GetWindowText //GetDlgItem(IDC_EDIT1)->GetWindowText() //方法2:控件与对应类关联如:Edit Control拖放到面板上, 然后在上面右击添加变量, 选择控件变量 CEdit, //以后可以使用这个CEDit的...

11-C#反射机制

C#反射机制 转自:http://blog.csdn.net/educast/article/details/2894892 反射的用途:    (1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。     (2)使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所...

postman-变量/环境/过滤等

之前虽然自己也有用postman来测试api,但都只是最简单输入url,发送,查看结果,大部分时候跟使用浏览器差不多,偶然在简书首页看到一篇 API开发神器-Postman , 深感还是得对自己使用的工具多琢磨一下,兴许你就发现了宝贝,大大加快开发测试速度了; 这里没有打算写全面的教程,只对我之前没了解的环境设置/变量使用以及对返回结果进行过滤等操作进行记...