摘要:對象通過方法強制轉(zhuǎn)化為數(shù)字,通過方法強制轉(zhuǎn)換為字符串過濾數(shù)組中的所有假植中有一些假值過濾這些假值,可以使用構(gòu)造函數(shù)來進行一次轉(zhuǎn)換雙位運算符可以使用雙位操作符來代替。雙否定位操作符的優(yōu)勢在于它執(zhí)行相同的操作運行速度更快。
JavaScript 小技巧 1.類型轉(zhuǎn)換
string -> number
"32" * 1 // 32 "abc" * 1 // NaN null * 1 // 0 undefined * 1 // NaN { valueOf: () => "3"} * 1 //3
常用: 也可以使用 + 來轉(zhuǎn)化字符串為數(shù)字
+ "32" // 32 + "abc" // NaN + "" // 0 + null // 0 + undefined // NaN + { valueOf: () => "3" } // 3
object -> string
可以使用 字符串+Object 的方式來轉(zhuǎn)化對象為字符串(實際上是調(diào)用 .toString() 的方法)
"the Math object:"+ Math // "the Math object:[object Match]" "the JSON object:"+ JSON // "the JSON object:[object JSON]"
當(dāng)然也可以覆蓋對象的 toString 和 valueOf 方法來自定義
2 * { valueOf: () => "3" } // 6 "A" + { toString: () => "B" } // "AB"
當(dāng) + 用在連接字符串時,當(dāng)一個對象既有 toString 方法又有 valueOf 方法時候,
JS 通過盲目使用 valueOf 方法來解決這種含糊。對象通過 valueOf 方法強制轉(zhuǎn)化
為數(shù)字,通過toString 方法強制轉(zhuǎn)換為字符串
"" + { toString: () => "S", valueOf: () => "J" } // J
boolean 過濾 數(shù)組中的所有假植
JS 中有一些假值: false, null, 0, "", undefined, NaN, 過濾這些假值,可以
使用 Boolean 構(gòu)造函數(shù)來進行一次轉(zhuǎn)換
const compact = arr => arr.filter(Boolean) compact([ 0, 1, false, 2, "", 3, "a", "b" * 23, NaN, "s", 23 ]) // ?[1, 2, 3, "a", "s", 23]
雙位運算符 ~~
可以使用雙位操作符來代替 Math.floor()。 雙否定位操作符的優(yōu)勢在于它執(zhí)行相同的
操作運行速度更快。
Math.floor(3.8) === 3 // true ~~3.8 === 3 // true
注意: ~~對整數(shù)有效,對負數(shù)不相同
短路運算符
邏輯與 && 與邏輯或 || 是短路運算符,短路運算符就是從左到右的運算中前者滿足要求,
就不再執(zhí)行后者了; 可以理解為:
&& 為取假運算,從左到右一次判斷,遇假值就返回假值,以后不再執(zhí)行,否則返回最后
一個真值。
|| 為取真運算,從左到右依次判斷,遇真值就返回真值,以后不再執(zhí)行,否則返回最后
一個假值
let param1 = expr1 && expr2 let param2 = expr1 || expr2
|運算符|示例|說明|
|:-------: | :-----------------------: | :------------------:|
|&&| expr1 && expr2| 如果expr1 能轉(zhuǎn)換成 false 則返回 expr1,否則返回 expr2
因此,Boolean環(huán)境中使用時,
兩個操作結(jié)果都為 true 時返回 true 否則返回 false|
| || | expr1 || expr2 | 如果 expr1 能轉(zhuǎn)換成 true 則返回 expr1,否者返回 expr2,
因此在Boolean 環(huán)境中使用時,
有一個結(jié)果為 true 時返回 true,兩個結(jié)果都為false 返回 false|
因此可以用來做很多有意思的事, 給變量賦初始值和判斷
// init v let variable1; let variable2 = variable1 || "foo"; // check param let varibale = param && param.id;
取整 |0
對一個數(shù)字 |0 可以取整,負數(shù)也同樣適用, num|0
1.3 | 0 // 1
- 判斷奇偶數(shù) #### 2.函數(shù)相關(guān) - 函數(shù)默認值 - 強制參數(shù) - 隱式返回值 - 惰性載入函數(shù) - 一次性函數(shù) #### 3.代碼復(fù)用 - Object [key] ####4.數(shù)字字面量 - 進制表示法 - 精確到指定位數(shù)的小數(shù) #### 5.數(shù)組相關(guān) - reduce 方法同時實現(xiàn) map 和 filter - 統(tǒng)計數(shù)組中相同項的個數(shù) - 使用解構(gòu)來交換參數(shù)數(shù)值 - 接收函數(shù)返回的多個結(jié)果 - 將數(shù)組平鋪到指定深度 - 數(shù)組的對象解構(gòu) #### 6.對象相關(guān) - 使用解構(gòu)刪除不必要的屬性
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/105249.html
摘要:筆者作為一位,將工作以來用到的各種優(yōu)秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識點大百科全書前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計算數(shù)組的極值技巧使你的更加專業(yè)前端掘金一個幫你提升技巧的收藏集。 CSS 樣式畫各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經(jīng)常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會用到。會持續(xù)更新… 一、...
摘要:筆者作為一位,將工作以來用到的各種優(yōu)秀資料神器及框架整理在此,畢竟好記性不如爛鍵盤,此前端知識點大百科全書前端掘金,,不定期更新技巧前端掘金技巧,偶爾更新。計算數(shù)組的極值技巧使你的更加專業(yè)前端掘金一個幫你提升技巧的收藏集。 CSS 樣式畫各種圖形 - 前端 - 掘金下面是一些我在 CSS 中經(jīng)常用到的圖案,還有一些是在css-tricks看到的。記錄一下,以后會用到。會持續(xù)更新… 一、...
摘要:值得收藏個有用技巧像其它語言一樣中也可以通過一些技巧來完成一些復(fù)雜的操作接下來我們學(xué)習(xí)吧數(shù)組去重數(shù)組和布爾有時我們需要過濾數(shù)組中值為的值例如你可能不知道這樣的技巧是不是很簡單只需要傳入一個函數(shù)即可創(chuàng)建一個空對象有時我們需要創(chuàng)建一個純凈的對象 值得收藏 7 個有用JavaScript技巧 像其它語言一樣,JavaScript中也可以通過一些技巧來完成一些復(fù)雜的操作. 接下來我們學(xué)習(xí)吧 數(shù)...
摘要:我的書簽我的書簽謹慎導(dǎo)入,小心覆蓋工具類版本管理快速切換源配置教程指南可視化工具前端工具集前端助手網(wǎng)絡(luò)封包截取工具格式化工具標注工具模擬請求類深入淺出布局你所不知道的動畫技巧與細節(jié)常用代碼黑魔法小技巧,讓你少寫不必要的,代碼更優(yōu)雅一勞永 我的書簽 我的書簽(謹慎導(dǎo)入,小心覆蓋) 工具類 nvm: node版本管理 nrm: 快速切換npm源 shell: zsh+on-my-zsh配...
摘要:我的書簽我的書簽謹慎導(dǎo)入,小心覆蓋工具類版本管理快速切換源配置教程指南可視化工具前端工具集前端助手網(wǎng)絡(luò)封包截取工具格式化工具標注工具模擬請求類深入淺出布局你所不知道的動畫技巧與細節(jié)常用代碼黑魔法小技巧,讓你少寫不必要的,代碼更優(yōu)雅一勞永 我的書簽 我的書簽(謹慎導(dǎo)入,小心覆蓋) 工具類 nvm: node版本管理 nrm: 快速切換npm源 shell: zsh+on-my-zsh配...
閱讀 2773·2021-11-18 10:02
閱讀 2357·2021-09-30 09:47
閱讀 1931·2021-09-27 14:01
閱讀 3217·2021-08-16 11:00
閱讀 3229·2019-08-30 11:06
閱讀 2462·2019-08-29 17:29
閱讀 1604·2019-08-29 13:19
閱讀 501·2019-08-26 13:54