面试题(一)

来源:互联网 发布:黑暗之魂1数据 编辑:程序博客网 时间:2024/05/23 00:06
   //1 object(arguments:实参对象;函数名.length:形参的集合)

// (function(){
// return typeof arguments;
// })();
//2error
// var f=function g(){return 23;};
// console.log(typeof g());//not definsd
//3 1
// (function(x){
// delete x;//delete方法只能删除一个对象下的属性和元素,不能删除变量和参数
// return x;
// })(1);
//4 typeof 方法返回的是字符串类型的所以最终结果是字符串类型的”undefined”;
// var y=1,x=y=typeof x;//js中等号是赋值,那么由右向左执行的,所以typeof x时,x是undefined
// console.log(x);
//5 “number”
// (function f(f){
// return typeof f();
// })(function(){return 1;})
//6 “undefined”
// var foo={
// bar:function(){return this.baz;},//这里由个圈套,this指向问题(看的是含有this的这个函数在哪里执行)
// baz:1
// };
// (function(){
// return typeof arguments0;//用arguments接收这个参数,最终this指向的就是window,因此在window下没有找到baz属性,因此最终返回undefined
//
// })(foo.bar);
//7 “undefined”
// var foo={
// bar:function(){return this.baz;},
// baz:1
// }
// typeof (f=foo.bar)();//和上题一样this同样指向window,
//8 “number”
// var f=(function f(){return “1”;},function g(){return 2;})();//这里也很有迷惑性,这是定义函数的一种,就相当于f=function(){};这种类型,但是这道题f={,};这样的话花括号里面的有名函数后一个会覆盖前一个,因此这个函数就可以看作var f=(function(){return 2;})()
// console.log(typeof f);
//9 “1undefined”
// var x=1;
// if(function f(){}){//这里是把函数当作Boolean类型的参数(在js中函数声明是不能现在运算符的运算过程中,要是写进去就找不到了,但是在if语句当中是真实存在的,包括if,for语句的括号内);
// x+=typeof f;//字符串加number的结果是拼接
// }
// console.log(x);
//10 “string”
// var x=[typeof x,typeof y][1];//跟这里并没有太大关系;
// typeof typeof x;//在这样的写法中一般是由内向外执行的,由于第一次执行的结果是个字符串类型的,因此tyoeof 一个字符串的结果必然是”string”
//11 “undefined”
// (function(foo){//这块传入的是一个对象{foo:{bar:1}}
// return typeof foo.bar;
// })({foo:{bar:1}});//因此在这里并不能访问对象内的属性,必需是对象名.属性名或对象名[属性名],因此”undefined”
//12 2
// (function f(){//在这个函数执行的时候会先预解析,两个同名函数后面的会覆盖前面的,因此就可以看作没有第一个函数,之后返回的结果就是2
// function f(){return 1;}
// return f();
// function f(){return 2;}
// })();
//13 false
// function f(){return f;}//在构造函数中return一个函数或对象,那么这个对象就会把原来的函数覆盖掉;所以下面的式子就会看成f instanceof f;结果为false;
// new f() instanceof f;//instanceof这个方法是看前面这个对象(new f())是不是这个构造函数(f)构造出来的,如果是就返回true,反之false。
//14 2
with (function(x,undefined){}) length;//with就是作用域的意思//函数名.length;返回形参的集合

原创粉丝点击