ES6的一些新特性
来源:互联网 发布:七夕情人节html源码 编辑:程序博客网 时间:2024/05/01 11:41
ES6是ES5的最新一个版本,可以使用Google公司的Traceur编译器将ES6代码编译为ES5代码
let命令:
用于声明变量,类似于var,区别是声明的变量只在所属的代码块中有效,且let不会发生变量提升现象(function中使用var声明变量,无论在什么位置,都会提升到function顶部)
const命令:
用于声明常量,一旦声明,值是不可改变的(重新赋值会失败,但不会提示错误)
变量的解构赋值:
解构数组
var [a,b,c] = [1,2,3];等同于var a = 1;var b = 2;var c = 3;
解构变量
var {foo, bar} = {foo : 'aaa', bar : 'bbb'}
用途:可用于交换变量的值、函数返回多个值等
字符串相关扩展:
codePointAt方法(原先JS字符以UTF-16的格式存储,每个字符固定为2个字节,对于部分需要4个字节存储的字符,会被误认为是两个字符,ES6改善了这个问题),对应的方法是String.fromCodePoint(),用于从Unicode编号返回对应的字符串
repeat()方法,表示将原字符串重复N次,例子:"x".repeat(3) = xxx;
数值相关扩展:
ES6将parseInt()和parseFloat()改为Number.parseInt()和Number.parseFloat()
Number.isInteger()判断是否为整数(注意25.0也会返回true)
数组相关扩展:
Array.from()用于将类数组对象、可遍历的对象、ES6新增的Set和Map数据结构转换为真正的数组
Array.of()方法将一组值转换为数组,例子:Array.of(3,11,8) = [3,11,8]
find()和findIndex()方法用于找出第一个符合条件的数组
fill()填充数组,例子:['a','b','c'].fill(7) = [7,7,7]
对象相关扩展:
Object.is()比较两个值是否对等,类似===,不同之处是+0不等于-0,NaN等于NaN
另ES6增强了对象的写法,允许属性名是一个表达式
函数相关扩展:
允许参数设置默认值,例子:function a(x = 0, y = 0){}
箭头函数,例子:var f = () => 5表示var f = function (){return 5;}
var a = v => v表示var a = function(v){return v;}
Set和Map数据结构:
Set结构类似于数组,但其成员值是唯一的,没有重复值,例子:
var s = new Set([1,2,3,3,3]); //[1,2,3]
可以使用add()添加值、delete()删除值、has()返回布尔值检测是否存在、clear()清除所有成员(注意可以使用Array.from方法将该数据结构转换为数组)
Map结构(JS对象只能使用字符串作为键值,Map结构类似于对象,但是可以使用对象等作为键值类型)
var m = new Map();
m.set(a, "Hello"); //赋值
m.get(a); //取值
Map原生提供3个遍历器
keys()返回键名
values()返回键值
entries()返回所有成员
例子:for(let key of map.keys()){console.log(key);}
for...of遍历:
和for...in区别:for...in只可以获取键名,不能直接获取键值,for...of可以
可遍历数组、Set、Map等数据结构
添加了Promise对象表示将要发生的事件(异步操作)
添加了Class类的概念
实现了模块的功能,通过export关键字输出变量,在其它JS文件中通过import关键字加载这个模块(文件)
- ES6的一些新特性
- 【ES6】ES6的新特性
- ES6中的一些新特性
- ES6的新特性
- ES6的新特性
- ES6的新特性
- ES6的新特性
- ES6的一些特性
- ES6新特性的总结
- ES6的十个新特性
- ES6语法的新特性
- 一些实用的es6特性
- ES6的一些常用特性
- Node.js 4.0 的 ES6 新特性
- es6的新特性(一)
- 总结ES6常用的新特性
- ES6新特性 Class的实现
- 总结ES6常用的新特性
- 扯谈spring mvc之WebApplicationContext的继承关系
- Spring Boot属性配置文件
- IDF实验室 一种编码而已
- linux中的文本处理方法集锦
- C++第10/11周项目 继承与派生 【是春哥啊】(复习新版)
- ES6的一些新特性
- Qt应用程序中如何设置字符编码
- BestCoder Round #83 1004 && HDU-5683 zxa and xor (水)
- 解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
- MySQL安装启动时报错一则
- linux文件权限的总结
- 【SSH网上商城项目实战18】过滤器实现购物登录功能的判断
- gateway 默认路由获取与设置
- 337. House Robber III