ES6笔记

ES6语法

一、声明方式

  1. var:变量。
  2. let:变量(有作用域)。
  3. const:声明常量。

二、变量的解构赋值

2.1 数组的解构赋值:
  • 简单的数组解构:(注:左右两边的结构必须严格一致,否则解构失败)

    let a=0;
    let b=1;
    let c=2;
    
    // 演化成
    => let [a,b,c]=[1,2,3];
  • 解构的默认值:

    let [a, b = 'bbb'] =['aaa'];
    console.log(a + b); 
    => aaabbb  //浏览器输出
    
    let [a, b = 'bbb'] =['aaa', undefined];
    console.log(a + b); 
    => aaabbb  //浏览器输出
    
    let [a, b = 'bbb'] =['aaa', null];
    console.log(a + b); 
    => aaanull  //浏览器输出

    小结:注意 undefinednull 的区别。

  • 数组的函数解构

    let arr = ['aaa', 'bbb', 'ccc'];
    function fun(a, b, c){
        console.log(a, b, c);
    }
    
    fun(...arr);
2.2 对象的解构赋值
  • 对象的结构按照属性(key)来的,就是键值对要匹配。

    let {a, b} = {a: 'aaa', b: 'bbb'};
    console.log(a + b); //控制台打印出了“aaabbb”
  • 对象的函数结构

    let json = {
        a: 'aaa',
        b: 'bbb'
    }
    function fun({a, b='hahaha'}){
        console.log(a,b);
    }
    fun(json);
2.3 字符串解构
  • 字符串的解构,可以看作是一个类似数组的对象。

    const [a,b,c]= "ABC";
    console.log(a);
    console.log(b);
    console.log(c);

三、扩展运算符和rest运算符

3.1 扩展运算符 => 对象扩展运算符(…)
  • 应用1:可变参数

    function print(...arg){
    console.log(arg[0]);
    console.log(arg[1]);
    console.log(arg[2]);
    }
    print(1,2);
    
    => 1, 2, undefined //控制台输出
  • 应用2:复制扩展

    let arr1 = ['aaa','bbb','ccc'];
    let arr2 = [...arr1]; //通过扩展运算符
    arr2.push('ddd');
    console.log(arr1);
    console.log(arr2);
    
    
    =>['aaa','bbb','ccc']
    =>['aaa','bbb','ccc', 'ddd']
3.2 rest运算符
// 类似可变参数
function print(...arg){
    // for…of的循环可以避免开拓内存空间,增加代码运行效率;
    for(let val of arg){
        console.log(val);
    }
}

print(0,1,2,3,4,5,6,7);

=> 0,1,2,3,4,5,6,7

四、字符串模版

4.1 字符串拼接(注意:这里的字符串使用“包裹,不是单引号,也不是双引号)
let temp = '我是字符串';
let str = `你好,${jspang},哈哈`;
document.write(str);
4.2 操作字符串的方法
indexOf() //查找指定的字符串是否存在
includes() //true:说明包含指定的字符串
startsWith() // 判断该字符串是不是已指定的字符串开始
endsWith() // 判断该字符串是不是已指定的字符串结尾
repeat() //将指定的字符串复制n次

五、数字操作

5.1 数字的判断与转换 Number.isFinite(xx)

可以使用来进行数字验证,只要是数字,不论是浮点型还是整形都会返回true,其他时候会返回false。

Number.isFinite(xx) //判断是不是数字
Number.isNaN(NaN) //判断是不是NaN,NaN是特殊的非数字
Number.isInteger(xx) //判断是不是整数
Number.parseInt(xx) //整形转换
Number.parseFloat(xx) //浮点型转换
Math.pow(2,53)-1 // 整形的取值范围
Number.MAX_SAFE_INTEGER //最大安全整数
Number.MIN_SAFE_INTEGER //最小安全整数
Number.isSafeInteger(xx) //安全整数判断

六、数组

6.1 JSON数组格式转换

JSON的数组格式是一种快速把JSON转换成数组的格式,

// 传统写法
let  json = {
    '0': 'aaa',
    '1': 'bbb',
    '2': 'ccc'
}

// ES6写法
let  json = {
    '0': 'aaa',
    '1': 'bbb',
    '2': 'ccc',
    length: 3 //多了一个length熟悉
}

let arr=Array.from(json);
console.log(arr)
6.2 Array的方法:
Array.of(...args); //将可变参数args转成数组
find() //Array的实例方法,用于查找数组中的数据
fill()  //Array实例方法:对数组进行填充,它接收三个参数,第一个参数是填充的变量,第二个是开始填充的位置,第三个是填充到的位置。
for...of //数组的遍历
6.3 数组的遍历
  • 不带索引 (for…of循环)

    for (let item of arr){
        console.log(item);
    }
  • 带索引

    let arr=['aaa','bbb','ccc']
    for (let index of arr.keys()){
        console.log(index);
    }
  • 带索引和值

    let arr=['aaa','bbb','ccc']
    for (let [index,val] of arr.entries()){
        console.log(index+':'+val);
    }
  • entries()实例方法:

    entries()实例方式生成的是Iterator形式的数组用next()手动跳转到下一个值。

    let arr = ['aaa','bbb','ccc']
    let list = arr.entries();
    console.log(list.next().value);
    console.log(list.next().value);
    console.log(list.next().value);
  • forEach遍历

    let arr = ['aaa','bbb','ccc']
    arr.forEach((val,index)=>console.log(index,val));
  • filter

    let arr = ['aaa','bbb','ccc']
    arr.filter(x=>console.log(x));
  • some

    let arr = ['aaa','bbb','ccc']
    arr.some(x=>console.log(x));
  • map

    let arr = ['aaa','bbb','ccc']
    console.log(arr.map(x=>'web'));

七、箭头函数和扩展

略…

八、补充

8.1 in的用法

用来判断对象或者数组中是否存在某个值的

  • 对象判断

    let obj={
        a:'aaa',
        b:'bbb'
    }
    console.log('a' in obj);  //true
  • 数组判断

    let arr1=['aaa', 'bbb'];
    console.log(0 in arr1);  // true 0代表角标
8.2 数组转换字符串
  • join()方法

    let arr = ['aaa','bbb','ccc']
    console.log(arr.join('|'));
  • toString()方法

    let arr = ['aaa','bbb','ccc']
    console.log(arr.toString());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值