• 7天入门JavaScript,第四天


    作用域: (理解闭包的前提是先理解JavaScript的作用域)
      JavaScript使用函数作用域而不是块级作用域,变量在声明他们的函数体嵌套的任意函数体内都是有定义的。
      JavaScript的函数作用域是指:在函数内声明的所有变量在函数体内始终是可见的。  好的做法是将变量的声明都放到function的顶部,而不是将声明靠近放在使用变量之处。

    function test(x) {
        var i = x;
        alert("j---"+j+"--k"+k);
        if(x == 0) {
            var j = 0;    
            for(var k=0;k<10;k++) {
                document.writeln(k);
                j = k;
            }
            function inner() {
                return j + k;
                var j = 0;
            }
            alert("inner---"+inner());
            alert(k);
        }
        j ++;
        alert("j---"+j); // j 和 k 之所以能被访问是因为"提前"到函数的顶部。
        alert("k---"+k);
      }
      test(0);


      // 函数定义语句, 函数名和函数体都会"提前"到脚本或函数的顶部。
      fun();  // 不会报错
      function fun() {

      }
     
      fun(); //会报错
      //函数声明语句,只是fun这个变量"提前"了,函数体不会提前到顶部
      var fun = function() {

      }

    ----------------------------------------------------------------------------------------------------------------------------
      undefined 有两种,一种是声明未赋值就使用 一种是没声明
      alert(typeof s); // undefined,如果不用typeof则会报错,程序中止执行
      var s;
      alert(s); //undefined
     
      null,是表示空值,可以理解为 null是程序级而undefined是系统级

      var a = 1;
      alert((a++)+a); // 3


      eval(),它使用了调用它的变量作用域环境。尽可能的避免使用eval();

      "use strict",指令说明(脚本或函数中)后续的代码将会解析为严格代码


  • 相关阅读:
    .net技巧推荐
    ASPNETPager常用属性
    带有like的存储过程
    Jquery选择器
    关于出现too many open files异常
    将ReadWriteLock应用于缓存设计
    读CopyOnWriteArrayList有感
    HttpClient容易忽视的细节——连接关闭
    windows下如何用java命令运行jar包?
    再谈重入锁ReentrantLock
  • 原文地址:https://www.cnblogs.com/shouwangzhe-/p/3942326.html
Copyright © 2020-2023  润新知