zoukankan      html  css  js  c++  java
  • 关于js作用域

    1.js没有块级作用域,只有函数级作用域,函数外面的变量函数里面可以找到,函数里面的变量外面找不到。

    2.

      var t = "bb";
      function test() {
        //执行t的时候,它会先找作用域链对象,由于它定义在函数内部,所以这个函数就是它的作用域链的第一个对象
        //而在这个对象里又有t的定义,所以t就是局部变量了,它替换了全局变量t

        //t只是此时有定义,但并没有赋值,赋值在下一行,所以这里输出了undefined
        alert(t);
        var t = "aa";
        alert(t);
      }
      test();  //结果为undefined/bb,编译时局部变量替换全局变量,输出前没有赋值,所以第一个弹出undefined(预解析)。

    3.

        function aaa() {
              var a=b=0;
        }
        aaa();
        console.log(a); //a没有定义,在函数中为局部变量
        console.log(b); //0,相当于全局变量

    4.当参数跟局部变量重名时,优先级是等同的。

      var a = 10;
        function aaa(a) {
        alert(a);
        var a = 20;
      }

      aaa(a); //结果为10

    5.

      var arr = [];

      arr[0] = "a";

      arr[1] = "b";
      arr.foo = "c";
      console.log(arr.length); //结果为2,foo为对象

    6.所有属于全局作用域的变量都是window对象的属性.

  • 相关阅读:
    数据量过大时数据库操作的处理
    VC中回调函数的用法
    基于BindingSource的WinForm开发
    VC获取各类指针
    GetSystemMetrics()函数的用法
    samba建立个人专享网盘
    Windows 7下用Windows照片查看器打开图片速度变慢的解决方案
    这是一个模板
    QT中编译和使用OPENCV
    MFC日志(2011.4.9)
  • 原文地址:https://www.cnblogs.com/susantong/p/5917892.html
Copyright © 2011-2022 走看看