ES6语法

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不等于-0NaN等于自身。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/ 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值