• es6


    1.变量

      声明变量的方式:var function 用来定义变量

      es6定义变量的关键字

        let conts  class import  var function 

      备注:不能忽略函数的形参 函数的私有变量

    var 定义变量

      var变量能够提升但是不能定义 给window 添加一个属性

      function既可以提前声明 同时还定义了

      定义:所谓的定义就是给这个变量赋值了

    let是es6提供的一种声明变量的方式

      1.没有变量提升功能 在声明之前不能使用

      2.不能重复声明

      3.不会给window添加属性

    作用域

      var 作用域

        var 声明的变量 作用域分两种

        全局作用域

          在window下声明的变量或者是在函数外声明的变量

        局部作用域

          在函数内声明的变量

        了解浏览器执行的机制

          浏览器在执行的时候,首先开辟一个大空间叫window,  window下面分两个模块,一个叫栈,一个叫堆。栈用来存放变量的内存地址,堆主要存放代码块。然后浏览器从上到下执行代码

        function 申请的变量

          function 声明的变量也给window 添加一个属性属性值是方法。

        函数归属?

          1.函数归谁,跟他在哪调用无关,跟他在哪定义有关

          

            2.任何一个函数执行后都有一个返回值如果写了return,return的是什么就是什么,如果没有return就是undefined

          

            3.函数在if中的特殊情况

           

            在if语句中定义的函数,只声明不定义,当条件成立的时候,if模块中不管函数在哪声明的函数,都会第一步对函数先定义,在执行if里面的代码块

        let声明的变量  

          带{}的都是块级作用域(私有作用域),if(){}   for(){} 对象(){}函数不是块级作用域因为函数本身就是私有作用域

          var function  没有块级作用域这个概念,let和const有块级作用域这个概念

          1.在块级作用域下var 和function 跟在window下一样,function有一个特殊的,在块级作用域前声明不会定义

          

           2.在块级作用域下let和conts声明的变量是私有的,外面访问不到

          

           3.for循环下let声明的变量不会泄露

         

           事件是异步的,for循环结束之后i是3并且i还是全局的,点击li最后alter出i,i此时是3,所以都会弹出3

          

         块级作用域和对象的区别

           这个是块级作用域

            

              {}如果想表示对象,不能放在行首,就是{}前面不能没有东西。如果{}前面什么都没有就是块级作用域

           

         暂时性死区

            如果块级作用域内使用let和conts命令声明变量了,这个区域就会被这个变量强制绑定,凡是在声明之前这些变量都是不可用的,使用会报错,这就是暂时性死区

          

             暂时性死区场景

              

            使用变量b在定义变量之前,出现了暂时性死区

          let a=a;报错    赋值运算是从右往左,右边使用变量a结果发现a没有声明,而let语法规定不能在没有定义前使用变量,所以报错

          var a=a;不报错  因为var可以变量提升在等号赋值的时候,是从右往左,使用变量a,此时a是undefined,赋值时就是把undefined赋值给a,所以a还是undefined

    函数参数默认值

       1.写法上有默认值得写后面,没有默认值的写前面

       2.如果传对应的参数,就不要默认值了,不是先赋默认值然后实参去覆盖

     

  • 相关阅读:
    初探 Redis 客户端 Lettuce:真香!
    vscode 代码中查找并替换为换行符
    Jenkins Kubernetes插件添加 云
    Jenkins kubernetes插件的原理
    jenkins pipeline实现自动构建并部署至k8s
    python3 requests中的 stream参数
    rsync 开启用户密码认证
    rancher1版本 基本使用
    nginx http跳https
    sed合并多条指令修改文本
  • 原文地址:https://www.cnblogs.com/jiangningjn/p/11138645.html
Copyright © 2020-2023  润新知