首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

5个技巧让你更好的编写 JavaScript(ES6) 中条件语句

注:如果你还不了解 ES6 中函数默认参数的新特性,可以查看 JavaScript 函数中默认参数 了解更多详情。 如果我们的 fruit 是一个 Object 对象怎么办?我们可以指定默认参数吗?...如果您不介意使用第三方库,有几种方法可以减少空检查: 使用 Lodash get 函数 使用 Facebook 开源的 idx 库(需搭配 Babeljs) 注:如果你还不了解 ES6 中 destructure...以下是使用Lodash的示例: JavaScript 代码: // 引入 lodash 库,我们将获得 _.get()function test(fruit) { console.log(_.get(...此外,如果你喜欢函数式编程(FP),您可以选择使用Lodash fp ,Lodash的函数式能版本(方法名更改为 get  getOr)。...使用具有更清晰语法的 object 字面量可以实现相同的结果: JavaScript 代码: // 使用对象字面量,根据颜色找出对应的水果 const fruitColor = { red:

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

8个写JavaScript代码的小技巧

使用 ES6 语法可以只凭借扩展运算符(...)就可以把值从数组中提取出来:[arg1,arg2] => (arg1,arg2)。...嵌套数组 Array 有一个名为 Array.flat 的方法,它需要一个表示深度的参数来嵌套数组(默认值为 1)。但是如果你不知道深度怎么办,这时候只需要将 Infinity 作为参数即可。...例如当你想要获取的属性为 undefined null 时,会得到 TypeError 错误。...传参的好方法 在 ES6 中可以把 模板字面量(Template literal) 当作是不带括号的函数的参数。这在进行格式化转换文本的时非常好用。...password.substr(-3).padStart(password.length, "*"); // ***kme 结语 在编码时还需要保持代码整洁,平时注意积累在编码时所使到的技巧,并关注 JavaScript

60420

尝鲜 ES2019 的新功能

flat() flat() 是一种用于数组的方法。在某些时候,数组的元素还是数组,这些类型的数组称为嵌套数组。 要取消数组的嵌套它们),我们不得不使用递归。...通常在 JavaScript 中,数组的深度可以为无穷大,或者直到内存不足为止。假设一个数组的嵌套深度为3,并且我们仅将其到深度 2,那么主数组中仍然会存在一个嵌套数组。 句法 ?...用 flat() 平一个深度为3的嵌套数组,参数深度为3。 如果将参数深度设为2,我们得到: ? 可以看到输出中仍然有一个未的数组。...flatMap() flatMap() 用于嵌套数组并根据给出的像 map() 这样的函数更改值。此函数作用于数组并用一个回调函数作为参数。回调函数用于指示数组应该怎样被。...map() 返回嵌套数组,而flatMap() 的输出除了数组的外,还与 map 的结构相同。

2K40

ES2019 中 8 个非常有用的功能

在多维数组上使用时,它将转换为一维。默认情况下,flat()只会将数组平一级。 但是页可以指定级数,并在调用时作为参数传递。如果不确定需要多少级,也可以使用 Infinity。...', [ 'Bytecode' ] ] ] // 用参数 Infinity : let myInfiniteFlatArray = myArray.flat(Infinity) // 输出: console.log...在数组时,可以调用回调函数。 这样就可以在过程中使用原始数组中的每个元素。当在对数组进行操作的同时又要修改内容时很方便。...它需要键值对的可迭代形式,例如数组 Map,然后将其转换为对象。...Symbol.prototype.description 符号是在 ES2015(ES6)中引入的新数据类型。它们通常用于标识对象属性。ES2019 增加了 description 属性。

2.1K20

19 个 JavaScript 编码小技巧

你还可以像下面这样嵌套if语句: ? Short-circuit Evaluation 分配一个变量值到另一个变量的时候,你可能想要确保变量不是null、undefined空。...JavaScript的for循环 如果你只想要原生的JavaScript,而不想依赖于jQueryLodash这样的外部库,那这个小技巧是非常有用的。 Longhand: ?...对象属性 定义对象文字(Object literals)让JavaScript变得更有趣。ES6提供了一个更简单的办法来分配对象的属性。如果属性名和值一样,你可以使用下面简写的方式。...Destructuring Assignment 如果你正在使用任何一个流行的Web框架时,就有很多机会使用数组的形式数据对象的形式与API之间传递信息。...使用撇号。 Shorthand: ? Spread Operator Spread Operator是ES6中引入的,使JavaScript代码更高效和有趣。它可以用来代替某些数组的功能。

80240

前端系列第7集-ES6系列

flat() 和 flatMap() 方法:用于嵌套的数组结构。 ES6对象添加了许多扩展,包括: 属性简写:可以使用变量来定义对象属性,而不必显式地指定属性名和变量名。...ES6中的Promise是一种异步编程的解决方案,用于处理异步操作并简化回调函数嵌套的问题。它表示一个承诺,即某个代码块将在未来执行,可能成功、也可能失败。...代码简化:使用Promise可以使代码更加简洁易懂,减少回调函数嵌套,提高代码可读性和可维护性。...ES6中的Module是一种用于组织JavaScript代码的机制。它允许开发人员将相关的变量、函数和类封装在一个独立的文件中,并且可以方便地在其他文件中重复使用。...第三方模块的引用:通过使用ES6模块,可以轻松地引入第三方库工具,优化项目结构并提高代码质量。 ES6中的Decorator是一种特殊的语法,用于在类和类的属性方法上添加元数据和附加行为。

17320

JS数组扁平化_扁平化js

前言 数组是 JS 中使用频率仅次于对象的数据结构,官方提供了众多的 API,谈谈如何扁平化(flatten)数组。...数组的扁平化,是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组 flat flat(depth) 方法会递归到指定深度将所有子数组连接,并返回一个新数组, depth指定嵌套数组中的结构深度...flatten(b) : b); }, []); }; // es6 const flatten = arr => arr.reduce((a, b) => a.concat(Array.isArray...库 使用undercore库或者lodash的中_.flatten函数,具体用法查阅API文档 _.flatten([1, [2], [3, [[4]]]]); => [1, 2, 3, 4]; 复制代码...参考文献 实现扁平化(flatten)数组的方法还有很多种,可以参考一下文献 javascript-flattening-an-array-of-arrays-of-objects merge-flatten-an-array-of-arrays-in-javascript

1.2K20

ECMAScript 2019(ES10) 的新特性总结

快速通道: ES6、ES7、ES8、ES9、ES10、ES11、ES12、ES13新特性大全 老规矩,先纵览下 ES2019 的新功能: Array.flat()和Array.flatMap():数组...加强格式转化 Array.prototype.sort() 更加稳定 Function.prototype.toString() 重新修订 Array.flat()和Array.flatMap() 数组...Array.flat()把数组,通过传入层级深度参数(默认为1),来为下层数组提升层级。...5, 6 ] Array.prototype.flatMap() 它是Array.prototype.map() 和 Array.prototype.flat() 的组合,通过对map调整后的数据尝试操作...现在所有主流浏览器都使用稳定的排序算法。实际上,这意味着如果我们有一个对象数组,并在给定的键上对它们进行排序,那么列表中的元素将保持相对于具有相同键的其他对象的位置。

1.3K00

ES6 模块化入门

不能被改变赋值 arguments 不会跟踪方法的参数变化 arguments.callee 不再支持,会报 TypeError arguments.caller 不再支持,会报 TypeError...,下面提炼两点) 将导出的内容包裹在一个对象中,在模块内部可以很容易找到导出的内容。...Importing Default Exports 在 CommonJS 中,我们使用 require 导入内容: var _ = require('lodash') 在 ES6 模块中,我们只需要为导入的绑定起一个名字...如果里面包含一个默认导出,那么它放被放在了 alias.default 中 import * as _ from 'lodash' Conclusions 我们今天可以直接使用 ES6 模块,得益于...ES6 模块系统看起来很棒,而它也是 JavaScript 中的一个最重要的功能。希望在不久的将来,模块加载 API 可以最终敲定并直接在浏览器端实现。

77020

前端-javascript简写技巧

本文来源于多年的 JavaScript 编码技术经验,适合所有正在使用 JavaScript 编程的开发人员阅读。 本文的目的在于帮助大家更加熟练的运用 JavaScript 语言来进行开发工作。...'greater than 10' : 'less than 10'; 1.2 循环语句 当使用JavaScript(不依赖外部库,如 jQuery lodash)时,下面的简写会非常有用。...简写为: const dbHost = process.env.DB_HOST || 'localhost'; 2.3 对象属性 ES6 提供了一个很简单的办法,来分配属性的对象。...ES6 提供了相应的方法,我们可以使用反引号和 $ { } 将变量合成一个字符串。 简写为: 2.8 解构赋值 解构赋值是一种表达式,用于从数组对象中快速提取属性值,并赋给定义的变量。...其它一些语言则会发出警告错误。要执行参数分配,可以使用if语句抛出未定义的错误,或者可以利用“强制参数”。

1.5K30

ES6语法翻译Lodash计划:数组篇第1期

计划 ES6语法翻译Lodash计划是本人为自己制定的半年Flag?。...目的是使用ES6语法实现Lodash的单个函数功能,每次分享两个Lodash函数的翻译,涉及到Lodash的类型、字符、数值、数组、对象、函数、集合和工具?。...使用ES6语法翻译Lodash的过程中,有些函数会在ES5语法中存在原型参照,有些比较复杂的函数会翻译成简洁版函数,有些函数可能存在翻译不完整的问题?。...last.push(c) : t.push([c]); return t; }, []); } 备注:大神们都挺厉害的,都是一个嵌套就搞掂,我学到了 Compact函数 功能...语法翻译Lodash计划只是我其中一个比较独特的想法,仅供学习交流和拓展思维所用,不是什么特别的标准。

45840

2022 年 JavaScriptES6 到 ES12 新特性汇总

二、ES6 (ES2015) 1.Class JavaScript 是一种使用原型链的语言。 早期,类似OO的概念是通过原型链做出来的,相当复杂。Class 终于在 ES6 中推出。...因为数组和对象都是指标,所以它们的内容可以增加减少, 但不改变其指标. 早期,JavaScript的var作用域是全局的。 也就是说,变量是在使用后声明的,执行的时候会自动提到顶层,后面会赋值。...Array.prototype.flat() & Array.prototype.flatMap() 阵列 const arr1 = [1, 2, [3, 4]]; arr1.flat(); //...WeakRef WeakRef 对象包含对对象的弱引用,该对象称为其目标引用对象。对对象的弱引用是不会阻止对象被垃圾收集器回收的引用。...相反,普通(强)引用将对象保存在内存中,当一个对象不再有任何强引用时,JavaScript 引擎的垃圾收集器可能会销毁该对象并回收其内存。 如果发生这种情况,你将无法再从弱引用中获取对象

1.4K20

必知必会的8个Python列表技巧

1 列表元素的过滤 1.1 filter()的使用 filter()函数接受2个参数:1个函数对象以及1个可迭代的对象,接下来我们定义1个函数然后对1个列表进行过滤。...2.1 map()的使用 Python中内置的map()函数使得我们可以将某个函数应用到可迭代对象内每一个元素之上。...可以像下面的例子一样: 图7 6 找出列表中出现次数最多的元素 有些情况下我们想要找出列表中出现次数最多的元素,譬如对记录若干次抛硬币结果的列表,找出哪一种结果出现次数最多,就可以参考下面的例子: 图8 7 嵌套列表...有些情况下我们会遇到一些嵌套的列表,其每个元素又是各自不同的列表,这种时候我们就可以利用列表推导式来把这种嵌套列表,如下面2层嵌套的例子: 图9 额外补充: 原作者这里只考虑到两层嵌套的列表,...如果是更多层嵌套,就需要有多少层写多少for循环,比较麻烦,其实还有一种更好的方法,我们可以使用pip install dm-tree来安装tree这个专门用于嵌套结构的库,可以任意层嵌套列表,

92550
领券