javascript 格式化-10 个超级有用的 JavaScript 技巧

众所周知,JavaScript 一直在快速变化。 新的 ES2020 引入了许多很酷的功能。 您可以用多种不同的方式编写代码。 它们将实现相同的目标,但其中一些会更短、更清晰。 您可以通过一些技巧使代码更清晰。 这里列出的对 JavaScript 开发人员有用的方法一定会对您有所帮助。

方法参数的验证

JavaScript 允许您设置参数的默认值。 有了这些,就有了一种验证模式参数的巧妙方法。

const isRequired = () => { throw new Error('param is required'); };
const print = (num = isRequired()) => { console.log(`printing ${num}`) };
print(2);//printing 2
print()// error
print(null)//printing null

非常整洁,不是吗?

格式化json代码

您可能非常熟悉 JSON.stringify。 但您知道可以使用 stringify 进行低格式输出吗? 其实很简单。

javascript 格式化-10 个超级有用的 JavaScript 技巧

stringify 方法需要三个输入。 价值、替代者和空间。 后两个是可选参数。 这就是为什么我们没有关注他们。 要缩进 json,必须使用空格参数。

console.log(JSON.stringify({name:"John",Age:23},null,'t'));
>>> 
{
 "name": "John",
 "Age": 23
}

从链表中获取唯一值

为了从链表中获取唯一的值,我们需要使用filter方法来过滤掉重复的值。 但有了新的 Set 对象,事情就变得更加顺利和容易。

let uniqueArray = [...new Set([1, 2, 3, 3, 3, "school", "school", 'ball', false, false, true, true])];
>>> [1, 2, 3, "school", "ball", false, true]

从链表中删除假值(Falsy Value)

在极少数情况下javascript 格式化,您可能希望从链表中删除虚拟值。 假值是在 JavaScript 的布尔值上下文中被视为假的值。 JavaScript 中只有 6 个假值,它们是:

过滤掉这些虚拟值的最简单方法是使用以下函数。

myArray.filter(Boolean);

如果你想对链表进行一些更改,然后过滤新列表,你可以尝试这样的操作。 请记住,原始 myArray 将保持不变。

myArray
    .map(item => {
        // Do your changes and return the new item
    })
    .filter(Boolean);

合并多个对象

如果我有多个对象需要合并,这是我的首选方式。

const user = { 
     name: 'John Ludwig', 
     gender: 'Male' 
};
const college = { 
     primary: 'Mani Primary School', 
     secondary: 'Lass Secondary School' 
};
const skills = { 
    programming: 'Extreme', 
    swimming: 'Average', 
    sleeping: 'Pro' 
};
const summary = {...user, ...college, ...skills};

javascript 格式化-10 个超级有用的 JavaScript 技巧

这三个点在 JavaScript 中也称为扩展运算符。 您可以在这里了解更多用法。

对数字的链接列表进行排序

JavaScript 数组有一个外部排序方法。 默认情况下,sort 方法将数组元素转换为字符串并按字典顺序对它们进行排序。 在对数字链接列表进行排序时,这可能会导致一些问题。 因此,下面是解决此类问题的简单解决方案。

[0,10,4,9,123,54,1].sort((a,b) => a-b);
>>> [0, 1, 4, 9, 10, 54, 123]

这里提供了一个函数,用排序方法比较数字链表中的两个元素。 这个函数可以帮助我们接收正确的输出。

禁用右键单击 禁用右键单击

您可能希望阻止用户右键单击您的网页。

javascript 格式化-10 个超级有用的 JavaScript 技巧


    

这段简单的代码将为您的用户禁用右键单击。

使用别名进行重构

解构参数是一个 JavaScript 表达式,可以将链接列表中的值或对象的值或属性分配给变量。 解构形式参数使我们能够对多个变量的形式参数使用更简单的句型。

const object = { number: 10 };
// Grabbing number
const { number } = object;
// Grabbing number and renaming it as otherNumber
const { number: otherNumber } = object;
console.log(otherNumber); //10

获取链表中的最后一项

通过向 splice 方法的参数传递一个负整数,可以对组末尾的元素进行计数。

let array = [0, 1, 2, 3, 4, 5, 6, 7] 
console.log(array.slice(-1));
>>>[7]
console.log(array.slice(-2));
>>>[6, 7]
console.log(array.slice(-3));
>>>[5, 6, 7]

等待 Promise 完成

在某些情况下,您可能需要等待多个 Promise 得到解决。 我们可以使用 Promise.all 并行运行我们的 Promise。

const PromiseArray = [
    Promise.resolve(100),
    Promise.reject(null),
    Promise.resolve("Data release"),
    Promise.reject(new Error('Something went wrong'))];
Promise.all(PromiseArray)
  .then(data => console.log('all resolved! here are the resolve values:', data))
  .catch(err => console.log('got rejected! reason:', err))

关于 Promise.all 的主要注意事项是,当 Promise 拒绝时,此方法将引发错误。 这意味着您的代码不会等到所有承诺都得到履行。

如果您想等到所有 Promise 都得到解决,无论它们是被拒绝还是解决javascript 格式化,您可以使用 Promise.allSettled。 ES2020最终版本支持该方法。

const PromiseArray = [
    Promise.resolve(100),
    Promise.reject(null),
    Promise.resolve("Data release"),
    Promise.reject(new Error('Something went wrong'))];
Promise.allSettled(PromiseArray).then(res =>{
console.log(res);
}).catch(err => console.log(err));
//[
//{status: "fulfilled", value: 100},
//{status: "rejected", reason: null},
//{status: "fulfilled", value: "Data release"},
//{status: "rejected", reason: Error: Something went wrong ...}
//]

即使个别 Promise 被拒绝,Promise.allSettled 也会返回所有 Promise 的结果。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript 格式化-10 个超级有用的 JavaScript 技巧 https://www.wkzy.net/game/141512.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务