JavaScript 中的一些小技巧(一)

2018-08-23  本文已影响0人  壮语

一、JSON.stringify()

JSON.stringify(value[,replace[,space]]);

JSON.stringify()方法我们经常使用,第一参数value(将要被序列化的变量的值),这是我们最常用的,但是他还有两个参数replace及space我们很少用到。

replace: 替代器,可以是函数或者数组,如果是一个函数则value的每个属性都要经过函数处理。如果是数组,(数组的元素只能为字符串),则数组元素会被当做value的key进行匹配,最后只返回包含数组元素的为key的值。

space: 指定输出值的代码缩进,美化格式用。可以是数字或字符串。如果是数字(最大为10),代表缩进多少空格,如果是字符串(最多10个字符)将显示在每行代码之前。

例子1:

var obj = { a:1, b:2, c:3, d:4, e:5, f:6, e:7};

var jsonString1 = JSON.stringify(obj, ['a','c']);

var jsonString2 = JSON.stringify(obj, (key, value)=>{

    if (value>4) return undefined;

    return value;

});

输出结果为:

例子2:

var obj = { a:1, b:2, c:3, d:4, e:5, f:6, e:7 };

var jsonString1 = JSON.stringify(obj, ['a','c'], 5);

var jsonString2 = JSON.stringify(obj, ['a','c'], '->');

输出结果为:

由以上的例子可以看出,replace如何space两个参数可以过滤并序列化对象。

二、用Set 实现数组去重

直接上例子:

const removeItems = arr => [...new Set(arr)];

let newItems = removeItems(['11','22','11','22',true,true]);

执行结果为:

三、使用函数默认参数进行参数校验

es6中,函数增加参数默认值的特性。我们可以通过这个特性做函数参数的校验

例子:

function getAge(age=requireAge()) {

    return age;

}

function requireAge() {

    throw new Error('缺少了参数age');

}

let age1 = getAge();

输出结果为:

上一篇 下一篇

猜你喜欢

热点阅读