本文介绍JavaScript中几个实用但易被忽视的技巧,包括通过修改length属性截断数组以同步引用、使用concat或apply方法合并数组,以及利用window.opera和Object.prototype.toString进行浏览器特征与数据类型检测。
本文分享一些相对冷门但极具实用价值的JavaScript技巧,无论是初学者还是资深开发者都可能未曾深入了解。
数组截断与长度修改
1、截断数组与数组长度
代码如下:
var arr1 = arr2 = [1, 2, 3];
//改变 arr1
arr1 = []; // arr2则任然是 [1,2,3]你会发现,使用[]重新赋值来清空arr1并不会影响arr2的值。如果希望arr1改变后arr2也同步变化,可以采用以下方法:
代码如下:
var arr1 = arr2 = [1, 2, 3];
arr1.length=0; //注意这一步 而不是 arr1=[]
alert(arr2)这时 arr2也被清空了
复制代码
数组合并技巧
代码如下:
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3=arr1.concat(arr2);
alert(arr3)arr3则变为
代码如下:
[1,2,3,4,5,6]其实还可以用一种简单的办法,譬如使用
代码如下:
var arr1 = [1,2,3];
var arr2 = [4,5,6];
Array.prototype.push.apply(arr1,arr2);
alert(arr1)这时arr1就变成了 1,2,3,4,5,6
浏览器特征检测
3、浏览器特征检测
看一下代码,可以判定你的浏览器是否opera
代码如下:
if(window.opera){
alert("是opera")
}else{
alert("不是opera")
}同样的你还可以这样
代码如下:
if("opera" in window){
alert("是opera")
}else{
alert("不是opera")
}
对象类型检测
4、检查的对象是一个数组
代码如下:
var obj=[];
if(Object.prototype.toString.call(obj)=="[object Array]")
alert("是数组");
else
alert("不是数组");同样的,你还可以判断该对象是否是字符串
代码如下:
var obj="fwe";
if(Object.prototype.toString.call(obj)=="[object String]")
alert("是字符串");
else
alert("不是字符串");