zoukankan      html  css  js  c++  java
  • JavaScript词法作用域经典练习题

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>
    
    <script>
     //1 ====================================================
     var a;
     if ('a' in window) {
       var a = 10;
     }
     alert(a);  // 10
    //  注:  in 是一个关键字  用于判断 '属性' in 对象  当前这个属性是否是对象的属性
    //2 ====================================================
     var foo = 1;
     function bar() {
       if (!foo) {
         var foo = 10;
       }
       alert(foo); //  10
    
    //      预解析阶段:
    //       var foo;
    //      代码执行阶段:
           if(!foo){
             foo = 10;
           }
           alert(foo);
    
     }
     bar();
    
     // 代码拆分:
    //  预解析阶段:
     var foo;
     function bar(){}
     // 代码执行阶段:
     foo = 1;
     bar();
      
      //3 ============================================================
     var num = 123;
     function f1(num) {
    //    var num = 456;
       console.log(num); // 456
     }
     function f2() {
    
       var num = 456;
       f1(num);//f1(456)
     }
     f2();
      
      //4 =====================================================================
    
     function fn(){
       var a = 1, b = 1, c = 1;
    //    var a = 1;
    //    var b = 1;
    //    var c = 1;
     }
     fn();
     console.log(c); //1  e
     console.log(b); //1  e
     console.log(a); //e  e
    
     function fn1(){
       var a = b = c = 1;
       var a = 1;
       b = 1;
       c = 1;
     }
     fn1();
     console.log(c); // 1
     console.log(b); // 1
     console.log(a); // e
      
      //5 ================================================================
     var a ;
     function a(){
       console.log('呵呵')
       function a(){
         a = 4;
         console.log('哈哈')
       }
       a();
       console.log(a);  // 4
     }
     a();
     console.log(a); // 外面的a
      
     //6  ===================================================================
     var a = 1;
     function a(){
       a++;
     }
     console.log(a) //1
      
      // 7 =====================================================================
     var a = { x : 1 }
     var b = a;
     a.x = a = { n : 1};
     console.log(a.x); // undefined
     console.log(b.x); //  {n : 1}
      
    </script>
    </body>
    </html>
  • 相关阅读:
    配置DNS域名解析服务器
    使用buildroot编译bind DNS服务器
    java值得注意的几个问题
    访问权限
    import static与import的区别
    八大排序算法
    移植DNS服务bind
    Sql存储过程中延迟执行
    【转】ado实体数据模型增删改查基本用法
    JS 拖动事件
  • 原文地址:https://www.cnblogs.com/autoXingJY/p/9053907.html
Copyright © 2011-2022 走看看