您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“常見(jiàn)的JavaScript代碼優(yōu)化方法有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“常見(jiàn)的JavaScript代碼優(yōu)化方法有哪些”吧!
我們?cè)趧?chuàng)建新變量賦予一個(gè)存在的變量值的時(shí)候,并不希望賦予 null
或 undefined
,我們可以采用一下簡(jiǎn)潔的賦值方式。
if(test !== null || test !== undefined || test !== ''){
let a1 = test;
}
// 優(yōu)化后
let a1 = test || ''
let test = null;
let a1 = test || '';
let test = undefined;
let a1 = test || '';
空值合并操作符(??)是一個(gè)邏輯操作符,當(dāng)左側(cè)的操作數(shù)為 null
或者 undefined
時(shí),返回其右側(cè)操作數(shù),否則返回左側(cè)操作數(shù)。
const test= null ?? 'default string';
console.log(test);
console.log(test); // expected output: "default string"
const test = 0 ?? 42;
console.log(test); // expected output: 0
當(dāng)我們想要聲明多個(gè)共同類(lèi)型或者相同值的變量時(shí),我們可以采用一下簡(jiǎn)寫(xiě)的方式。
let test1;
let test2 = 0;
// 優(yōu)化后
let test1, test2 = 0;
當(dāng)我們進(jìn)行多個(gè)條件判斷時(shí),我們可以采用數(shù)組 includes
的方式來(lái)實(shí)現(xiàn)簡(jiǎn)寫(xiě)。
if(test === '1' || test === '2' || test === '3' || test === '4'){
// 邏輯
}
// 優(yōu)化后
if(['1','2','3','4'].includes(test)){
// 邏輯處理
}
當(dāng)存在一層或兩層 if...else
嵌套時(shí),我們可以使用三元運(yùn)算符來(lái)簡(jiǎn)寫(xiě)。
let test = null;
if(a > 10) {
test = true;
} else {
test = false;
}
// 優(yōu)化后
let test = a > 10 ? true : false;
// 或者
let test = a > 10;
當(dāng)我們想給多個(gè)變量賦不同的值的時(shí)候,我們可以采用一下簡(jiǎn)潔的速記方案。
let a = 1;
let b = 2;
let c = 3;
// 優(yōu)化
let [a, b, c] = [1, 2, 3];
當(dāng)我們?cè)陂_(kāi)發(fā)中經(jīng)常用到算數(shù)運(yùn)算符時(shí),我們可以使用一下方式進(jìn)行優(yōu)化和簡(jiǎn)寫(xiě)。
let a = 1;
a = a + 1;
a = a - 1;
a = a * 2;
// 優(yōu)化
a++;
a--;
a *= 2;
我們經(jīng)常會(huì)在開(kāi)發(fā)中用到的,在這也簡(jiǎn)單整理一下。
if (test1 === true)
if (test1 !== "")
if (test1 !== null)
// 優(yōu)化
if (test1)
我們通常在項(xiàng)目中遇到條件判斷后跟函數(shù)執(zhí)行,我們可以使用一下簡(jiǎn)寫(xiě)方式。
if (test) {
foo();
}
//優(yōu)化
test && foo();
在 return
的語(yǔ)句中使用比較,可以將其進(jìn)行縮寫(xiě)的形式如下。
let test;
function checkReturn() {
if (!(test === undefined)) {
return test;
} else {
return foo('test');
}
}
// 優(yōu)化
function checkReturn() {
return test || foo('test');
}
遇到如下形式的 switch
語(yǔ)句,我們可以將其條件和表達(dá)式以鍵值對(duì)的形式存儲(chǔ)。
switch (type) {
case 1:
test1();
break;
case 2:
test2();
break;
case 3:
test();
break;
// ......
}
// 優(yōu)化
var obj = {
1: test1,
2: test2,
3: test
};
obj[type] && obj[type]();
for (let i = 0; i < arr.length; i++)
// 優(yōu)化
for (let i in arr) or for (let i of arr)
function add() {
return a + b;
}
// 優(yōu)化
const add = (a, b) => a + b;
const data1 = [1, 2, 3];
const data2 = [4 ,5 , 6].concat(data1);
// 優(yōu)化
const data2 = [4 ,5 , 6, ...data1];
const data1 = [1, 2, 3];
const data2 = [4 ,5 , 6].concat(data1);
// 優(yōu)化
const data2 = [4 ,5 , 6, ...data1];
數(shù)組克?。?/p>
const data1 = [1, 2, 3];
const data2 = test1.slice()
// 優(yōu)化
const data1 = [1, 2, 3];
const data2 = [...data1];
const test = 'hello ' + text1 + '.'
// 優(yōu)化
const test = `hello ${text}.`
const a1 = this.data.a1;
const a2 = this.data.a2;
const a3 = this.data.a3;
// 優(yōu)化
const { a1, a2, a3 } = this.data;
數(shù)組按照索引來(lái)查找特定值,我們可以通過(guò)邏輯位運(yùn)算符 ~
來(lái)代替判斷。
“~”
運(yùn)算符(位非)用于對(duì)一個(gè)二進(jìn)制操作數(shù)逐位進(jìn)行取反操作
if(arr.indexOf(item) > -1)
// 優(yōu)化
if(~arr.indexOf(item))
// 或
if(arr.includes(item))
const data = { a1: 'abc', a2: 'cde', a3: 'efg' };
Object.entries(data);
/** 輸出:
[ [ 'a1', 'abc' ],
[ 'a2', 'cde' ],
[ 'a3', 'efg' ]
]
**/
我們可以通過(guò) Object.values()
將對(duì)象的內(nèi)容轉(zhuǎn)化為數(shù)組。如下:
const data = { a1: 'abc', a2: 'cde' };
Object.values(data);
/** 輸出:
[ 'abc', 'cde']
**/
Math.pow(2,3);
// 優(yōu)化
2**3;
for (var i = 0; i < 10000; i++)
// 優(yōu)化
for (var i = 0; i < 1e4; i++) {
let key1 = '1';
let key2 = 'b';
let obj = {key1: key1, key2: key2};
// 簡(jiǎn)寫(xiě)
let obj = {
key1,
key2
};
let a1 = parseInt('100');
let a2 = parseFloat('10.1');
// 簡(jiǎn)寫(xiě)
let a1 = +'100';
let a2 = +'10.1';
到此,相信大家對(duì)“常見(jiàn)的JavaScript代碼優(yōu)化方法有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。