JS IF 作用域

来源:互联网 发布:实矩阵的奇异值分解 编辑:程序博客网 时间:2024/06/03 06:40

随笔记录一下JS 中使用域自动提升时的一些注意点:

/** * Created by HuangSL on 2017/09/12. */function testScope() {    var funInner = "Inner";    funcOut = "outer"; //没有 var 声明,会被自动提升到 全局作用域    if (true) {        var ifInner = "Inner if true"; //变量的作用域被自动提升到 testScope fun        ifOuter = "Outer if true"; //没有 var 声明,会被自动提升到 全局作用域    }    if (false) {        var ifInnerFalse = "Inner if false";//变量的作用域被自动提升到 testScope fun        ifOuterFalse = "Outer if false"; //可以防止变量的作用域被自动提升    }    console.log(funInner); //Inner    console.log(funcOut); //outer    console.log(window.funcOut); //outer    console.log(ifInner); //Inner if true    console.log(ifInnerFalse); //undefined    console.log(ifOuter); //Outer if true    console.log(window.ifOuter); //Outer if true    //console.log(ifOuterFalse);//ReferenceError: ifOuterFalse is not defined}testScope();/* typeof 可以用来补全一些全局方法或变量 *///console.log(globalFun);//ReferenceError: globalFun is not definedconsole.log(typeof globalFun);// "undefined"if (typeof globalFun === "undefined") {    globalFun = function () { //不使用 var ,如果变量已经存在,将不会被重复声明,可以防止某些变量重名而出错        console.log("this is my global function;");    }}console.log(typeof globalFun);// "function"
原创粉丝点击