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