这篇文章会分享一些鲜为人知但却很强大的JavaScript技巧, 各个级别的JavaScript开发者都会从中受益.

1. 用数组的length属性清空数组
我们知道在JS中对象类型是按引用传递的, 有时候我们却会被这个规则所制约. 比如下面的例子:
 

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都指向 [] 该怎么做呢? 我们可以使用数组的length属性. 当我们设置 arr1.lenget = 0 , 数组arr1中的元素被清空. 然而引用关系并没有变化, 所以 arr1 和 arr2 现在都指向了空数组 [] .
2. 用push方法合并数组
我们习惯用 concat() 方法来合并2个数组, 比如:
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]

(译者注: 关于两者速度的比拼, 我在Firefox和Chrome下得到了不同的结果, 请看http://jsperf.com/javascript-array-concat-vs-push 更全的测试用例: http://jsperf.com/array-concat-vs-push-2/14 )
3. 特征检测
许多API里我们都能见到特征检测的代码, 查看浏览器是否支持某个属性或方法为了有更好的浏览器兼容性. 比如:
if(window.opera){console.log("OPERA");
}else{console.log("NOT OPERA");
}

这段代码是正确的, 但是可能不够效率. 它会在浏览器中初始化一些资源, 更效率的做法是检查对象中是否有这个key.
if("opera" in window){console.log("OPERA");
}else{console.log("NOT OPERA");
}

4. 检验一个对象是否是数组
在JavaScript里, 可以用 typeof 来检查变量类型. typeof 可以返回:number,boolean,string,object,functionundefined. 并没有array. 实际上数组是object类型. 那么怎么来验证对象是否是数组呢? 在最新的ECMAScript 5中, 可以用 Array.isArray(object) 来检验. 但是ECMAScript 5还没有推广开.
我们可以用下面的方法:
var obj=[];
Object.prototype.toString.call(obj)=="[object Array]";
true

原文地址: http://www.pixelstech.net/article/1377076088-JavaScript-tips-both-novice-and-veteran-developers-can-benefit-from

转载于:https://www.cnblogs.com/patrick-holynova/p/3296538.html

[译] 新手和老手都将受益的JavaScript小技巧相关推荐

  1. 【译】5 个你需要知道的 JavaScript 小技巧

    JavaScript 是目前最流行的编程语言之一.就像其他任何编程语言一样,它也有很多小技巧,从今天开始你就可以使用它们 大多数程序员都应该每天训练这些小技巧,直到熟能生巧. 在这篇文章中,我们将一起 ...

  2. 8个老手都不一定知道的sketch技巧

    Sketch老手都不一定知道的sketch小技巧 001.拖动和删除样式 让我们从一个简单的技巧开始.如果要删除样式属性(如模糊或填充),只需从中删除即可"检查器"把面板拖到画板里 ...

  3. navicat mac 找不到钥匙串_Mac新手扫盲教程:苹果Mac电脑使用小技巧

    因为很多人最初接触的是WINDOWS系统,而不是MAC OS系统,所以在刚刚接触MAC电脑的时候会很不习惯,今天MAC小编就带来一篇文章,介绍一下mac新手该注意什么,苹果MAC电脑有哪些使用小技巧. ...

  4. 程序员都在用的电脑小技巧

    一.文件误删如何恢复? 经常遇到不小心误删的情况,而且还是彻底删除,咋办啊?不需要任何工具,简单三步走,你就能找回你删掉并清空回收站的东西. 1.单击"开始--运行,然后输入regedit ...

  5. 新手必看!电脑文件管理八条小技巧

    在电脑的内部,在电脑的桌面上,在"资源管理器"中,充斥着无序与混乱,这种虚拟的混乱极大地影响了电脑的性能和我们办公的效率,当大家面临这个问题时,通常认为硬盘空间又不够了,电脑性能又 ...

  6. 企业微博营销都有哪些实用的小技巧呢?

    现代微博客喜欢使用社交平台,企业常用的推广平台.企业界想利用微博进行推广,让大多数微博用户浏览推广的内容并转发,随意写一些内容当然不行,但很多人也不知道如何去利用微博.事实上,微博推广有方法,掌握了相 ...

  7. 英雄联盟怎么解除小窗口_英雄联盟:老玩家都不知道的小技巧,一定要注意这些细节|英雄联盟|召唤师|防御塔|新英雄|亚索...

    英雄联盟:老玩家都不知道的小技巧,一定要注意这些细节 英雄联盟作为当下最火爆的游戏之一,已经陪伴大家走过了无数的春夏秋冬,如今英雄联盟已经迎来了越来越多的新英雄,随着英雄联盟里面的英雄不断的增多,越来 ...

  8. 英汉互译在线翻译器-大家都在用的英汉互译翻译器

    英汉互译在线翻译器,今天给大家分享一款英汉互译在线翻译器,我们为什么要选择这款好用的翻译器,因为汇集了世界最好的几个翻译平台(百度/谷歌/有道),第一点翻译质量高,选择性多.第二点支持各种语言互译,第 ...

  9. 算法精解 c语言描述 豆瓣,斯坦福大学教授亲授,这本美亚4.7星的算法书,新手程序员都看得懂!...

    原标题:斯坦福大学教授亲授,这本美亚4.7星的算法书,新手程序员都看得懂! "算法会扩展并提高大家的编程技巧,而学习基本的算法设计范式,可以和许多不同领域的不同问题密切相关,还能作为预测算法 ...

最新文章

  1. 深入理解JVM——虚拟机GC
  2. shell学习之shell基础知识了解
  3. 一个 Linux 上分析死锁的简单方法
  4. java beans_java beans的概念及应用?
  5. Metropolis light transpotation
  6. 微服务中集成分布式配置中心 Apollo
  7. Ubuntu安装qwt步骤
  8. post多个参数_如何使用Arjun v1.3挖掘HTTP参数
  9. We're A Happy Family-A Tribute To Ramones
  10. 2019.7.22JS初始内容的整理以及4道题目
  11. linux hook 任意内核函数,【求助】Kernel 4.8下编译编写的Netfilter Hook函数失败
  12. php构造方法什么时候使用,php:构造方法的说明详解
  13. Asp.net中Bind()和Eval()的区别
  14. 20145316《信息安全系统设计基础》期中总结
  15. 03.汇编语言和编译器
  16. # 个人日记-书籍《银河帝国2之基地与帝国》观后感-20210808
  17. [译]无迹卡尔曼滤波教程
  18. Android插件化方式实现View动态更新
  19. 控制过滤器Filter执行顺序
  20. 华为双前置摄像头_华为第一款“刘海屏”手机发布,前置摄像头逆天

热门文章

  1. Yii中缓存依赖的处理
  2. 简单的问题和复杂的问题
  3. requests---requests简介
  4. arch Linux 安装完,无法通过 SSH 远程连接 root 用户问题
  5. EXCEL 数字+E+数字 自动识别为指数形式的解决办法
  6. android 地图服务开发 INSTALL_FAILED_MISSING_SHARED_LIBRARY 错误解决
  7. webshpere MQ linux 上安装
  8. vue中使用百度地图为啥是空白_vue中使用腾讯地图(尝试篇)
  9. node-mongoDB
  10. Win64 驱动内核编程-9.系统调用、WOW64与兼容模式