• es6—const


    1.定义变量 但是值是常量,一旦赋值,不能再改变

    2.不能重复定义变量

    3.没有变量提升

    4.不会给window添加属性

    变量的解构赋值

      数组结构赋值

        1.前后模式必须匹配

          后面的值是什么格式,前面的变量声明也得是什么格式

          后面值是二维数组 前面声明的也得是二维模式

         2.前多后少

          前面声明的变量多,后面赋值的值少,解构不成功,就相等于只声明了变量,但没有赋值,如果解构不成功,变量的值就等于undefined

        3.前少后多

          (1)省略赋值

           (2)不定参数解构赋值  只能写在后面

         4.带默认值得问题

          问题 先给默认值 再解构赋值?还是先结构赋值,不考虑默认值?

          

          没有输出haha 说明不是先给默认值,而是先解构赋值,不在考虑默认值

          所以就是解构不成功的时候,才会走默认值。

          Var a = null  a=[]  a={}  a=”” 这都叫定义了

          Var a=undefined 才叫没定义

          所以只有结构的时候,后面是undefined的时候,才会走默认值,否则后面给 什么就赋值什么

     

      对象解构赋值

      1. 变量和属性必须同名,才可以解构赋值
      2. 如果解构失败,值是undefined
      3. 如果变量名跟属性名不一致
      4. 对象解构的默认值问题

            默认值跟数组解构的默认值是一样的,解构成功就直接赋值,不走默认值,结 构不成功就走默认值,或者值是undefined走默认值

            Let {name,age=45}={name:”zhang”}  age= 45  no

            Let {name,age=45}={name:”zhang”,age:undefied}  age= 45  no

            Let {name,age=45}={name:”zhang”,age:12}  age= 12  

            Let {name,age=45}={name:”zhang”,age:null}  age=null

        5.对象解构赋值的注意点

          {}前面不能没有东西 {a}={a:12}

        6.等号右边在什么情况下等解构?

          等号右边的值只要带有length属性,都可以解构

          函数参数的解构

      函数作用域

        函数在调用的是时候回形成一个私有作用域,在这个作用域下声明的变量和参数变量都 是私有变量,外界访问不到,同时他也在操作相同的变量时,不会操作外部的

      箭头函数

          Let fn=(形参)=>{函数体}

        箭头函数只适合用在匿名函数

          匿名函数:只要不是关键字 function 声明的函数都叫匿名函数   每一个函数结束一定要一个return

          当值有一个参数的时候,可以省略()

          当函数体只有一横代码且是return  xxx 时可以省略{}return

        

        箭头函数的优势

      1. 箭头函数没有this指向

            函数中改变this指向的方向

            (1) 在函数前提前对this赋值  that= this

            (2) 在函数结尾处{}.bind(this)

            (3) 在函数的结尾处{}.apply{this}或者是{}.call{this}

            (4) 使用箭头函数

          2.箭头函数获取实参,不能使用arguments ...

          3.箭头函数不能充当类

            因为里面的this指向window,而类中的this指向当前实例对象

      函数的角色

        

        函数可以扮演 类 普通函数 function的实例对象

        类

          每个类身上天生有一个prototype的属性,这个属性值一个对象,里面有一个constructor的属性,属性值是类(函数)本身。

           New实例的时候其实就是调用这个constructor函数

        对象

          每个对象天生有一个__proto__的属性,__proto__也是一个对象。这个对象也有一个constructor属性,属性值是他的类

        

        注意:1.Object是所有电源线的基类 2.普通函数的父类是function   3.构造函数的父类是object   4.所有实例对象的__proto___都指向父类的原型prototype

        对象.属性

          首先看对象中私有的属性中有没有这个属性,有直接用,没有就使用__proto__向他的父类的原型(prototype)上查找

  • 相关阅读:
    windows下 php-cgi.exe 0xc000007b 错误 阿星小栈
    call to undefined function openssl cipher iv length() 报错 PHP7开启OpenSSL扩展失败 阿星小栈
    PHP json_encode返回的json前端获取时出现unicode转码和反斜杠导致无法解析的解决办法
    Warring:POST Content-Length of 625523488 bytes exceeds the limit of 8388608 bytes in Unknown on line 0 阿星小栈
    PHP数组分割成新数组 阿星小栈
    Laravel ajax请求419错误及解决办法(CSRF验证) 阿星小栈
    MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded... 阿星小栈
    Laravel框架发送邮件 阿星小栈
    PHP 导出Excel三种方式 阿星小栈
    mysql命令 出现ERROR 1054 (42S22): Unknown column 'password' in 'field list'
  • 原文地址:https://www.cnblogs.com/gaoyan11/p/11157263.html
Copyright © 2020-2023  润新知