整理一些js中一些实用的小代码段
1.数组类型的判断
可以使用isArray,但兼容性有点问题。可以用instanceof,但对于存在iframe的页面,也可能出现问题。比较好的方法:
function isArray(o) { return Object.prototype.toString.call(o) === ‘[object Array]‘; }
2.一个判断null和undefined的方法
a == null;
对于null和undefiend,结果都为true。
3.判断是否为数字
isNumeric:function(obj){
return !isNaN(parseFloat(obj))&&isFinite(obj);
}//先判断是否像是一个数字,再判断是否有限
4.判断一个对象是否为空对象,即没有属性和方法的对象
isEmptyObject:function(obj){
for(key in obj){
return false;
}
return true;
}
5.
之前一直看到这样的代码:str.split(“”);并没有在意,直到一次面试被问到反转字符串,我想直接操作str的下标进行字符串内容的修改,失败了。原来str的下标内容是只读的。(好丢脸)还有,用document.getElementsByTagName返回的不是一个节点元素,所以,就算返回的集合中只包含一项,也要用xxx.[0]进行操作。
6.
实例中包含一个对于构造函数原型的引用,当我们在创建一个实例之后对整个原型进行重新赋值(即prototype={}),之前创建的实例将无法访问新的原型属性和方法。因为它引用的依然是之前那个原型对象。
7.
console会导致ie9及更老版本的ie浏览器不执行js
8.
?:不光可以用来判断并赋值,还可以用来做执行分支(判断)?(expression1):(expression2);expression1和expression2也可以为多个表达式,表达式中间用逗号分开。
9.
别忘了functionName.caller和arguments.callee
10.
循环输出数组每项
for(var item in arr) {
alert(arr[item]); // 写成 alert( item ); 打印的是索引数
}
另外,对对象使用for in,循环出的是属性名,而不是属性本身。