一些老手都不一定知道的JavaScript技巧

  一些不太常用但强大的JavaScript小技巧,新手和老手js开发人员都不一定知道。

  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也被清空了

  2、数组合并

  

复制代码 代码如下:

  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("不是字符串");