1.声明变量
ES6中声明变量的方式:
//1.使用let声明
let a = 2;
//2.使用const声明
const name = "zhangsan";
2.var ,let , const 的区别
let代码块内有效,var 是在全局范围内有效.let 只能声明一次 var 可以声明多次.let 不存在变量提升,var 会变量提升.
const 声明一个只读变量,声明之后不允许改变。意味着,一旦声明必须初始化,否则会报错
3.暂时性死区
ES6 明确规定,代码块内如果存在 let 或者 const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。
4.函数定义
es5中函数定义:声明式:var fn = function(){}。函数式:function show(){}
es6中函数定义:替换了函数式为箭头式函数:var fn =(n)=>{alter(n)}
5.字符串遍历
let str = "zhangsan";
//1.for遍历
for (let i = 0; i < str.length; i++) {
console.log(i, str[i]);
}
//2.数组
let arr = [1, 2, 3];
for (let i in arr) {
console.log(i, arr[i]);
}
//3.for of
for(let i of str){
console.log(i);
}
6.es6中新增的字符串方法
includes("xxx") 判断字符串中是否包含xxx字符
endWith("xxx") 判断字符串是否以“xxx”结尾
startWith("xxx") 判断字符串是否以“xxx” 开头
repeat(n) 重复拼接n次 :name+name+name.....
7.es6对象扩展
1.属性简写:
var a = {c:c,b:b} 等价于 var a = {c,b} 。因为属性值一致,可以简写。
2.方法简写:
var obj = {
method(){ alter("aaaa")}
}
等价于: var obj = {method:function(){alter("aaaa")}} 其实就是去掉了一个function
3.属性名:
方式1:obj.name = "aaa" 方式2: obj["name"] = "aaa"。
es5中只能使用方式一,es6中可以使用方式二
8.es6的object扩展
es5比较两个值是否相等,只有两个运算符:相等运算符(==
)和严格相等运算符(===
)。它们都有缺点,前者会自动转换数据类型,后者的NaN
不等于自身。
在es6中使用Object.is().判断同值相等,与es5的=== 类似,区别:es6中使用is(): +0
不等于-0
,NaN
等于自身。es5中都不相等。
9.es6中map结构
Map的遍历
- let of 遍历map
- forEach 遍历 map
- let of 遍历map.keys
- let of 遍历map.values
// 1.let of 遍历map
for (let i of map) {
console.log(i[0], i[1]);
}
// 2.foreach 遍历 map
map.forEach((k, v) => {
console.log(k, v);
})
// 3.let of 遍历map.keys
for (let k of map.keys()) {
console.log(k, map.get(k));
}
// 4.let of 遍历map.values
for (let v of map.values()) {
console.log(v);
}
map结构类型间转换
map ——》对象——》string
forcach遍历map 变成对象,json.stringify(对象)变成string
string ——》对象——》map
Json.pase -> 对象 for ... in .. 遍历对象 map.set(i,obj[i])变成map
10.数组的扩展
用于将两类对象转为真正的数组 array.form()
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
// ES5的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']
// ES6的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
Array.from('hello')
// ['h', 'e', 'l', 'l', 'o']
还有很多新特性,例如class的继承,异步操作,Async函数等新特性,
更多特性查看:https://es6.ruanyifeng.com/