《三分钟阅读》7个有用的JavaScript技巧
栏目: JavaScript · 发布时间: 5年前
内容简介:三分钟阅读:给自己3分钟的时间,拾起自己遗漏的知识点,第2期文章引用:作者:David Walsh
三分钟阅读:给自己3分钟的时间,拾起自己遗漏的知识点,第2期
文章引用: davidwalsh.name/javascript-…
作者:David Walsh
解读:skinner
数组去重
var j = [...new Set([1, 2, 3, 3])]; >> [1,2,3] 复制代码
这个去重方法简单的令人陶醉
过滤空值
空值指的是没有具体意义的一些值,比如0,undefined,null,false,空字符串等
let res = [1,2,0,undefined,null,false,''].filter(Boolean); >> 1,2 复制代码
创建空对象
创建一个空对象,我们可能大多数时候会使用对面字面量为 {}
的方式,然而这种方式创建的对象并不是纯粹的,它任然有 __proto__
属性以及继承自 Object
原型的一些方法,这种方式创建的对象容易被修改,比如:
let o = {}; let p = Object.create(null); Object.prototype.say = function(){ console.log('hello') } console.log(o.say) console.log(p.say) >> f(){} >> undefined 复制代码
可以看到通过 {}
创建的对象,很容易就被修改了,而通过 Object.create(null)
这种方式创建的对象就很纯粹,没有任何属性和对象,非常干净。
合并对象
通过 ...
延展操作符可以很容易的合并对象
const person = { a:1 }; const tools = { b:2 }; const attributes = { c:3 }; const summary = {...person, ...tools, ...attributes}; >> {a:1,b:2,c:3} 复制代码
不得不说 ...
延展操作符真是好东西啊!
参数非空检测
这个方法特别适用于封装函数时适用,也许我们知道可以在函数参数中直接指定一个默认值,像下面这样:
function test(parma = 'default'){} 复制代码
然而,我们也可以直接赋值一个函数,如果没有传参,我们就直接抛出错误提醒,如果一个组件里面有很多方法,我们就可以直接复用,而不用每个方法里面都去做非空判断处理。
const isRequired = () => { throw new Error('param is required'); }; const hello = (name = isRequired()) => { console.log(`hello ${name}`) }; // 抛出一个错误,因为没有参数没有传 hello(); // 没有问题 hello('hello') 复制代码
解构添加别名
在导入多个模块的时候,为防止引用的组件重名,我们可以在引入时直接赋值一个别名
const obj = { x: 1 }; const { x: otherName } = require('module'); 复制代码
使用的时候就可以直接使用 otherName
获取查询字符串参数
获取url里面的参数值或者追加查询字符串,在这之前,我们一般通过正则匹配处理,然而现在有一个新的api,具体详情可以查看这里,可以让我们以很简单的方式去处理url。
假如我们有这样一个url,"?post=1234&action=edit",我们可以这样处理这个url
var urlParams = new URLSearchParams('?post=1234&action=edit'); console.log(urlParams.has('post')); console.log(urlParams.get('action')); // "edit" console.log(urlParams.getAll('action')); // ["edit"] console.log(urlParams.toString()); // "?post=1234&action=edit" console.log(urlParams.append('active', '1')); // "?post=1234&action=edit&active=1" 复制代码
是不是很方便?那浏览器支持程度如何呢?通过这个地址查看,可以发现大部分浏览器都支持哦!,如果碰到不支持的情况,这里还有个 polyfill 。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
产品经理的20堂必修课
徐建极 / 人民邮电出版社 / 2013-9-1 / 59.00元
《产品经理的20堂必修课》以作者八年的产品经理工作实践为基础,通过系统的理论结合丰富的实例的方法,全面地总结了作为一名互联网产品经理所应掌握的知识。 《产品经理的20堂必修课》分为三大部分。 讲产品:深入剖析互联网产品成功的要素,分别从需求导向、简单原则、产品运营、战略布局等维度,分析如何让产品在残酷的互联网竞争中脱颖而出。 讲方法:着重分析优秀的产品团队运作的工作方法和程序,详......一起来看看 《产品经理的20堂必修课》 这本书的介绍吧!
在线进制转换器
各进制数互转换器
RGB HSV 转换
RGB HSV 互转工具