zoukankan      html  css  js  c++  java
  • 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",指令说明(脚本或函数中)后续的代码将会解析为严格代码


  • 相关阅读:
    PowerToys插件扩展(类似Alfred)
    .net打独立运行环境遇到无法trim遇到的bug
    blazor wasm开发chrome插件
    将php代码部署到新浪云测试(简单方法,包含数据库的连接)
    python修改csv某一列的内容
    windows10调用libcurl
    Java动态脚本Groovy,高级啊!
    Linux 配置Git
    Java动态脚本Groovy读取配置文件
    Java动态脚本Groovy获取Bean(奇淫技巧操作)
  • 原文地址:https://www.cnblogs.com/shouwangzhe-/p/3942326.html
Copyright © 2011-2022 走看看