ES6 语法简介
参考: http://es6.ruanyifeng.com/
总结学习
JavaScript语言下一代标准,2015年6月正式发布。
1.let和const命令
let用作变量声明,只在代码块内有效
{let a = 1} console.log(a) //Error
可用于for循环
var a=[];
for(var i=0;i<10;i++){
a[i]=function(){
console.log(i);
}
}
a[6](); //10
let方法
var a=[];
for(let i=0;i<10;i++){
a[i]=function(){
console.log(i);
}
}
a[6](); //6
不过let不存在变量提升,不允许重复声明
const命令,常量声明,一旦声明不允许修改,声明的时候需要理解初始化,
2.字符串的扩展
at() ES5提供chartAt方法返回字符串给定位置的字符,该方法不能识别码点大于0xFFFF
的字符。at
方法,可以识别Unicode编号大于0xFFFF
的字符,返回正确的字符。
repeat()
方法返回一个新字符串,表示将原字符串重复n
次。
3.数值的扩展
Number.isFinite()用于检查一个数值是否为有限的
Number.isNaN() 用于检查一个值是否为NaN
Number.isInteger()用来检查一个值是否为整数
Number.EPSILON 新增了一个极小的常量
Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER 新增数值上下限
Math.trunc方法用于去除一个数的小数部分,返回整数部分
Math.sign() 方法用来判断一个数到底是整数、负数、还是零
Mah.cbrt() 方法用于计算一个数的立方根
4.数组的扩展
Array.from() 对象用于将类数组或可遍历的对象 转为真正的数组
Array.of()用于将一组值转为数组 Array.of(1,22,33) //[1,22,33];
find() 方法用于找出第一个符合条件的数组成员
findIndex() 方法用于返回第一个符合条件的数组成员的位置
fill() 方法使用给定值填充一个数组
5.函数的扩展
Object.is()比较两个值是否相等
Object.assign()用于对象的合并
6.Module
export命令用于规定模块的对外接口
import命令用于输入其他模块提供的功能
export default命令为模块指定默认输出
7.set
set:类似于数组,成员值唯一,本身是构造函数,用于生成set数据结构
var s = new Set();
s.add(3);
s.add(4);
s.add(3);
console.log(s); //Set {3, 4}
通过add方法添加成员,结果set结构不会出现重复的值
var arr = [1,1,2,4,6,8,6];
var setArray = new Set(arr);
console.log(setArray); //Set {1, 2, 4, 6, 8}
console.log(setArray.size) //5
set能接受数组作为参数,利用set去掉数组的重复成员 :[...new Set(array)]
set结构的属性 1,Set.prototype.constructor 构造函数默认set 2,Set.prototype.size 返回Set实例的成员总数
set结构的方法
1,add() 添加某个值,返回set结构本身。
2,delete() 删除某个值,返回一个布尔值,表示删除是否成功
3,has() 返回一个布尔值, 表示该值是否为Set成员
4,clear() 清除所有成员,没有返回值
var setOpa = new Set();
setOpa.add(2);setOpa.add(3);
console.log(setOpa); //Set {2, 3}
setOpa.delete(2);
console.log(setOpa) //Set {3}
console.log(setOpa.has(3)) //true
console.log(setOpa.has(2)) //false
setOpa.clear();
console.log(setOpa);//Set {}
Array.from方法可以将set结构转为数组
var setArrTran = new Set([1,1,4,3,5]);
console.log(Array.from(setArrTran)); //[1, 4, 3, 5]
遍历操作: keys() 返回键名的遍历器, values()返回键值的遍历器, entries()返回键值对的遍历器, forEach() 使用回调函数遍历每个成员
var setFor = new Set([1,2,4]);
setFor.forEach((value,index) => {
console.log(value * 2);
});
//2
//4
//8
7.Map
map:类似对象,也是键值对的集合,但是键名的范围不限于字符串, 其他和Set类似
参考: http://es6.ruanyifeng.com/
ES6 语法简介的更多相关文章
- ES6常用语法简介import export
ES6常用语法简介import export let与var用法区别 //var var a = []; for (var i = 0; i < 10; i++) { a[i] = functi ...
- freemarker语法简介
ftl是一种模板标记语言,用于渲染数据,输入html结构.语法简介如下: ${book.name} ${book.name?if_exists} //值是否存在 ${book.name??} //值是 ...
- es6语法重构react代码
1.使用React.Component创建组件,需要通过在constructor中调用super()将props传递给React.Component.另外react 0.13之后props必须是不可变 ...
- Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程(转)
目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介: 我们顺着所生成的脚本 ...
- vue 2.0 无法编译ES6语法
# vue2.0 webpack 无法编译 ES6 语法 之前在使用 vue 1.x 时用 vue-loader@8.0.0 版本可以正常打包vue的代码,包括ES6语法也能正常转为ES5语法,但是当 ...
- 把JavaScript代码改成ES6语法不完全指南
目录 * 核心例子 * 修改成静态变量(const)或块级变量(let) * 开始修改 * 疑问解释(重复定义会发生什么) * 疑问解释(let的块级作用域是怎样的) * 疑问解释(const定义的变 ...
- 让intellij idea 14 支持ES6语法
用eclipse做前端开发,用到了webpack,结果各种依赖导致软件卡的一比,简直不能动!虽然在同事的帮忙下,修改了一下配置,但仍然卡的没脾气.改用intellij idea 14解决了卡的问题,但 ...
- .vue文件在webstorm中es6语法报错解决方法
1 语法支持es6设置 Preferences > Languages & Frameworks > JavaScript 把 Javascript Language versio ...
- webpack打包不识别es6语法的坑
今天Vue项目npm run build 后webpack,报错uglifyjs,自己研究了一下,翻译过来,意思是不识别项目中写的高级语法,这里要把项目里es6语法转es5让浏览器识别, 也就是web ...
随机推荐
- local storage 简单应用‘’记住密码’
前些时候一直用cookie等来进行登录页面记住面膜操作,但是由于其存储容量小等缘故,所以后来转向local storage,原理为:当用户勾选记住密码时,local storage 存储用户名密码同时 ...
- JQuery EasyUI内Combobox的onChange事件
1.原始方法 我想写个html代码的都对下拉选择标签select不陌生,关于这个标签,在不加任何渲染的情况下,想要触发其onchange事件是很简单的一件事情,如下: <select id=&q ...
- RHCA442学习笔记-Unit11内存回收
Unit 12 Memory Reclamation 内存回收 学习目标: A. 了解和调整内存回收 ...
- android模拟器经常出现的一些问题及解决办法
1.Unable to get view server version from device exlipse下编写好android应用程序时候,右键项目 run as android applica ...
- Why String is immutable in Java ?--reference
String is an immutable class in Java. An immutable class is simply a class whose instances cannot be ...
- WPF遇到无边框的问题
今天做一个项目采用的是WPF开发并且在制作窗体的时候用到无边框的问题,由于WPF开发和winform开发用点不一样, 遇到了这个问题就帮这个遇到问题的解决方法写下来方便以后忘记了和给一些遇到的朋友做一 ...
- IBM发布AppScan Source 8.7:减少iOS企业级应用安全风险
IBM发布AppScan Source 8.7:减少iOS企业级应用安全风险http://automationqa.com/forum.php?mod=viewthread&tid=2570& ...
- 页面常见效果js实现
2015.12.2 页面常见效果js实现 [有没有觉得很坑,[笑哭,邮箱写上]] 复习: Js内置对象: 1.浏览器对象 window document history location event ...
- 【转载】NIO客户端序列图
步骤一:打开SocketChannel,绑定客户端本地地址(可选,默认系统会随机分配一个可用的本地地址),示例代码如下: SocketChannel clientChannel = SocketCha ...
- Sql Server 与CLR集成
.NET编程和SQL Server ——Sql Server 与CLR集成 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数等十分有限,经常需要外部 ...