es6相关语法

写在开头

  1. 以前学习js的之后es6语法一直没有系统性学习,今天专门抽时间学习一下,希望可以有所收获,细节拉满
  2. 本文章参考自 稀土掘金——网络被骗500《ES6核心,值得驻足花一天时间来学习》

let 和 const

es5变量申明方式 var function
es6新增let 和 const 还有import 和 class

  1. let 变量
    {
    let a = 0;
    var b = 1;
    }
    console.log(a,b) //这边会报错说a未定义 
    
    • 为什么会未定义是因为let 存在块级作用域,对变量进行限制,只存在块级作用域里
    • let 不存在变量提升(面试都问烂了)出现暂时性死区
    • 为什么出现暂时性死区呢?因为es6规定,用let和const申明的变量,在一开始就形成了块级作用域,在开始是没有办法访问的,知道声明语句完成,才能被访问。
    • let 不允许重复声明变量
  2. const 常量(声明一个只读属性的变量,不可更改,不可先声明后赋值,生成块级作用域)
    • let 有的它都是有的
    • 保证常量的原理,只能保证常量栈区的值是不变的,也就是说基本类型的值可以保持不变,如果这个值是一个引用数据类型,栈区保存的是对应常量的地址,地址是不变的,但是堆区内容确实可以改变的
    • 真正的常量 Object.freeze()

字符串方法

  1. for of 字符串遍历
    const a = "wdnmd"
     for(item of a ){
        console.log(item)
     }
     //w d n m d
    
  2. includes方法(有用到过)判断是否存在值,他和indexof都能判断字符串和数组,但是indexof判断NaN的时候不准确
  3. repeat()(用到过)
    var a='lang'
    console.log(a.repeat(3));//langlanglang
    
  4. startwith,endwith(没见过)
    startWith('str',n):返回布尔值,表示参数字符串是否在原字符串的头部。
    endsWith('str',n):返回布尔值,表示参数字符串是否在原字符串的尾部。其中str表示要判断的值,n表示从目标字符串的第几个元素开始。
    var str='hello world'
    console.log(str.startsWith('hello',0)); //true
    console.log(str.startsWith('world',6)); //true
    console.log(str.startsWith('world',0)); //false
    
  5. 模板字符串!!!!(非常常用)在模板字符串的 ${} 中可以写任意表达式,但是同样的,对 if / else 判断、循环语句无法处理。

函数拓展

  1. 函数可以指定默认值
    function con(a,b=5){
        console.log(a,b)
        return b
    }
    //注意的点就是,不能使用let,const重复声明
    
  2. 箭头函数(超重点!)
    • 箭头函数体内的this对象,就是指向定义它所在的父级,而不是使用时候的对象,this指向是永远无法改变的,定义的时候就确定了
    • 不可以使用构造函数,不可以用new
    • 不能使用arguments对象,可以用rest参数代替
    • 箭头函数没有原型prototype 函数本身是没有this的

数组扩展

  1. 扩展运算符(...)
//可以用于拼接数组
const arr = [11,2]
console.log([1,...arr,5,...arr])

//返回不是一个数组,而是各个数组的值
 var arr=[1,2,3]
 function f(x,y,z){
  return x+y+z
  }
  console.log(f(...arr));  //6

解构赋值

  1. 数组解构
分离变量的声明
let a,b
[a,b]=[1,2]
//a =1 ,b=2

//也可以设置默认的值
[a=5,b=7] = [1]
//a =1,b=7
  1. 对象解构
var {a = 10, b = 5} = {a: 3};

console.log(a); // 3
console.log(b); // 5
posted @ 2022-01-06 18:35  春天游泳。  阅读(58)  评论(0编辑  收藏  举报