var变量提升

Hosting机制:在函数作用域或者全局作用域中通过关键字var声明的变量,无论实际上是在哪里声明的,都会被当作在当前作用域顶部声明的变量。


function getValue(conditon) {

    if (conditon) {
        var value = "blue"
        return value;
    } else {
        return null
    }
}

变量提升后
JavaScript引擎会将getValue函数修改成这样

function getValue(conditon) {

    var value;
    if (conditon) {
        value = "blue"
        return value;
    } else {
        return null
    }
}

变量value被提升至函数顶部,而初始化操作依旧停留在原处,这意味着else也可以访问到value该变量,由于此时变量尚未初始化,所以其值为undefined


  Reprint please specify: 云深不知处 var变量提升

 Previous
块级声明 块级声明
块级声明块级声明:用于在指定块的作用域之外无法访问的变量。块级作用域(词法作用域)存在于 函数内部 块中{这里之间区域} let声明 let可以把变量限制在当前作用域中 同一作用域let禁止重复定义已经存在的标识符 变量value被l
2019-03-10
Next 
CSS选择器 CSS选择器
1. CSS3的选择器:nth-child():nth-child():选择从第一开始Odd 和 even 是可用于匹配下标是奇数或偶数的子元素的关键词(第一个子元素的下标是 1) 2. CSS 选择器有哪些 id选择器 class类选择器
2019-03-03
  TOC