zoukankan      html  css  js  c++  java
  • es6—let

    变量:

      var function     es6提供的let const    class import定义变量的关键字

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

      

      Var 定义变量   变量提升但是不能定义   window添加一个对应的属性

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

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

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

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

        2.不能重复声明

        3.不会给window添加属性 

    作用域

      Var的作用域

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

      全局作用域

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

      局部作用域

        在函数内部声明的变量

    了解浏览器执行的机制

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

    Function申请的变量

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

    函数归属问题?      函数归谁,跟他在哪调用无关,跟他在哪定义有关

        任何一个函数执行后都有一个返回值,如果写了return 就返回return的值

    块级作用域

      带{}的都是块级作用域,if(){}  for(){}  对象{}

      Var 没有块级作用域这个概念, letconst有块级作用域这个概念

    1. 在块级作用域下var function 跟在window下一样,function有个特殊的,在块级作用域前只会提前声明不会定义。
    2. 在块级作用域下 let const 声明的变量是私有的

    3. For循环下let声明的变量不会泄露,因为事件是异步的,for循环结束后i3并且还是全局的,点击了li最后alertii 此时是n,所以都会弹出n

    块级作用域和对象的区分

      {}如果想不傲世对象,不能放在首行,就在{}前面不能没有任何东西,如果有了就是对象。没有就代表块级作用域

    暂时性死区

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

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

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

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

      

    函数参数默认值

    1. 写法上 有默认值得写后面,没有默认值写前面
    2. 如果传对应的参数,就不要默认值,不是先赋默认值,然后用是参数覆盖
  • 相关阅读:
    重写与重载的区别
    UDP模式与TCP模式的区别
    什么是GC?为什么会有GC?
    centos 7-8 安装 ms sql server 2019
    Phaser3 游戏开发入门——自定义构建Phaser库
    Visual Studio 下C#编译器在解析属性名时如果增加一个get_[您的另一个已经包含在类中属性名]的属性会报错,微软大哥这是什么鬼?
    Visual Studio 2015 Update 3 ISO
    react项目中引用amap
    js 截取网址中的某一段字符串
    解决react下找不到原生高德地图AMap类的问题
  • 原文地址:https://www.cnblogs.com/gaoyan11/p/11141982.html
Copyright © 2011-2022 走看看