资讯详情

JavaScript开发小建议

2017-06-28 阅读:129 来源:新思纬教育机构
进入>

开发小建议

这篇文章将向你分享一些不为人知的但很有用的小建议,对那些刚涉及使用编程语言的初级开发者应该有很大的帮助。

1.用数组长度截取数组

我们都知道,对象都是通过使用引用的,但这并不是唯一的准则,请看下面的检验案例:

1

2

3

4vararr1=arr2=[1,2,3];

//Changearr1

arr1=[];//arr2willstillbe[1,2,3]

最初,arr1和arr2都指向了数组[1,2,3],之后当arr1重新指向[]的时候,arr2的引用并没有发生什么变化,仍然指向[1,2,3]。但是如果我们想让arr1和arr2都指向[]的话,那应该怎么做呢?我们可以利用数组的长度属性。当设置arr1.length=0的时候,arr1里面的要素将被清空。而引用是不会改变的,所以arr1和arr2指向[]。

2.用push来合并数组

我们通常使用concat()来合并两个数组,例如:

1

2

3

4

5vararr1=[1,2,3];

vararr2=[4,5,6];

vararr3=arr1.concat(arr2);

arr3;

[1,2,3,4,5,6]

我们同样可以利用push()来达到这种效果:

1

2

3

4

5vararr1=[1,2,3];

vararr2=[4,5,6];

Array.prototype.push.apply(arr1,arr2);

arr1

[1,2,3,4,5,6]

应用这种方法可以把一个数组作为第二个参数,因此,arr2能够被推送到arr1里面。

3.特征检测

在我们使用的很多API里,我们能看到一些特征检测语句,这些语句是用来检查浏览器是否支持特定的属性或方法,以便能够支持跨浏览器兼容性。可以这样做:

1

2

3

4

5if(window.opera){

console.log("OPERA");

}else{

console.log("NOTOPERA");

}

这样的运作方式是正确的,但它的缺点是效率不高。这种类型的对象检测将在浏览器里初始化资源。更有效地方式是检查密钥是否在某一个对象里。

1

2

3

4

5if("opera"inwindow){

console.log("OPERA");

}else{

console.log("NOTOPERA");

}

4.检查某一个对象是不是数组

在编程语言里,我们可以使用typeof来检查变量的类型,typeof可以返回数字、布尔值、字符串、对象、函数和未定义的对象。事实上这里没有数组,typeof数组就是一个对象。所以我们怎么来决定一个对象就是一个数组呢?在ECMAScript5编程语言里,我们可以使用Array.isArray(obj)来检查这里所提到的问题。但是目前ECMAScript5还没有得到广泛使用。

不过,我们可以使用下面的方法:

1

2

3varobj=[];

Object.prototype.toString.call(obj)=="[objectArray]";

true

加载全文

免责声明:本站部分内容、图片来自用户自主上传,如果您对本站信息资源版权的归属问题存有异议,请您致信,我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。

以上是新思纬教育机构为大家整理的有关JavaScript开发小建议的全部内容,更多精彩请访问学习资讯新闻专栏。

相关课程

更多>
2020猎学网广告栏
申请课程免费试听名额

课程顾问24小时内联系您

你好

顾问将于24小时内联系您!

确定
在线咨询 微信咨询 立即报名
申请1对1课程顾问咨询服务
×
你好

顾问将于24小时内联系您!

确定
广州猎学网 >新思纬教育机构 >JavaScript开发小建议