zoukankan      html  css  js  c++  java
  • ES6

    1 块级作用域

    在es6之前,js只有全局作用域和函数作用域,let关键字引入了块级作用域

    2 暂时性死区

    var 声明的变量可以在声明之前使用,相当于默认为其声明其值为undifind;

    let 声明的变量,只能先声明后使用,声明之前使用会报错

    3 const命令

    const是用来定义常量,声明的同时必须立即初始化。

    4 解构赋值

    let [a,b,c]=[1,2,3];//a=1;b=2;c=3
    
    let{ a=2; b; c=4}={...{a:3,b:4}};//a=3;b=4;c=4
    
    let { a=2; b; c=4}={a:3,b:4};//a=3;b=4;c=4
    
    let [a,b,c,d,e]='hello'; 可以理解为模式匹配

    5 模板字符串

    模板字符串采用反引号``标示,并且模板字符串中的空格、换行将在输出时有所保留

    let name='zhangsan';    `<span>${name}</span>`

    ${主体} 主体可以是表达式、运算、对象属性还可以是函数,若是字符串将直接输出这个字符串

    6 含参函数的调用

    function say(str){alert(str)}    say`hello`等同于say('hello')

    7 函数function

    function add(a=2,b=3){
    
      return a+b
    
    }
    
    add(3);//6
    
    add(1,1);//2

    为函数的参数添加默认值,执行函数时如果不传改参数,那么就用默认值替换;

    8 箭头函数

    var 变量名/函数名=(参数,参数)=>{代码块}

    var f=v=>v
    
    等同于 var f=function(v){return v}
    
    var f=()=>5
    
    等同于 var f=function(){return 5}
    
    var sum=>(num1,num2)={num1+num2}
    
    等同于 function sum(sum1,sum2){return num1+num2}

    如果return的是一个对象,省略return的箭头函数中右边需要用()包起来

    demo var obj=()=>({a:2})

    等同于:

    var obj=function(){retrun {a:2}}

    9 数组的扩展

    扩展运算符为三个点...,将一个数组转化为参数序列,通常与函数一起使用

    function sum(num1,num2){return num1+num2}
    
    sum(...[2,3]);//5

    数组的合并[...arr1,...arr2]

    字符串转字符数组[...'hello'] //["h","e","l","l","o"]

    10 数组的方法

    10.1 Array.from()      用于将两类对象转化为数组 1 类数组对象 2 实现Iterator接口的对象

    如果参数是一个数组,直接返回一个一样的数组,可以接受第二个参数,与map的功能类似

    let arr=Array.from([1,2,3],x=>x*x);//[1,4,9]

    10.2 Array.of() 用于将一组值,转化为数组

    基本上可以用来替换Ayyay()或者ne

    [3,4,5,30,50,100].find(fn,person);//此时fn中的this指向person,返回值是30;

    另外这两个方法都可以发现NaN,弥补了数组indexOf方法的不足

    10.6 fill()

    fill 方法用于用给定值填充一个数组

    new Array(3).fill(5)[5,5,5]
    
    new Array(3).fill('')    //['','','']
    
    [2,3,4].fill(6)             //[6,6,6]

    可以有第二个 第三个参数,指定填充开始的位置和结束的位置

    [2,3,4,5,6,7].fill(0,2,5)   //[2, 3, 0, 0, 0, 7]

    如果填充的类型为对象,那么被赋值的是同一个内存地址的对象,而不是深拷贝的对象。

    10.7 数组实例的entries() keys() values()

    都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历values()是对键值的遍历 entries是对键值对的遍历

    let arr=['a','b','c'];
    
    for(let index of arr.keys()){}
    
    for(let elem of arr.values()){}
    
    for(let [index,elem] of arr.entries()){}
    
    10.7 includes()
    
    Array.prototype.includes() 方法返回一个布尔值,表示某个数组是否包含给定的值;与indexOf()类似,includes可以判断NaN,indexOf不可以

    函数的length属性 返回没有指定默认值的参数的个数。如果指定默认值,length将失效

    (function(a,b,c){}).length//3
    
    (function(){}).length//0
    
    (function(a=1,b=2){}).length//0
    
    (function(a){}).length//1
    
    (function(a,b=2){}).le
  • 相关阅读:
    hdu2037 经典贪心入门
    hdu1045 dfs
    poj2243 bfs
    poj2488 dfs
    poj1111 DFS
    单词统计
    冲刺第五天
    七周总结学习笔记
    冲刺第四天
    冲刺第三天
  • 原文地址:https://www.cnblogs.com/xiaofenguo/p/10538057.html
Copyright © 2011-2022 走看看