面试心经之题目二

number4:

参考文:http://my.oschina.net/ohcoding/blog/470952?p=1

题目:

实现一下函数:
isArray
isFunction
isNull
//isArray的实现
function isArray(a){
    return a instanceof Array;
}
//jquery 的实现机制
function isArray2(a){
    return Object.prototype.toString.call(a) === '[object Array]'
}


 剩下应该是相同的。

 考察点很基础:1.排除undefined 因为undefined==null 2.排除object 因为 null 是空指针对象 所以 typeof null==object ,因为 Boolean(Object)==true Boolean(null)=false;加上typeiof ==object

条件可以排除其他原始类型还有function

function isNull(a){
   return !a&&typeof a==‘Object’ ;  //Wrong
 
return !a&&typeof a==‘object’ ;
}

 其他类型的检测:

http://www.jb51.net/article/48481.htm

http://www.cnblogs.com/fang9159/archive/2012/09/14/boolean.html

numebr5:

写出isNull的测试代码


刚看到的时候不清楚 是什么意思?

应该是考虑 typeof Boolean()  所以这道题应该跟上文相同   回过头来再补充...回过头来了...

come on!

//isNull测试代码
function isNull(){
    var arr_null=new Array();
    for(var i in arguments ){
        arr_null[i]=(!arguments[i] && typeof arguments[i] =='object');
    }
    return arr_null;
}
测试数据:
var a=undefined;
var b=[1,2];
var c={'a':1,'b':2};
var d=function(){};
var e=null;
var _4arr2=[a,b,c,d,e];
var test4=isNull(e);
//测试isNull的代码
var test5=isNull.apply(null,_4arr2);
console.log('test4:'+test4+'
test5:	'+test5);

测试结果:

之中犯了一个错误关于 for...in...

看代码一目了然:

number6:

实现function(max)
返回0~max 的整数 传参是 decimal(小数)

 看似简单其实要求js的基础非常牢固,我还记得我直接round了...应该是floor()

//实现返回0~max 的整数 传参是 decimal
function randonint(max){
    var count=0;
    do{
        var m=Math.random()*max;
        var v= Math.floor(m);
        console.log( 'v:'+v+'	m:'+m);
        count++;
    }while(count<100);

}
var max=5.4;
randonint(max);

代码段:

嗯 按惯例  跳到下一篇写...给链接:

上文涉及的知识点:

链接:....

No living without dream
原文地址:https://www.cnblogs.com/belongcai/p/4771060.html