18個(gè)JavaScript編寫(xiě)簡(jiǎn)潔高效代碼的技巧分享
本文翻譯自 18 JavaScript Tips : You Should Know for Clean and Efficient Code,作者:Shefali, 略有刪改。
箭頭函數(shù)
可以使用箭頭函數(shù)來(lái)簡(jiǎn)化函數(shù)聲明。
function add(a, b) {
return a + b;
}
// Arrow function
const add = (a, b) => a + b;
Array.from()
Array.from()方法可用于將任何可迭代對(duì)象轉(zhuǎn)換為數(shù)組。
const str = "Hello!"; const arr = Array.from(str); console.log(arr); //Output: ['H', 'e', 'l', 'l', 'o', '!']
使用console.table顯示數(shù)據(jù)
如果您希望在控制臺(tái)中組織數(shù)據(jù)或以表格格式顯示數(shù)據(jù),則可以使用console.table()。
const person = {
name: 'John',
age: 25,
profession: 'Programmer'
}
console.table(person);
輸出效果:

使用const和let
對(duì)于不會(huì)被重新分配的變量使用const
const PI = 3.14; let timer = 0;
使用解構(gòu)提取對(duì)象屬性
通過(guò)使用解構(gòu)從對(duì)象中提取屬性,可以增強(qiáng)代碼的可讀性。
const person = {
name: 'John',
age: 25,
profession: 'Programmer'
}
//Instead of this ??
console.log(person.name);
console.log(person.age);
//Use this??
const {name, age} = person;
console.log(name);
console.log(age);
使用邏輯OR運(yùn)算符設(shè)置默認(rèn)值
使用||操作符輕松設(shè)置默認(rèn)值。
function greet(name) {
name = name || 'Person';
console.log(`Hello, ${name}!`);
}
greet(); //Output: Hello, Person!
greet("John"); //Output: Hello, John!
清空數(shù)組
你可以使用length屬性輕松清空數(shù)組。
let numbers = [1, 2, 3, 4]; numbers.length = 0; console.log(numbers); //Output: []
JSON.parse()
使用JSON.parse()將JSON字符串轉(zhuǎn)換為JavaScript對(duì)象,這確保了無(wú)縫的數(shù)據(jù)操作。
const jsonStr = '{"name": "John", "age": 25}';
const person = JSON.parse(jsonStr);
console.log(person);
//Output: {name: 'John', age: 25}
Map()函數(shù)
使用map()函數(shù)轉(zhuǎn)換新數(shù)組中的元素,而不修改原始數(shù)組。
const numbers = [1, 2, 3, 4]; const doubled = numbers.map(num => num * 2); console.log(numbers); //Output: [1, 2, 3, 4] console.log(doubled); //Output: [2, 4, 6, 8]
Object.seal()
您可以使用Object.seal()方法來(lái)防止在對(duì)象中添加或刪除屬性。
const person = {
name: 'John',
age: 25
};
Object.seal(person);
person.profession = "Programmer";
console.log(person); //Output: {name: 'John', age: 25}
Object.freeze()
您可以使用Object.freeze()方法來(lái)阻止對(duì)對(duì)象的任何更改,包括添加,修改或刪除屬性。
const person = {
name: 'John',
age: 25
};
Object.freeze(person);
person.name = "Mark";
console.log(person); //Output: {name: 'John', age: 25}
刪除數(shù)組重復(fù)項(xiàng)
您可以使用Set從數(shù)組中刪除重復(fù)的元素。
const arrWithDuplicates = [1, 12, 2, 13, 4, 4, 13]; const arrWithoutDuplicates = [...new Set(arrWithDuplicates)]; console.log(arrWithoutDuplicates); //Output: [1, 12, 2, 13, 4]
使用解構(gòu)交換值
你可以使用解構(gòu)輕松地交換兩個(gè)變量。
let x = 7, y = 13; [x, y] = [y, x]; console.log(x); //13
擴(kuò)展運(yùn)算符
您可以使用擴(kuò)展運(yùn)算符有效地復(fù)制或合并數(shù)組。
const arr1 = [1, 2, 3]; const arr2 = [9, 8, 7]; const arr3 = [...arr2]; const mergedArr = [...arr1, ...arr2]; console.log(arr3); //[9, 8, 7] console.log(mergedArr); //[1, 2, 3, 9, 8, 7]
模板字符串
利用模板文字進(jìn)行字符串插值并增強(qiáng)代碼可讀性。
const name = 'John';
const message = `Hello, ${name}!`;
三元運(yùn)算符
可以用三元運(yùn)算符簡(jiǎn)化條件語(yǔ)句。
const age = 20;
//Instead of this??
if(age>=18){
console.log("You can drive");
}else{
console.log("You cannot drive");
}
//Use this??
age >= 18 ? console.log("You can drive") : console.log("You cannot drive");
使用===代替==
通過(guò)使用嚴(yán)格相等(===)而不是==來(lái)防止類(lèi)型強(qiáng)制轉(zhuǎn)換問(wèn)題。
const num1 = 5;
const num2 = '5';
//Instead of using ==
if (num1 == num2) {
console.log('True');
} else {
console.log('False');
}
//Use ===
if (num1 === num2) {
console.log('True');
} else {
console.log('False');
}
使用語(yǔ)義化變量和函數(shù)名稱(chēng)
為變量和函數(shù)使用有意義的描述性名稱(chēng),以增強(qiáng)代碼的可讀性和可維護(hù)性。
// Don't declare variable like this const a = 18; // use descriptive names const numberOfTips = 18;
以上就是18個(gè)JavaScript編寫(xiě)簡(jiǎn)潔高效代碼的技巧分享的詳細(xì)內(nèi)容,更多關(guān)于JavaScript技巧的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript設(shè)計(jì)模式之策略模式詳解
設(shè)計(jì)模式(Design pattern)是解決軟件開(kāi)發(fā)某些特定問(wèn)題而提出的一些解決方案也可以理解成解決問(wèn)題的一些思路,下面這篇文章主要給大家介紹了關(guān)于JavaScript設(shè)計(jì)模式之策略模式的相關(guān)資料,需要的朋友可以參考下2022-06-06
你必須知道的Javascript知識(shí)點(diǎn)之"字面量和對(duì)應(yīng)類(lèi)型"說(shuō)明介紹
本篇文章小編為大家介紹,你必須知道的Javascript知識(shí)點(diǎn)之"字面量和對(duì)應(yīng)類(lèi)型"。需要的朋友參考下2013-04-04
javascript判斷并獲取注冊(cè)表中可信任站點(diǎn)的方法
這篇文章主要介紹了javascript判斷并獲取注冊(cè)表中可信任站點(diǎn)的方法,可實(shí)現(xiàn)針對(duì)域名和IP的可信任站點(diǎn)判斷功能,需要的朋友可以參考下2015-06-06
簡(jiǎn)單的前端js+ajax 購(gòu)物車(chē)框架(入門(mén)篇)
其實(shí),一直想把自己寫(xiě)的一些js給總結(jié)下,也許是能力有限不能把它完美結(jié)合起來(lái)。只能自己默默的看著哪些代碼,無(wú)能為力2011-10-10
JavaScript數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之?dāng)?shù)組、棧與隊(duì)列
這篇文章主要給大家介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組、棧與隊(duì)列的相關(guān)資料,文中對(duì)數(shù)組、棧與隊(duì)列的使用方法進(jìn)行了詳細(xì)的總結(jié),相信對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05
js創(chuàng)建一個(gè)input數(shù)組并綁定click事件的方法
這篇文章主要介紹了js創(chuàng)建一個(gè)input數(shù)組并綁定click事件的方法,需要的朋友可以參考下2014-06-06
Kimi模型調(diào)用聯(lián)動(dòng)前端簡(jiǎn)單交互頁(yè)面實(shí)現(xiàn)方法
這篇文章主要介紹了如何使用Flask搭建一個(gè)簡(jiǎn)單的AI聊天應(yīng)用,并通過(guò)OpenAI?API實(shí)現(xiàn)對(duì)話功能,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02
JS中的.length屬性和.size()方法的區(qū)別
length是js原生屬性,size()是jQuery方法,如果你只是想獲取元素的個(gè)數(shù),兩者效果一樣既.length和.size()獲取的值是一樣的2024-08-08

