zoukankan      html  css  js  c++  java
  • js练习题

      1 //1.预解释毫无节操-自执行函数
      2     f=function(){return true};
      3     g=function(){return false};
      4     (function(){
      5         if(g()&&[]==![]){   //匿名函数中的g,即下面定义的方法g。  // []==![] 返回true
      6             f=function(){return false;}
      7             function g(){return true;}
      8         }
      9     })();
     10     alert(f());  //false
     11     alert(g());  //false
     12 
     13 
     14 
     15 // 2.自执行函数的预解释
     16 (function f(){
     17     function f(){ return 1; }
     18     alert (f());       //2
     19     function f(){ return 2; }
     20 })();
     21 
     22 
     23 
     24 // 3.作用域链
     25 var a=12;
     26 function show(){
     27     alert(a);
     28     a=15;
     29 }
     30 show();   //12
     31 alert(a); //15
     32 
     33 
     34 
     35 // 4.预解释:变量声明早于代码运行
     36 var a=12;
     37 function show(){
     38     alert(a);
     39     var a=15;
     40 }
     41 show();   //undefined
     42 alert(a); //12
     43 
     44 
     45 // 5.预解释:变量声明早于代码运行
     46 var uname = 'jack'
     47 function change() {
     48     alert(uname)      //undefined
     49     var uname = '三峰'
     50     alert(uname)      //'三峰'
     51 }
     52 change()   
     53 
     54 
     55 // 6.在没有形参的情况下:函数声明早于变量声明
     56 function change() {
     57     alert(typeof fn)    // function
     58     function fn() {
     59         alert('hello')
     60     }
     61     var fn
     62 }
     63 change();
     64 
     65 
     66 // 7.带var和不带var的区别;
     67 function abc(){
     68     a=12;
     69     alert(a);   //12
     70 }
     71 function b(){
     72     alert(a)    //12
     73 }
     74 abc();
     75 b();
     76 
     77 // 面试题
     78 // 1.关于内存释放的面试题
     79 function fn() {
     80     var i = 10;
     81     return function (n) {
     82         console.log(n + (++i));
     83     }
     84 }
     85     var f = fn(); //首先把fn执行,然后把执行的结果赋值给f,函数执行只要看函数里面有没有return
     86     f(15);    //26  //引用,执行完不会立即释放
     87     f(20);    //32
     88     fn()(15); //26  //每次执行完内存释放,作用域销毁
     89     fn()(15); //26
     90     fn()(20); //31
     91     fn()(30); //41
     92     f(30);    //43
     93 
     94 
     95 // 2.综合面试题
     96 // 考察:this指向
     97     var num = 10;
     98     var obj = {
     99         num: 20,
    100         fn: (function (num) {
    101             this.num *= 2;
    102             num += 10;
    103             return function () {
    104                 this.num *= 3;
    105                 num += 1;
    106                 console.log(num);
    107             }
    108         })(num)
    109     };
    110     var fn = obj.fn;
    111     fn();           //this->window   21
    112     obj.fn();       //this->obj      22
    113     console.log(window.num, obj.num);  //60, 60
    114 //https://zhidao.baidu.com/question/2270540468949188628.html
    115 //http://www.imooc.com/qadetail/161604?t=227246
    116 //https://www.zhihu.com/question/49789706
    117 
    118 
    119 // 3.关于this和||的运用;
    120 var name='三峰';
    121 var age=500;
    122 name=(function(name,age){
    123     arguments[0]='三峰';
    124     age=age||this.age;
    125     console.log(name,age);  //三峰 500
    126 })(name);
    127 console.log(name,age)  // undefined 500
    128 
    129 
    130 // 4.
    131 var i=3;
    132 function fn(){
    133     i*=2;
    134     return function(n){
    135         console.log(n*(++i))
    136     }
    137 }
    138 var f=fn();
    139 f(3)     //21
    140 fn()(3); //45
    141 f(4);    //64
    142 fn()(3); //99
  • 相关阅读:
    使用DataReader
    使用Dataset
    Command
    Ado.net对象
    集合数据源
    Label 表达式绑定
    输出二进制图像
    Application 可以存储全局变量
    字符串处理
    ?:叫条件运算符
  • 原文地址:https://www.cnblogs.com/guorange/p/7210662.html
Copyright © 2011-2022 走看看