1.jquery源代码中的常见知识点。
1.1 .字符串、数字类型转换的快捷方法。
复制的代码如下:/@ param s为String,n为数字函数fn(obj){ //转换为字符串类型var s=obj“”;//转换为数字类型var n=obj}
分享一个面试的例子:
//Add将自动将其转换为字符串' 64' 4='644'//减法将自动将其转换为数字' 64'-4=60。
2.bool类型转换。
!Obj,它被强制转换为布尔类型。
复制代码如下:alert(!0) //结果是falsealert(!33dd’)//结果为真。
!采取相反的布尔类型。
复制代码如下:alert(!0) //结果为truealert(!222333') //结果为假。
3.====和===的区别。
===严格相等,不会被转换,而==不严格相等,会被转换。一些js书籍建议开发人员永远不要使用==或!=。
不过,“==”还是“!="当判断为未定义和空时的情况——。
复制代码代码如下://这里判断,obj为空,obj未定义,不包括if(obj!=null){}
4.检测obj是否是窗口对象。
复制的代码如下://null==window.null为真。函数是window (obj) {return obj!=null obj==window.obj}
5.||和使用技巧。
复制的代码如下://示例varia=5;name=aa | | { };Alert(name),则名称为55this.name=name || {} //如果name值存在,则值为name,否则为{} //示例var aa=5;name=aa { };Alert(name),那么名字就是{},因为aa是5,如果不是0,就是真的。name=bool[]//如果bool为真,则值为[],否则为bool。
示例:
复制的代码是:(window . foo | |(window . foo=' bar '));alert(window . foo);//弹出栏//为什么是最终结果栏?事实上,它可以被视为undefined || bar。结果肯定是杠杠的。
6.settimeout (fn,0)和setTimeout(fn)之间的差异。
setTimeout(fn,0)和settimeout (fn)都有延迟,但setTimeout(fn)的延迟时间比SetTimeout(fn,0)长。
复制代码如下: function fn(){ var data=new date();for(var I=0;i=1000I){ if(I==1000){ console . log(' fn=' data . gettime());} } }函数fn1(){ var data=new Date();for(var I=0;i=1000I){ if(I==1000){ console . log(' fn1=' data . gettime());} } } setTimeout(fn,0),setTimeout(fn1);
结果:
7.确定是否为数值。
复制的代码如下:函数isnumeric (obj) {return!isNaN(parseFloat(obj))is inite(obj);}
8.确定它是否为空对象。
复制的代码如下:函数is empty object(){ var name;//遍历非空对象将返回(obj中的名称){ return false}返回true}
9.检测对象的类型。
obj对象的类型被检测并返回,类型由Object.prototype.toString()判断,但是ie低版本的兼容性有问题,所以{}。toString用于监控,并以[objectarray]、[objectobject]和[objectfunction]的形式返回。
复制代码如下://Type判断fu。