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);
代码段:
嗯 按惯例 跳到下一篇写...给链接:
上文涉及的知识点:
链接:....