1. 用数组长度截取数组
我们都知道,对象都是通过使用JavaScript引用的,但这并不是唯一的准则,请看下面的检验案例:
1
2
3
4
|
var arr1 = arr2 = [1, 2, 3];
//Change arr1
arr1 = [];// arr2 will still be [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
5
|
var arr1=[1,2,3];
var arr2=[4,5,6];
var arr3=arr1.concat(arr2);
arr3;
[1, 2, 3, 4, 5, 6]
|
我们同样可以利用push()来达到这种效果:
1
2
3
4
5
|
var arr1=[1,2,3];
var arr2=[4,5,6];
Array.prototype.push.apply(arr1,arr2);
arr1
[1, 2, 3, 4, 5, 6]
|
应用这种方法可以把一个数组作为第二个参数,因此,arr2能够被推送到arr1里面。
3. 特征检测
在我们使用的很多API里,我们能看到一些特征检测语句,这些语句是用来检查浏览器是否支持特定的属性或方法,以便能够支持跨浏览器兼容性。可以这样做:
1
2
3
4
5
|
if(window.opera){
console.log("OPERA");
}else{
console.log("NOT OPERA");
}
|
这样的运作方式是正确的,但它的缺点是效率不高。这种类型的对象检测将在浏览器里初始化资源。更有效地方式是检查密钥是否在某一个对象里。
1
2
3
4
5
|
if("opera" in window){
console.log("OPERA");
}else{
console.log("NOT OPERA");
}
|
4. 检查某一个对象是不是数组
在JavaScript编程语言里,我们可以使用typeof来检查变量的类型,typeof可以返回数字、布尔值、字符串、对象、函数和未定义的对象。事实上这里没有数组,typeof数组就是一个对象。所以我们怎么来决定一个对象就是一个数组呢?在ECMAScript 5编程语言里,我们可以使用 Array.isArray(obj)来检查这里所提到的问题。但是目前ECMAScript 5还没有得到广泛使用。
不过,我们可以使用下面的方法:
3
|
var obj=[];
Object.prototype.toString.call(obj)=="[object Array]";
true
|
相关推荐
用JavaScript开发购物车 包括源代码
基于JavaScript开发的大学英语教材的单词默写器源码.zip基于JavaScript开发的大学英语教材的单词默写器源码.zip基于JavaScript开发的大学英语教材的单词默写器源码.zip基于JavaScript开发的大学英语教材的单词默写器...
开发动态网站的建议 ASP.NET开发没有VS是不太可能的… VS2010比较好用。 如果LZ要学ASP.NET,首先学习C#的语法、面向对象的编程思想(既然你会VBS,用VB也可以的。)。 前期LZ可以试着做一些简单的控台或者WinForm ...
毕业设计基于Vue和JavaScript开发的汉服商城APP源码(附后台管理系统+前台接口).zip毕业设计基于Vue和JavaScript开发的汉服商城APP源码(附后台管理系统+前台接口).zip毕业设计基于Vue和JavaScript开发的汉服商城APP...
《编写高质量代码:改善javascript程序的188个建议》是web前端...书中的每一条建议都可能在你的下一行代码、下一个应用或下一个项目中被用到,建议你将此书放置在手边,随时查阅,一定能使你的学习和开发工作事半功倍。
Web前端工程师进阶修炼的必读之作,将为你通往“JavaScript技术殿堂...每一条建议都可能在你的下一行代码、下一个应用或下一个项目中被用到,建议你将此书放置在手边,随时查阅,一定能使你的学习和开发工作事半功倍。
基于JavaScript开发的仿摩拜单车微信小程序源码+项目说明+效果截图.zip 1.项目主要包含了首页地图定位模块、我的红包模块、余额模块、押金模块、充值协议模块等; 首页: 1> map组件还用了map的一些控件和标记点...
1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验!下载完使用问题请私信沟通。 2.主要针对各个计算机相关专业,包括计算机科学、...JavaScript基于微信原生云开发的校园图书交易小程序源码+运行说明.zip
基于JavaScript+python开发的大数据智慧旅游系统源码+数据集.zip基于JavaScript+python开发的大数据智慧旅游系统源码+数据集.zip 基于JavaScript+python开发的大数据智慧旅游系统源码+数据集.zip 基于JavaScript+...
基于JavaScript开发的一款上海市旅行、交友、攻略的微信小程序源码+项目说明.zip 功能 * 景区展示,包括**上海市所有景区**,提供完备的景区地图和景区介绍服务。支持景区查询及分当季、热门、上海市各个区景点展示 *...
JavaScript基于react开发的简易校园博客平台源码.zipJavaScript基于react开发的简易校园博客平台源码.zipJavaScript基于react开发的简易校园博客平台源码.zipJavaScript基于react开发的简易校园博客平台源码....
基于JavaScript的适配英语教材刷单词小工具源码.zip基于JavaScript的适配英语教材刷单词小工具源码.zip基于JavaScript的适配英语教材刷单词小工具源码.zip基于JavaScript的适配英语教材刷单词小工具源码.zip基于...
编程语言+JavaScript+前端开发+框架比较**:这是一个关于JavaScript编程语言的前端开发的框架比较的资源,适合有一定JavaScript基础的开发者。它对比了目前流行的前端开发框架,如React、Vue、Angular等,分析了它们...
基于HTML+CSS+JavaScript实现的个人网站项目源码(前端开发作业).zip基于HTML+CSS+JavaScript实现的个人网站项目源码(前端开发作业).zip基于HTML+CSS+JavaScript实现的个人网站项目源码(前端开发作业).zip基于...
prototype.js不仅是一个有很大实用价值的js库,而且有很高的学习价值,所以我强烈建议B/S开发人员和对JS开发感兴趣的朋友去浏览一些它的源代码,其中有很多的珠玑,你绝对会觉得读它的源代码是一种享受,当然要...
直接使用).zip基于JavaScript实现的微信小程序点餐系统源码(含前端,直接使用).zip基于JavaScript实现的微信小程序点餐系统源码(含前端,直接使用).zip基于JavaScript实现的微信小程序点餐系统源码(含前端,直接使用...
JavaScript 学习资源 ◦ MDN Web 文档:Mozilla Developer Network (MDN) 提供了完整的 JavaScript 教程,...在学习J a v aSc r i p t 时, 建议多练习, 多编写代码, 并参与到开源项目中去,这样 可以加深对J a v a
【小程序】基于JavaScript的智慧物业小程序.zip 当前小区的物业事务越来越多、越来越杂,而很多业主工作繁重,加班很晚,以往对于重大事项投票,报修报检,装修申请,搬家申请,投诉建议都需要去小区物业中心, 同时...