• es6 基础知识详解 变量 字符串 解构赋值 函数 对象 从入门到精通


    变量声明

    let

     不存在变量提升

    1. console.log(name)//没有变量提升 所以未定义 直接报错
    2. let name = '12132123'

    有块级作用域

    1. if(true){
    2. let name = "sjf"
    3. }
    4. console.log(name)//由于 name 在if 的块级作用域中 在外面无法访问 报错

     不能重复声明

    1. let sex = "男"
    2. let sex = "女"
    3. //直接报错

      暂时性死区

    1. name = 9999
    2. let name = "sjf"//没有声明变量就直接使用

    const

            同上 let 

            不同的地方

            

            const 定义的是常量,定义之后不能修改,

    1. const info = {
    2. name:'sjf',
    3. age:18
    4. }
    5. info.name = "sjf1"
    6. info.age = 20//const 定义的数据是引用数据类型 可以修改

    如果定义的是引用数据类型 则可以修改数据

    字符串

            模板字符串

            startsWith

             以什么开头 返回true或者false

    1. let str = "何以解忧,唯有杜康"
    2. let flag1= str.startsWith("何以")//true

              endsWith

              以什么结束 返回 true 或者 false

    1. let str = "何以解忧,唯有杜康"
    2. let flag2 = str.startsWith('解忧')//false

            includes

            字符串是否包含 某些字符  返回之值boolean 比indexOf 更语义化也更方便

    1. let str = "何以解忧,唯有杜康"
    2. let includeFlag = str.includes("唯有")
    3. console.log("includeFlag",includeFlag)

            padStart

            开始位置补全

    1. let str = "aa"
    2. let padL = str.padStart("3",000)
    3. console.log(padL)//0aa

            padEnd 

            结束位置补全

    1. let str = "aa"
    2. let padL = str.padEnd("3",000)
    3. console.log(padL)

    解构赋值

    解构赋值的条件

    左右两边结构相等

    右边是个东西(即 是合法的数据i)

    数组的解构赋值

    1. let [a,b,c]=[1,2,3]
    2. console.log("abc",a,b,c)//1,2,3

    对象的解构赋值

    普通解构

    1. let {
    2. a,
    3. b
    4. } = {
    5. a: '3333',
    6. b: 44
    7. }
    8. console.log(a, b)//"3333",44

    给对象的属性重命名 解构

    1. let { a: vara, b: varb } = {
    2. a: '222',
    3. b: 333
    4. }
    5. console.log(vara, varb)//"222",333

    多层嵌套

    1. let {
    2. info,info:{name,age}
    3. }={
    4. info:{
    5. name:'sfjkfD',
    6. age:18
    7. }
    8. }
    9. console.log('999',info,name,age)//{ name: 'sfjkfD', age: 18 } sfjkfD 18

    函数

    函数的默认参数

    1. let fn = (a=1,b=2)=>{
    2. return a+b
    3. }

    函数的剩余参数 没有arguments

    1. let fn1 = (...args)=>{
    2. console.log(args) //[ '23423', 'r32423423' ]
    3. }
    4. fn1('23423','r32423423')

    箭头函数

    let fn = (value)=>value*2

    箭头函数的特点

    1. 箭头函数没有自己的this,谁调用指向谁
    2. 箭头函数没有arguments,需要用剩余参数 ...args 代替
    3. 箭头函数不能所为构造函数,使用new方法 创建实例

    对象

    属性名表达式

    1. let info = {}
    2. info['a'+'b']=true
    3. console.log(info)

    遍历对象

    for in 

    遍历对象自身的和可继承的可枚举属性

    1. for(let k in info1){
    2. console.log("k",k)
    3. }

    如果只需要遍历对象自身的属性可以结合  hasOwnProperty 判断属性是否是对象自身的

    1. for(let k in info1){
    2. console.log("k",k)
    3. if(info1.hasOwnProperty(k)){
    4. console.log("ok",k)
    5. }
    6. }

    Object.keys()

    返回一个数组,包含自身的(不包含原型上的属性) 所有可枚举的属性

    1. Object.keys(info1).forEach(ele=>{
    2. console.log("k2",ele)
    3. console.log(info1[ele])
    4. })

     对象的扩展运算符

    解构赋值

    1. let {x,y,...z}={x:1,y:2,z:3,b:4}
    2. console.log(x,y,z)//1 2 { z: 3, b: 4 }

    扩展运算符

    1. let info = {
    2. name:'sjf'
    3. }
    4. let info1 = {
    5. age:1
    6. }
    7. let result = {
    8. ...info,
    9. ...info1
    10. }
    11. console.log(result)//{ name: 'sjf', age: 1 }

    Object.is()

    用于判断两数据是否相等,

    有两特殊点

    -0 和 +0 比较是不相等 返回  false

    NaN 和 NaN 比较返回true

    Object.assign()

    用户合并对象

    当对象的属性是基本数据类型时,是深拷贝,

    当对象的属性是引用数据类型时,时 浅拷贝

    合并多个对象时,后边的属性值回覆盖替换掉前面的属性值

    1. let info = {
    2. name:'sjf'
    3. }
    4. let info1 = {
    5. age:1,
    6. name:'fjs'
    7. }
    8. Object.assign(info,info1)
    9. console.log(info)//{ name: 'fjs', age: 1 }

  • 相关阅读:
    Debian/Ubuntu 安装 NodeJS【详细步骤】
    云原生技术实践:Kubernetes集群的部署与运维
    21年icpc上海区域赛B题Strange Permutations (容斥+生成函数)
    入门深度学习—从配置python到网络模型
    关于c语言二级指针和指针指向数组
    小试牛刀Linux信号
    计算机网络第四章——网络层(末)
    如何靠写代码赚钱?
    SpringBoot整合Redis事务特性实践整理
    R语言绘制瑞利分布和指数分布,并为瑞利分布着不同色
  • 原文地址:https://blog.csdn.net/qq_42389674/article/details/125719899