博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有用的JavaScript开发小建议
阅读量:6341 次
发布时间:2019-06-22

本文共 1381 字,大约阅读时间需要 4 分钟。

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

1. 用数组长度截取数组

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

var arr1 = arr2 = [1, 2, 3];   //Change arr1arr1 = [];// 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()来合并两个数组,例如:

var arr1=[1,2,3];var arr2=[4,5,6];var arr3=arr1.concat(arr2); arr3;[1, 2, 3, 4, 5, 6]

 

 

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

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里,我们能看到一些特征检测语句,这些语句是用来检查浏览器是否支持特定的属性或方法,以便能够支持跨浏览器兼容性。可以这样做:

if(window.opera){    console.log("OPERA");}else{    console.log("NOT OPERA"); }

 

 

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

if("opera" in window){    console.log("OPERA");}else{    console.log("NOT OPERA"); }

 

 

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

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

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

var obj=[];Object.prototype.toString.call(obj)=="[object Array]"; true

 

转载于:https://www.cnblogs.com/ranran/p/javascript_c.html

你可能感兴趣的文章
Java VisualVM远程监控JVM
查看>>
nasm预处理器(2)
查看>>
二叉排序树 算法实验
查看>>
Silverlight 5 beta新特性探索系列:10.浏览器模式下内嵌HTML+浏览器模式下创建txt文本文件...
查看>>
YourSQLDba 配置——修改备份路径
查看>>
nginx web服务理论与实战
查看>>
java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码
查看>>
网易音乐版轮播-react组件版本
查看>>
ES6 - 函数与剩余运算符
查看>>
你对position了解有多深?看完这2道有意思的题你就有底了...
查看>>
WebSocket跨域问题解决
查看>>
ECMAScript6基本介绍
查看>>
世界经济论坛发布关于区块链网络安全的报告
查看>>
巨杉数据库加入CNCF云原生应用计算基金会,共建开源技术生态
查看>>
Ubuntu 16.04安装Nginx
查看>>
从 JS 编译原理到作用域(链)及闭包
查看>>
flutter 教程(一)flutter介绍
查看>>
CSS面试题目及答案
查看>>
【从蛋壳到满天飞】JS 数据结构解析和算法实现-Arrays(数组)
查看>>
每周记录(三)
查看>>