우리는 JavaScript가 빠르게 발전하는 언어라는 것을 알고 있습니다. ES2020과 함께 많은 훌륭한 기능이 추가되었습니다. 솔직히, 다양한 방법으로 코드를 작성할 수 있습니다. 동일한 기능을 구현하기 위해 일부 코드는 매우 길고 일부 코드는 매우 짧습니다. 코드를 더 깔끔하고 명확하게 만들기 위해 할 수 있는 몇 가지 요령이 있습니다. 다음 팁은 다음 개발 작업에 확실히 유용할 것입니다.
JavaScript를 사용하면 함수 매개변수의 기본값을 설정할 수 있습니다. 이 기능을 사용하면 함수 매개변수를 확인하는 약간의 트릭을 구현할 수 있습니다.
const isRequired = () => { throw new Error('param is required'); }; const print = (num = isRequired()) => { console.log(`printing ${num}`) }; print(2); //printing 2print(); // errorprint(null); //printing null
JSON.stringify
에 매우 익숙할 것입니다. 하지만 stringify
메서드를 통해 JSON 코드 형식을 지정할 수도 있다는 것을 알고 계셨나요? ? 실제로는 매우 간단합니다. JSON.stringify
非常熟悉了,但是你知道吗,你也可以通过 stringify
方法格式化你的代码。其实这很简单。
stringify
方法有三个参数,分别是 value
replacer
和 space
。后面两个参数是可选的,所以我们平常也不会用到它们。想要缩进输出的代码,我们可以使用2个空格 ,或者4个空格。
console.log(JSON.stringify({ name:"John", Age:23 }, null, ' ')); >>> { "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]
有时候你想删除数组中 Boolean(v)
为 false
的值。在 JavaScript 中只有以下 6 种:
undefined
null
NaN
0
false
去除这些值最简单的办法是使用下面的方法:
array.filter(Boolean)
如果你想先做一些更改然后再过滤,你可以用下面的方法。要记住,原始数组 array
是一直没变的,返回的是一个新数组。
array .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 }; >>> { name: 'John Ludwig', gender: 'Male', primary: 'Mani Primary School', secondary: 'Lass Secondary School', programming: 'Extreme', swimming: 'Average', sleeping: 'Pro'}
三个点也叫扩展操作符。
JavaScript 数组有一个原生的排序方法 arr.sort
。 这个排序方法默认把数组元素转换成字符串,并对其进行字典序排序。这个默认行为会在排序数字数组时出现问题,所以下面有一个办法来处理这个问题。
[0, 10, 4, 9, 123, 54, 1].sort() >>> [0, 1, 10, 123, 4, 54, 9] [0, 10, 4, 9, 123, 54, 1].sort((a,b) => a-b); >>> [0, 1, 4, 9, 10, 54, 123]
有时候你可能想要禁止用户点击右键。虽然这个需求很少见,但是可能派的上用场。
<body oncontextmenu="return false"> <p></p> </body>
这个简单的代码片段就可以禁止用户点击右键了。
解构赋值是 JavaScript 的一个特性,它允许直接从数组或者对象中获取值,而不需要繁琐的声明变量再赋值。对对象来讲,我们可以通过下面这种方式来给属性名重新定义一个名字。
const object = { number: 10 };// Grabbing numberconst { number } = object;// Grabbing number and renaming it as otherNumberconst { number: otherNumber } = object;console.log(otherNumber); // 10
如果你想获取数组中的最后一项,你可以使用 slice
函数,同时带上一个负数作为参数。
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.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
中有一个是 rejected 状态时,其会立即停止执行并抛出异常。
如果你想忽略 resolved 或者 rejected 状态,你可以使用 Promise.allSettled
stringify
메서드에는 value
replacer
및 space
라는 세 가지 매개 변수가 있습니다. 마지막 두 매개변수는 선택사항이므로 일반적으로 사용하지 않습니다. 출력 코드를 들여쓰려면 공백 2개 또는 공백 4개를 사용할 수 있습니다. 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("here", res); }) .catch((err) => console.log(err)); >>> here [ { status: 'fulfilled', value: 100 }, { status: 'rejected', reason: null }, { status: 'fulfilled', value: 'Data release' }, { status: 'rejected', reason: Error: Something went wrong at Object.<anonymous> at Module._compile (internal/modules/cjs/loader.js:1200:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10) at Module.load (internal/modules/cjs/loader.js:1049:32) at Function.Module._load (internal/modules/cjs/loader.js:937:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) at internal/main/run_main_module.js:17:47 } ]
filter
함수를 사용하여 중복 값을 필터링했습니다. 어레이 중복을 제거합니다. 하지만 이제 새로운 Set
속성을 사용하여 필터링할 수 있습니다. 매우 간단합니다. 🎜rrreeeBoolean( v)
는 false
값입니다. JavaScript에는 다음과 같은 6가지 유형만 있습니다: 🎜정의되지 않음
null
NaN
0
false
array
는 변경되지 않으며 새 배열이 반환된다는 점을 기억하세요. 🎜rrreeearr.sort
가 있습니다. 이 정렬 방법은 기본적으로 배열 요소를 문자열로 변환하고 사전순으로 정렬합니다. 이 기본 동작은 숫자형 배열을 정렬할 때 문제를 일으킬 수 있으므로 이를 처리하는 방법은 다음과 같습니다. 🎜rrreeeslice 함수, 음수를 매개변수로 취합니다. 🎜rrreee<h2 class="heading" data-id="heading-9">🎜모든 Promise가 실행될 때까지 기다리세요🎜🎜🎜때로는 후속 작업을 수행하기 전에 여러 Promise가 실행될 때까지 기다려야 할 수도 있습니다. <code>Promise.all
을 사용하여 이러한 Promise를 병렬로 실행할 수 있습니다. 🎜rrreee🎜 Promise.all
중 하나가 거부된 상태인 경우 즉시 실행이 중지되고 예외가 발생한다는 점에 유의하세요. 🎜🎜해결됨 또는 거부됨 상태를 무시하려면 Promise.allSettled
를 사용하면 됩니다. 이것은 ES2020의 새로운 기능입니다. 🎜rrreee🎜추천 튜토리얼: "🎜JS Tutorial🎜"🎜위 내용은 JavaScript 개발자가 사용하는 10가지 일반적인 트릭의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!