iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >非常实用的JavaScript小技巧有哪些
  • 967
分享到

非常实用的JavaScript小技巧有哪些

2024-04-02 19:04:59 967人浏览 八月长安
摘要

这篇文章主要为大家展示了“非常实用的javascript小技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“非常实用的JavaScript小技巧有哪些”这

这篇文章主要为大家展示了“非常实用的javascript小技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“非常实用的JavaScript小技巧有哪些”这篇文章吧。

使用!!操作符转换布尔值

有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值。为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单。对于变量可以使用!!variable做检测,只要变量的值为:0null" "undefined或者NaN都将返回的是false,反之返回的是true。比如下面的示例:

function Account(cash) {     this.cash = cash;     this.hasMoney = !!cash; } var account = new Account(100.50); console.log(account.cash); // 100.50 console.log(account.hasMoney); // true  var emptyAccount = new Account(0); console.log(emptyAccount.cash); // 0 console.log(emptyAccount.hasMoney); // false

在这个示例中,只要account.cash的值大于0,那么account.hasMoney返回的值就是true

使用+将字符串转换成数字

这个技巧非常有用,其非常简单,可以交字符串数据转换成数字,不过其只适合用于字符串数据,否则将返回NaN,比如下面的示例:

function toNumber(strNumber) {     return +strNumber; } console.log(toNumber("1234")); // 1234 console.log(toNumber("ACB")); // NaN

这个也适用于Date,在本例中,它将返回的是时间戳数字:

console.log(+new Date()) // 1461288164385

并条件符

如果你有一段这样的代码:

if (conected) {     login(); }

你也可以将变量简写,并且使用&&和函数连接在一起,比如上面的示例,可以简写成这样:

conected && login();

如果一些属性或函数存在于一个对象中,你也可以这样做检测,如下面的代码所示:

user && user.login();

使用||运算符

es6中有默认参数这一特性。为了在老版本的浏览器中模拟这一特性,可以使用||操作符,并且将将默认值当做第二个参数传入。如果***个参数返回的值为false,那么第二个值将会认为是一个默认值。如下面这个示例:

function User(name, age) {     this.name = name || "Oliver Queen";     this.age = age || 27; } var user1 = new User(); console.log(user1.name); // Oliver Queen console.log(user1.age); // 27  var user2 = new User("Barry Allen", 25); console.log(user2.name); // Barry Allen console.log(user2.age); // 25

在循环中缓存array.length

这个技巧很简单,这个在处理一个很大的数组循环时,对性能影响将是非常大的。基本上,大家都会写一个这样的同步迭代的数组:

for(var i = 0; i < array.length; i++) {     console.log(array[i]); }

如果是一个小型数组,这样做很好,如果你要处理的是一个大的数组,这段代码在每次迭代都将会重新计算数组的大小,这将会导致一些延误。为了避免这种现象出现,可以将array.length做一个缓存:

var length = array.length; for(var i = 0; i < length; i++) {     console.log(array[i]); }

你也可以写在这样:

for(var i = 0, length = array.length; i < length; i++) {     console.log(array[i]); }

检测对象中属性

当你需要检测一些属性是否存在,避免运行未定义的函数或属性时,这个小技巧就显得很有用。如果你打算定些一些跨兼容的浏览器代码,你也可能会用到这个小技巧。例如,你想使用document.querySelector()来选择一个id,并且让它能兼容IE6浏览器,但是在IE6浏览器中这个函数是不存在的,那么使用这个操作符来检测这个函数是否存在就显得非常的有用,如下面的示例:

if ('querySelector' in document) {     document.querySelector("#id"); } else {     document.getElementById("id"); }

在这个示例中,如果document不存在querySelector函数,那么就会调用docuemnt.getElementById("id")

获取数组中***一个元素

Array.prototype.slice(begin,end)用来获取beginend之间的数组元素。如果你不设置end参数,将会将数组的默认长度值当作end值。但有些同学可能不知道这个函数还可以接受负值作为参数。如果你设置一个负值作为begin的值,那么你可以获取数组的***一个元素。如:

var array = [1,2,3,4,5,6]; console.log(array.slice(-1)); // [6] console.log(array.slice(-2)); // [5,6] console.log(array.slice(-3)); // [4,5,6]

数组截断

这个小技巧主要用来定数组的大小,如果用于删除数组中的一些元素来说,是非常有用的。例如,你的数组有10个元素,但你只想只要前五个元素,那么你可以通过array.length=5来截断数组。如下面这个示例:

var array = [1,2,3,4,5,6]; console.log(array.length); // 6 array.length = 3; console.log(array.length); // 3 console.log(array); // [1,2,3]

替换所有

String.replace()函数允许你使用字符串或正则表达式来替换字符串,本身这个函数只替换***次出现的字符串,不过你可以使用正则表达多中的/g来模拟replaceAll()函数功能:

var string = "john john"; console.log(string.replace(/hn/, "ana")); // "joana john" console.log(string.replace(/hn/g, "ana")); // "joana joana"

合并数组

如果你要合并两个数组,一般情况之下你都会使用Array.concat()函数:

var array1 = [1,2,3]; var array2 = [4,5,6]; console.log(array1.concat(array2)); // [1,2,3,4,5,6];

然后这个函数并不适合用来合并两个大型的数组,因为其将消耗大量的内存来存储新创建的数组。在这种情况之个,可以使用Array.pus().apply(arr1,arr2)来替代创建一个新数组。这种方法不是用来创建一个新的数组,其只是将***个第二个数组合并在一起,同时减少内存的使用:

var array1 = [1,2,3]; var array2 = [4,5,6]; console.log(array1.push.apply(array1, array2)); // [1,2,3,4,5,6];

nodeList转换成数组

如果你运行document.querySelectorAll(“p”)函数时,它可能返回DOM元素的数组,也就是NodeList对象。但这个对象不具有数组的函数功能,比如sort()reduce()map()filter()等。为了让这些原生的数组函数功能也能用于其上面,需要将节点列表转换成数组。可以使用[].slice.call(elements)来实现:

var elements = document.querySelectorAll("p"); // NodeList var arrayElements = [].slice.call(elements); // Now the NodeList is an array var arrayElements = Array.from(elements); // This is another way of converting NodeList to Array

数组元素的洗牌

对于数组元素的洗牌,不需要使用任何外部的库,比如Lodash,只要这样做:

var list = [1,2,3]; console.log(list.sort(function() { Math.random() - 0.5 })); // [2,1,3]

以上是“非常实用的JavaScript小技巧有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网html频道!

--结束END--

本文标题: 非常实用的JavaScript小技巧有哪些

本文链接: https://www.lsjlt.com/news/84706.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 非常实用的JavaScript小技巧有哪些
    这篇文章主要为大家展示了“非常实用的JavaScript小技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“非常实用的JavaScript小技巧有哪些”这...
    99+
    2024-04-02
  • 常用JavaScript小技巧有哪些
    这篇文章主要介绍“常用JavaScript小技巧有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“常用JavaScript小技巧有哪些”文章能帮助大家解决问题。1.通过条件判断向对象添加属性con...
    99+
    2023-06-30
  • 非常实用的Python技巧有哪些
    1.唯一性以下方法可以检查给定列表是否有重复的地方,可用set()的属性将其从列表中删除。x = [1,1,2,2,3,2,3,4,5,6] y = [1,2,3,4,5] len(x)== len(set(x)) # False len(...
    99+
    2023-05-14
    Python
  • JavaScript有哪些小技巧
    这篇文章主要为大家展示了“JavaScript有哪些小技巧”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript有哪些...
    99+
    2024-04-02
  • 实用的JavaScript优化小技巧有哪些
    这篇文章主要为大家展示了“实用的JavaScript优化小技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“实用的JavaScript优化小技巧有哪些”这...
    99+
    2024-04-02
  • PHP有哪些常用的小技巧
    这篇文章主要为大家展示了“PHP有哪些常用的小技巧”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP有哪些常用的小技巧”这篇文章吧。1、命名<input type='c...
    99+
    2023-06-17
  • 常用的C++小技巧有哪些
    小编给大家分享一下常用的C++小技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、头文件是引用<iostream.h>还是<iostr...
    99+
    2023-06-22
  • 常用的CSS小技巧有哪些
    本篇内容介绍了“常用的CSS小技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.清除图片下方出现...
    99+
    2024-04-02
  • PHP常用小技巧有哪些
    这篇文章主要为大家展示了“PHP常用小技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP常用小技巧有哪些”这篇文章吧。1、解决跨域问题public function&nbs...
    99+
    2023-06-20
  • 不常被提及JavaScript小技巧有哪些
    这篇文章将为大家详细讲解有关不常被提及JavaScript小技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、过滤唯一值Set类型是在ES6中新增的,它类似于数...
    99+
    2024-04-02
  • JavaScript的小技巧有哪些呢
    这期内容当中小编将会给大家带来有关JavaScript的小技巧有哪些呢,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、过滤唯一值Set类型是在ES6中新增的,它类似于数...
    99+
    2024-04-02
  • 写JavaScript的小技巧有哪些
    本篇内容介绍了“写JavaScript的小技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. a...
    99+
    2024-04-02
  • 实用的JavaScript技巧有哪些
    本篇内容主要讲解“实用的JavaScript技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“实用的JavaScript技巧有哪些”吧!1 &nd...
    99+
    2024-04-02
  • javascript实用技巧有哪些
    本篇内容介绍了“javascript实用技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、js整数的操作使用|0和~~可以将浮点转...
    99+
    2023-06-25
  • CSS的实用小技巧有哪些
    这篇文章给大家分享的是有关CSS的实用小技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 打字效果代码实现:<div class="wrap...
    99+
    2024-04-02
  • 常用易忘的CSS小技巧有哪些
    这篇文章将为大家详细讲解有关常用易忘的CSS小技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.解决inline-block元素设置overflow:hidde...
    99+
    2024-04-02
  • 常用易忘CSS小技巧有哪些
    这篇文章主要为大家展示了“常用易忘CSS小技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“常用易忘CSS小技巧有哪些”这篇文章吧。解决inline-bl...
    99+
    2024-04-02
  • jQuery、zepto、js常用小技巧有哪些
    小编给大家分享一下jQuery、zepto、js常用小技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!jQuery/ze...
    99+
    2024-04-02
  • JavaScript中Array的实用技巧有哪些
    这篇文章主要介绍“JavaScript中Array的实用技巧有哪些”,在日常操作中,相信很多人在JavaScript中Array的实用技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • Pycharm非常有用的技巧实例分析
    这篇文章主要讲解了“Pycharm非常有用的技巧实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pycharm非常有用的技巧实例分析”吧!一、分屏展示当你想同时看到多个文件的时候:右击...
    99+
    2023-07-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作