zoukankan      html  css  js  c++  java
  • JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念

    JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念

    <html>
     <body>
      <script type="text/javascript">
        //JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释
        myname = "global"; // global variable
        function func() {
            //var myname; // 等同于 -> var myname = undefined;
            //alert(myname); // "undefined"
            //myname = "local";
            //alert(myname); // "local"
    
            //JavaScript中,你可以在函数的任何位置声明多个var语句,并且它们就好像是在函数顶部声明一样发挥作用,这种行为称为 hoisting(悬置/置顶解析/预解析)。
            //只要你的变量是在同一个作用域中(同一函数),它都被当做是声明的,即使是它在var声明前使用的时候。
            //当你使用了一个变量,在函数中又重新声明的话,就可能产生逻辑错误(可能不是预期使用全局变量,而是变成局部变量 undefined)
            //所有的变量声明当被悬置到函数的顶部了,myname被当做了函数的局部变量(尽管是之后声明的)
            alert(myname); // "undefined"
            var myname = "local";//如果这个前面不加var 则上面的myname使用全局变量弹出global
            alert(myname); // "local"
    
            from_func_global = "test";
        }
    
        func();
    
        var my_var = "myvar";
        //每个JavaScript环境有一个全局对象,当你在任意的函数外面使用this的时候可以访问到。你创建的每一个全部变量都成了这个全局对象的属 性。
        //在浏览器中,方便起见,该全局对象有个附加属性叫做window,此window(通常)指向该全局对象本身。
        //JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性
        //通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。
        //无var创建的 隐式全局变量(无视是否在函数中创建)是能被删除的。
        //隐式全局变量并不是真正的全局变量,但它们是全局对象的属性。属性是可以通过delete 操作符删除的,而变量是不能删除的
        // 试图删除
        alert(delete my_var); // false
        alert(delete myname); // true
        alert(delete from_func_global); // true
        // 测试该删除
        alert(typeof my_var); // "string"
        alert(typeof myname); // "undefined"
        alert(typeof from_func_global); // "undefined"
    
      </script>
     </body>
    </html>
  • 相关阅读:
    课程总结
    java实训作业----IO流
    6月11日数据结构——Huffman树
    6月10日数据结构——堆
    数据结构二叉树(实训报告)
    数据结构树(二叉树的使用)
    Java窗体的应用
    java监听、抛出异常
    数据结构顺序字符串(插入、删除、查找、BF模式匹配)
    数据结构顺序字符串
  • 原文地址:https://www.cnblogs.com/zdz8207/p/javascript-hoisting-global.html
Copyright © 2011-2022 走看看