js积累(持续更新)

  整理一些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,循环出的是属性名,而不是属性本身。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值