您的位置:首页 > Web前端 > JavaScript

JAVASCRIPT中经典面试题

2015-12-16 21:15 661 查看
1 //1、try catch finally中的return
2     var n=1;
3     function fun(){
4         try{
5             n++;
6             m++;//报错
7             return n;
8         }catch(err){
9             n++;
10             return n;
11         }finally{
12             n++;
13             //return n;
14         }
15     }
16     console.log(fun());//3
17     console.log(n);//4


1 /*new Function*/
2     var i=5;
3     function fun(){
4         var i=4;
5         //var f1=new Function("console.log(i)");
6         var f1=function(){console.log(i);};
7         console.log(f1);
8         f1();
9     }
10     fun();//4


1 /*callback 与 this*/
2     var o={
3         n:1,
4         fun:function(){
5             var self=this;//留住this
6             console.log(self.n++);
7             setTimeout(function(){
8                 self.fun();
9             },1000);
10         }
11     }
12     o.fun();//this-->o


1 /*DOM中的闭包问题*/
2     function fun(){
3         var li=document.getXX...;
4         btn.onclick=function(){
5             li.xx=xx;
6         }//li将永远无法释放,即使刷新页面也不行
7     }


1 /*引用类型的共有属性*/
2     function Student(){}
3     Student.prototype.arr=[];
4     var lilei=new Student();
5     var hmm=new Student();
6     lilei.arr.push(1);//this[this.length]=1
7     hmm.arr[1]=2;
8     console.log(lilei.arr);//[1,2]
9     console.log(hmm.arr);//[1,2]


1 /*继承父类型共有方法*/
2     function Student(){}
3     Student.prototype=[];
4     var lilei=new Student();
5     lilei.push(1);//this[this.length]=value;
6     var hmm=new Student();
7     hmm.push(2);
8     console.log(lilei);
9     console.log(hmm);


1 /*私有属性,公有属性*/
2     function Student(){
3         var prop="私有属性";//私有属性
4         this.prop="公有属性"; //公有属性
5         var fun=function(){//私有方法
6             console.log("调用私有方法");
7             console.log(prop);
8         }
9         this.fun=function(){//公有方法
10             console.log("调用公有方法");
11             fun();//this-->window
12             console.log(prop);
13             console.log(this.prop);
14         }
15     }
16     var lilei=new Student();
17     lilei.fun();//公有


1 //阻碍事件
2 for(var i=0;i<3;i++){
3         setTimeout(function(){
4             console.log(i);
5         },10)
6     }
7     alert("hello");


1 function MyObj(){
2         this.p.pid++;
3     }
4     MyObj.prototype.p={"pid":0};
5     MyObj.prototype.getNum=function(num){
6         return this.p.pid+num;
7     }
8     var obj1=new MyObj();
9     var obj2=new MyObj(); //p.pid=2
10     console.log(obj1.getNum(1)+obj2.getNum(2));//7


1 /**/
2     function fun(n,o){
3         console.log(o);
4         return {fun:function(m){
5                 return fun(m,n);
6             }
7         }
8     }
9     var a=fun(0);//undefined
10     //a-->{fun:function(m){return fun(m,n)}}
11     a.fun(1); a.fun(2); a.fun(3); //0 0 0
12     var b=fun(0).fun(1).fun(2).fun(3); //0 1 2
13     var c=fun(0).fun(1); c.fun(2);c.fun(3); //0 1 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: