成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

每日 30 秒 ? 優(yōu)雅三連擊

Rocture / 1917人閱讀

簡介
短路運(yùn)算、逗號運(yùn)算、簡化條件語句、初始化小技巧

昨天一個同學(xué)在 URL 大爆炸 問了我一個問題:這是什么寫法 (data[key] = value, data) 。平時在寫文章的時候會把這些技巧稍微提示一下,認(rèn)為大家都知道這些技巧,引起了小二的自我反省。

希望大家可以一起成長,都不掉隊。

可能很多人都了解這些方法了,如果懂的同學(xué)就溫故知新,不懂的同學(xué)咱們迎頭追上。由于是個人常用技巧可能并不是最好的,如果有知道的同學(xué)也可以提出來一起成長。

短路運(yùn)算

只有當(dāng)?shù)谝粋€運(yùn)算數(shù)的值無法確定邏輯運(yùn)算的結(jié)果時,會按照順序?qū)κO逻\(yùn)算數(shù)進(jìn)行求值。一起回憶初中常背的一句口訣:一真即真,一假即假。

一真即真

一真即真 指的是 || 或運(yùn)算符,當(dāng)一個值為真并停止對后面的判斷。

默認(rèn)值
function test(name) {
    name = name || "Bar" ;
    console.log(name)
}

// 輸出 Bar
console.log(test());

當(dāng)然也可以用 ES6 的 spread 語法來完成默認(rèn)值,關(guān)于更多函數(shù)參數(shù)技巧可以查看 函數(shù)騷操作。不支持 ES6 時等需要默認(rèn)值操作時,||一個值得使用的小技巧。

簡化條件語句

在開發(fā)是時候,偶爾會遇到只有一行代碼的條件語句:

if(!name) {
    initName()
}

不知道同學(xué)會不會和我一樣會覺得這樣寫不好看,這里可以利用 || 來簡化代碼:

name || initName()
一假即假

一假即假 指的是 && 或運(yùn)算符,當(dāng)一個值為假時則會停止判斷,為真時則會一直判斷下去。

默認(rèn)值

在取一些對象屬性的時候,對象屬性有可能為 null 或者 undefind 則會出現(xiàn)錯誤:

const data = {
    name: "xiaoer",
    age: 18,
    company: null
}

// 拋出錯誤: Uncaught TypeError: Cannot read property "name" of null
console.log(data.company.name)

在這里 && 搭配 || 使用可以寫出更實(shí)用的默認(rèn)值操作:

const data = {
    name: "xiaoer",
    age: 18,
    company: null
}

const name = data.company && data.company.name || "no name";
簡化條件語句

在開發(fā)是時候,偶爾會遇到只有一行代碼的條件語句:

// 假設(shè)后端返回的用戶數(shù)據(jù)為 data
const data = {
    name: "xiaoer",
    age: 18,
    company: null
}

if (data.company && data.company.name) {
    initCompany();
}

&&|| 一樣也可以用來簡化條件語句:

data.company && data.company.name && initCompany();
逗號運(yùn)算符 for 循環(huán)

在使用 for 循環(huán)的時候,可能不止需要迭代一個參數(shù),可以利用逗號表達(dá)式:

腳本
let i = 0, j = 0, times = 5;

for (let i = 0, j = 0; i < times; i++, j++, j++){
    console.log(i, j);
}
輸出
i:0, j:0
i:1, j:2
i:2, j:4
i:3, j:6
i:4, j:8
語句賦值

有時候會需要一次聲明多個變量:

const a = 0,
    b = 1,
    c = 2;

// 輸出 a, b, c
console.log(a, b, c);

// 下面操作都會報錯
// 證明確實(shí)都是 const 常量
a = 2;
b = 1;
c = 1;
簡化語句

在寫一些簡短的函數(shù)時常常寫成下面這樣:

const ins = (x) => {
    x++;
    return x;
}

[{count: 1}].map((x) => {
    x.count++;
    return x;
})

如果需要進(jìn)行的操作很多倒是需要寫得詳細(xì)方便他人閱讀,而且開發(fā)并不是一個人。如果是這種一點(diǎn)點(diǎn)操作的時候,可以利用逗號運(yùn)算符來簡化:

const ins = (x) => (x++, x)

[{count: 1}].map((x) => (x.count++, x));
一起成長
在困惑的城市里總少不了并肩同行的 伙伴 讓我們一起成長。

如果您想讓更多人看到文章可以點(diǎn)個 點(diǎn)贊。

如果您想激勵小二可以到 Github 給個 小星星。

如果您想與小二更多交流添加微信 m353839115。

本文原稿來自 PushMeTop

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/109231.html

相關(guān)文章

  • 每日 30 ? 該不該優(yōu)雅

    showImg(https://segmentfault.com/img/remote/1460000018734296?w=900&h=500); 簡介 可讀性、性能、Spread、Reduce 在 優(yōu)雅三連擊 中有同學(xué)提到了 可讀性 這個關(guān)鍵詞,就小二個人的觀點(diǎn) 在某個范圍內(nèi)使用比較常用到的小技巧,可以提升一定的可讀性,文中提到的短路運(yùn)算在初始化變量是提升可讀性的,并且在很多提倡優(yōu)化if 語句...

    JohnLui 評論0 收藏0
  • 每日 30 ? 優(yōu)雅初始化數(shù)組

    showImg(https://segmentfault.com/img/remote/1460000018709740?w=900&h=500); 簡介 數(shù)組、初始化、快速生成數(shù)組、內(nèi)存泄露 有時候會需要對數(shù)組進(jìn)行一些初始化,最常用到的便是 for 循環(huán): let num = []; for (let i = 0; i < 10; i++) { // 做一些其他操作 // 或者返...

    pcChao 評論0 收藏0
  • 每日 30 ? 優(yōu)雅插入數(shù)組

    showImg(https://raw.githubusercontent.com/pushmetop/resource/master/30-seconds-for-everyday/insert-item-inside-an-array/poster.png); 簡介

    genefy 評論0 收藏0
  • 每日 30 ? 函數(shù)參數(shù)騷操作

    showImg(https://segmentfault.com/img/remote/1460000018667432?w=900&h=500); 前言 函數(shù)、參數(shù)、解構(gòu)、優(yōu)雅、可讀性、技巧 不管是調(diào)用第三方庫或者是項(xiàng)目自身的函數(shù),開發(fā)過程中總少不了函數(shù)。可以說函數(shù)是解放代碼的第一生產(chǎn)力,有的同學(xué)會說了那你把類放在那里了。其實(shí)用函數(shù)和數(shù)據(jù)一樣可以模擬出來類,類更多的是對函數(shù)的歸集和復(fù)用進(jìn)行擴(kuò)充升...

    MonoLog 評論0 收藏0
  • 每日 30 ? 誰敢與我一戰(zhàn)

    showImg(https://segmentfault.com/img/remote/1460000018771037?w=900&h=500); 簡介 benchmark、基準(zhǔn)測試、jsPerf 在 優(yōu)雅插入數(shù)組 一文中大家最多的評論就是 能不能加個基準(zhǔn)測試。小二不是不喜歡加基準(zhǔn)測試而是現(xiàn)在硬件設(shè)備的性能越來越快了,有時候一些操作不是性能問題的主要原因,當(dāng)然這不是我們不寫出好代碼的理由。 書寫...

    Dionysus_go 評論0 收藏0

發(fā)表評論

0條評論

Rocture

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<