ES6 阮一峰阅读学习
参考:
就是随便看看,了解一下。
一、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范围的字符需要双字节表示 "\uD842\uDFB7",现在只需要加个花括号就行了\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 阮一峰阅读学习的更多相关文章
- es6阮一峰读后感
不经意间看了你一眼(阮一峰的es6读后感)我自己常用的 字符串篇:ES6 为字符串添加了遍历器接口(详见<Iterator>一章),使得字符串可以被for...of循环遍历.只要有遍历器接 ...
- ES6(阮一峰)学习总结
1.块级作用域的引入 在ES6之前,js只有全局作用域和函数作用域,ES6中let关键字为其引入了块级作用域. { var a = 5; let b = 6; } console.log(a); co ...
- Class 学习 (Es6阮一峰)
es5 构造函数 实例: function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function () ...
- ES6(阮一峰) 数组的扩展
1.扩展运算符 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(1, ...[2, 3, 4], 5) // ...
- ES6特性:(阮一峰老师)学习总结
ES6(阮一峰)学习总结 1.块级作用域的引入 在ES6之前,js只有全局作用域和函数作用域,ES6中let关键字为其引入了块级作用域. { var a = 5; let b = 6; } con ...
- 读阮一峰老师 es6 入门笔记 —— 第一章
鉴于最近用 vuejs 框架开发项目,其中有很多涉及到 es6 语法不太理解所以便认真地读了一下这本书. 地址:http://es6.ruanyifeng.com/#README 第一章:let ,c ...
- 【js 笔记】读阮一峰老师 es6 入门笔记 —— 第一章
鉴于最近用 vuejs 框架开发项目,其中有很多涉及到 es6 语法不太理解所以便认真地读了一下这本书. 地址:http://es6.ruanyifeng.com/#README 第一章:let ...
- 关于阮一峰老师es6(第三版)中管道机制代码的理解浅析
最近正在学习阮一峰老师的es6(第三版)教材,在学到第七章<函数的扩展>中的箭头函数嵌套时,文中提到了一个关于“管道机制”的示例,文中源代码如下: //es6(第三版)教材中的管道机制源代 ...
- 阮一峰 ES6
阮一峰 ES6:http://es6.ruanyifeng.com/#docs/module
随机推荐
- ng-bind-html-unsafe的替代
angular 1.2以后(或更早?)移除了ng-bind-html-unsafe,那么我要用这个directive来绑定html代码怎么办?随便一测试,它是不支持把html直接传给它的: //htm ...
- python的redis简单使用
安装的Python版本 3.6.1 redis安装的2.8 安装redis模块 pip install redis 简单使用 redis-test.py import redis r=redis.Re ...
- 小波变换——哈尔小波,Haar
哈尔小波转换是于1909年由Alfréd Haar所提出,是小波变换(Wavelet transform)中最简单的一种变换,也是最早提出的小波变换. Alfréd Haar,1885~1933,匈牙 ...
- VC++关于UNICODE版本的开发
关于UNICODE版本的开发 代码转换方案 概述 在VC6.0中,相应的有一些宏来代替ANSI的函数.宏或数据类型,这些宏在ANSI编译条件中处理字符串为单字节,而在UNICODE中处理字符串为双字节 ...
- Batch Normalization 学习笔记
原文:http://blog.csdn.net/happynear/article/details/44238541 今年过年之前,MSRA和Google相继在ImagenNet图像识别数据集上报告他 ...
- MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes
今天在用Navicat导入SQL文件时报错:MySql 错误 Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes ...
- 安装centos6.5
我是在虚拟机上面安装的centos6.5,本机的系统是windows 2008 datacenter. 到这个地方下载镜像文件:http://mirrors.sohu.com/centos/6.5/i ...
- win10进入到安全模式的三种方法
这里介绍三种方法: 如果能够进入到系统 点击开始--设置--更新和安全--恢复,右侧点击高级启动中的立即重启 能够进入到登陆界面 进入到登录屏幕后,在按住 Shift 键的同时依次选择“电源” > ...
- RF实现多次失败重跑结果合并的基础方法和优化方法
实现思路:通过分次执行失败案例重跑,然后通过结果文件合并命令实现多次失败重跑结果文件的合并,并输出合并后的log和report文件: 说明:具体失败案例重跑命令和结果文件合并命令请参考本博客其他相关章 ...
- BootStrap Table将时间戳更改为日期格式
一.使用BootStrap Table遇到的问题: 1.MyBatis从数据库中取出的时间格式如下:2017-12-04 21:43:19.0,时间后面多了一个点零. 2.从BootStrap Tab ...