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>
  • 相关阅读:
    材料订单不在IN_MO或者IN_SCFHEADER中
    FP ABPPMGR表 其它常用存储过程
    ORA-01578 ORACLE data block corrupted (file # 29, block # 2889087)
    PR合并回写
    MySQL优化
    分享一些JVM常见的面试题(转)
    怎么保证 redis 和 db 中的数据一致
    User space(用户空间) 与 Kernel space(内核空间)
    如何设计一个安全的对外接口?(转)
    Jstack命令详解
  • 原文地址:https://www.cnblogs.com/autoXingJY/p/9053907.html
Copyright © 2011-2022 走看看