zoukankan      html  css  js  c++  java
  • 变量提升

    /*变量提升
    * 在JS代码执行之前,浏览器要先过一遍代码,把其中带var和带function 关键字内容提前声明
    * 带var 是只声明(给个默认值undefined) 不定义
    * 带function 声明加定义
    *
    * 因为 用function 关键字声明的函数 在变量提升阶段已经赋值完成,
    * 所以我们可以在JS文件中的任意位置调用这个函数
    *
    * 变量提升只会提升等号左边的部分; 不会提升右边的部分
    *
    * var 一个变量,相当于给window添加一个属性
    * 带var 会进行变量提升,不带var 的没有变量提升
    *
    * var a=12;
    * let a=12 ; 不能重复声明
    *
    * const =66; 声明常量用的 既不能重复声明,也不能重复定义
    * const 没有变量提升*/

    /*变量提升 是不看条件成不成立的 这个是针对var 来说的
    * 针对 function来说,在条件语句中的function声明;标准浏览器下只是声明,不定义的,
    * 在IE低版本,是既声明 又定义的*/



    /*变量提升的特殊情况
    * 1.只提升 等号左边的内容
    * 2.不管条件是否成立 都要进行变量提升;
    * 对于function声明比较特殊,在标准浏览器下,只声明,不定义
    * 在IE,低版本 是 既声明,又定义
    * 3.所有的匿名函数 都是不会进行变量提升的
    * 4.return 后边的内容 是不会进行变量提升的
    * 但是return 下边的代码是可以进行变量提升的
    *5.所有的自执行函数都不会进行变量提升*/

    /*es6 的声明
    * let const :没有变量提升;不会给window添加属性
    * let a = 12; 不能重复声明 不管上面是怎么声明过的;但是能重复定义
    * const b=12 ; 声明一个常量 不能重复声明,不能重复定义*/
  • 相关阅读:
    java开发命名规范
    谈谈自己对java的学习看法
    eclipse菜单解释及中英对照《二》
    eclipse菜单解释及中英对照
    Java开发和运行环境的搭建
    详解Java的MyBatis框架中SQL语句映射部分的编写
    常用的几种编程语言的介绍
    CSS中margin和padding的区别
    同一网页间信息的随意切换
    彩票走势图模板
  • 原文地址:https://www.cnblogs.com/zhangyongxi/p/9593966.html
Copyright © 2011-2022 走看看