首頁 > web前端 > js教程 > 主體

JavaScript可以減少程式碼量常用的12個技巧

黄舟
發布: 2017-08-11 10:40:21
原創
1524 人瀏覽過

這篇文章主要跟大家分享了javascript簡寫常用的12個技巧,透過這12個技巧可以大大減少你的js程式碼量,看懂一種是入門,全懂就是大神,你能知道幾個呢?需要的朋友們下面跟著小編來一起學習學習下。

前言

本文主要給大家分享了javascript簡寫常用的12個技巧,無論你是初學者還是資深人士,都值得一讀!下面話不多說了,來一起看看詳細的介紹:

1. 空(null, undefined)驗證

# #當我們建立了一個新的變量,我們通常會去驗證該變數的值是否為空(null)或未定義(undefined)。這對於JavaScript程式設計來說,是一個經常要考慮到的驗證。


如果直接寫,像下面這樣:


if (variable1 !== null || variable1 !== undefined || variable1 !== ''){
 let variable2 = variable1;
}
登入後複製

我們可以使用一個更簡潔的版本


let variable2 = variable1 || '';
登入後複製

如果你不相信,可以在Google瀏覽器開發者模式下的控制台中試試看!


//值为null的例子
let variable1 = null;
let variable2 = variable1 || '';
console.log(variable2);
//输出: ''
//值为undefined的例子
let variable1 = undefined;
let variable2 = variable1 || '';
console.log(variable2);
//输出: ''
//正常情况
let variable1 = 'hi there';
let variable2 = variable1 || '';
console.log(variable2);
//输出: 'hi there'
登入後複製

在這裡要注意的是,你在調試完一組程式碼後要刷新下頁面,或者定義不同的變量,不然會報錯:

2. 陣列

這個好像比較簡單!


非最佳化程式碼:

##

let a = new Array(); a[0] = "myString1"; a[1] = "myString2"; a[2] = "myString3";
登入後複製

最佳化程式碼:

let a = ["myString1", "myString2", "myString3"];
登入後複製

3. if true .. else 的最佳化

#

let big;
if (x > 10) {
big = true;
}
else {
big = false;
}
登入後複製

簡化後:






##
let big = x > 10 ? true : false;
登入後複製

這是三目運算,當判斷條件和結果都只有一個的時候可以使用。

極大的簡化了程式碼量!


let big = (x > 10);
let x = 3,
big = (x > 10) ? "greater 10" : (x < 5) ? "less 5" : "between 5 and 10";
console.log(big); //"less 5"
let x = 20,
big = {true: x>10, false : x< =10};
console.log(big); //"Object {true=true, false=false}"
登入後複製

4.變數宣告

儘管JavaScript會自動講變數上提( hoist),使用該方法可以講所有的變數都在函數的頭部用一行搞定。


優化錢:

let x;
let y;
let z = 3;
登入後複製

優化後:

let x, y, z=3;
登入後複製

5. 賦值語句的簡化
簡化前:

x=x+1;
minusCount = minusCount - 1;
y=y*10;
登入後複製

簡化後:

x++;
minusCount --;
y*=10;
登入後複製

假設x=10,y=5,那麼基本的算術運算可以使用如下的簡寫方式:

x += y // x=15
x -= y // x=5
x *= y // x=50
x /= y // x=2
x %= y // x=0
登入後複製

#6. 避免使用RegExp物件


簡化前:

var re = new RegExp("\d+(.)+\d+","igm"),
result = re.exrc("padding 01234 text text 56789 padding");
console.log(result);//"01234 text text 56789"
登入後複製

簡化後:

var result = /d+(.)+d+/igm.exec("padding 01234 text text 56789 padding");
console.log(result); //"01234 text text 56789"
登入後複製

7. If 條件最佳化


簡化前: ##

if (likeJavaScript === true)
登入後複製
簡化後:


if (likeJavaScript)
登入後複製

我們再來個判斷非真的例子:


let c;
if ( c!= true ) {
// do something...
}
登入後複製

簡化後:


let c;
if ( !c ) {
// do something...
}
登入後複製


9.函數參數最佳化

我個人傾向於使用獲取物件元素的方式來存取函數參數,當然這個見仁見智啦!

通常使用的版本:


function myFunction( myString, myNumber, myObject, myArray, myBoolean ) {
// do something...
}
myFunction( "String", 1, [], {}, true );
登入後複製

我喜歡的版本:


function myFunction() {
/* 注释部分
console.log( arguments.length ); // 返回 5
for ( i = 0; i < arguments.length; i++ ) {
console.log( typeof arguments[i] ); // 返回 string, number, object, object, boolean
}
*/
}
myFunction( "String", 1, [], {}, true );
登入後複製

譯者註:原文下方有評論表示不建議用樓主的方法,使用第一種方法函數參數的順序是可以變動的,第二種你就要小心了。


10. charAt()的替代品

#簡化前:


"myString".charAt(0);
登入後複製

簡化後:


"myString"[0];//返回&#39;m&#39;
登入後複製

譯者註:我相信用第一種方法的人已經不多了吧!


11.函數呼叫還可以更短


簡化前:


#

function x() {console.log(&#39;x&#39;)};function y() {console.log(&#39;y&#39;)};
let z = 3;
if (z == 3)
{
x();
} else
{
y();
}
登入後複製

簡化後:


function x() {console.log(&#39;x&#39;)};function y() {console.log(&#39;y&#39;)};let z = 3;
(z==3?x:y)();
登入後複製

#12. 如何優雅的表示大數字

###在JavaScript中,有一個簡寫數字的方法,也許你忽略了。 1e7表示10000000。 #########簡化前:############
for (let i = 0; i < 10000; i++) {
登入後複製
###簡化後:############
for (let i = 0; i < 1e7; i++) {
登入後複製
###### ###總結#########

以上是JavaScript可以減少程式碼量常用的12個技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!