《三分钟阅读》7个有用的JavaScript技巧

栏目: JavaScript · 发布时间: 6年前

内容简介:三分钟阅读:给自己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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

实战移动互联网营销

实战移动互联网营销

江礼坤 / 机械工业出版社 / 2016-1 / 79.00

移动互联网的兴起,又为企业带来了新的挑战与机遇!越来越多的人,看到了移动互联网的价值与前景,但是在具体操作时,移动互联网具体如何玩?企业如何向移动互联网转型?如何通过移动互联网做营销?等等一系列问题,接踵而至。虽然目前相关的资料和文章很多,但是都过于零散,让人看完后,还是无从下手。而本书旨在成为移动互联网营销领域标准的工具书、参考书,为大家呈现一个系统、全面的移动互联网营销体系。让大家从思维模式到......一起来看看 《实战移动互联网营销》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具