成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:為什么“false == []”和“false == ![]”都返回true?

開發 前端
JavaScript 是一種非常優秀的編程語言,但與此同時,它也常常讓我感到困惑。

JavaScript 是一種非常優秀的編程語言,但與此同時,它也常常讓我感到困惑。

可能我還不夠了解!有時我真的想不通它是如何工作的,看完這5個奇怪的問題,你就知道我為啥這么說了,你知道這些古怪問題的正確答案嗎?

我們現在開始吧。

1、為什么“false == []”和“false == ![]”都返回true?

朋友們,請不要驚訝這確實是正確答案。

只要我們有了相等比較和相同的知識,我們就能完全理解它是怎么一回事了。

console.log(false == []) // true
console.log(false == ![]) // true

讓我簡要解釋一下它是如何工作的。

當我們遇到一個布爾值和一個對象進行比較時,會將這兩個值轉換為數字進行最后的比較。

所以它會經歷這些步驟。

// 1. Convert false to a number to get 0
// 2. Convert [] to a number to get 0
// 3. "0 == 0" Returns true
console.log(false == []) // true
// 1. The result of executing "![]" is false
// 2. false == false Returns true
console.log(false == ![]) // true

2. 為什么“[] == ![]”返回true?

“1 == !1”的結果是什么?'fatfish' == !'fatfish' 返回什么?

為什么空數組如此特別?

// 1. The result of executing "![]" is false
// 2. Next, compare "[] == false"
// 3. Convert [] to a number to get 0
// 4. Convert false to a number to get 0
// 5. "0 == 0" Returns true

console.log([] == ![])

朋友們,請用“===”代替“==”,這樣會讓你的工作輕松很多,否則你可能會做噩夢。

3.關于奇怪的“try catch”

請想一想,getName執行返回的是你的好朋友fatfish,還是我們的好朋友medium?

const getName = () => {
try {
return 'fatfish'
} finally {
return 'medium'
}
}
getName() // ?

我想你猜對了,答案是“fatfish”。不,不是!答案是“medium”。

這是因為在“try….catch….finally”語句中,finally子句無論是否拋出異常都會被執行。另外,如果拋出異常,即使沒有catch子句處理異常,finally子句中的語句也會被執行。

4.關于箭頭功能?

是的,問題很簡單,你會看到fatfish被打印出來了。

const fn = () => 'fatfish'
console.log(fn()) // fatfish

但我想請你嘗試回答這段代碼會輸出什么?

const fn = ()
console.log(fn()) // ?

請問‘{}’是最終結果嗎?

不幸的是,這不是我們想象的那樣。未定義的是最后的贏家。

因為‘{}’是fn函數的一個包含塊,所以它等價于下面的代碼。

const fn = () = {
}

console.log(fn()) // understand

5. 為什么 JSON.stringify('fatfish') ! ==‘fatfish’?

name1 會等于 name2 嗎?

const name1 = JSON.stringify('fatfish')
const name2 = 'fatfish'

console.log(name1 === name2) // ?

我真的很困惑,為什么name1不等于name2?

const name1 = JSON.stringify('fatfish') // => '"fatfish"'
const name2 = 'fatfish'

console.log(name1 === name2) // '"fatfish"' === 'fatfish' => false

請小心使用 JSON.stringify 與字符串進行比較,它會讓您陷入困境。

最后

謝謝您的閱讀,并期待您的關注,您將會閱讀到更多我們推送的優質文章內容。


責任編輯:華軒 來源: web前端開發
相關推薦

2016-12-22 18:38:49

JavaAndroid

2023-08-13 16:17:31

2015-11-23 10:09:30

Java

2022-07-06 13:48:24

RedisSentinel機制

2023-12-06 09:10:28

JWT微服務

2020-10-24 15:50:54

Java值傳遞代碼

2021-02-19 10:02:57

HTTPSJava安全

2021-01-21 07:53:29

面試官Promis打印e

2023-06-20 12:02:39

WhileFor(;;)

2021-12-20 10:30:33

forforEach前端

2023-12-20 14:35:37

Java虛擬線程

2022-12-27 08:39:54

MySQL主鍵索引

2023-07-05 08:17:38

JDK動態代理接口

2024-09-11 08:38:02

JavaScriptC#語言編程

2023-06-05 07:57:53

Kafka消息事務消息

2021-09-07 10:44:33

Java 注解開發

2024-06-07 15:22:17

False聚合排序

2023-02-17 08:10:24

2020-08-24 10:55:41

數據庫雙寫代碼

2023-11-30 08:16:19

SpringjarTomcat
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线黄av| 日本精品视频一区二区 | 午夜精品一区二区三区在线视频 | 欧美日韩一区二区三区四区 | 在线看av的网址 | 一区二区三区四区在线 | 国产精品区二区三区日本 | 亚洲高清视频一区 | 免费国产精品久久久久久 | 亚洲欧洲在线观看视频 | 欧美日韩亚洲国产 | 亚洲第一色av| 涩爱av一区二区三区 | 男女精品久久 | 欧美日韩福利视频 | 亚洲天堂中文字幕 | 久久久久中文字幕 | 黄色在线免费网站 | 亚洲国产情侣自拍 | 国内精品视频免费观看 | www.国产| 国产精品视频一二三区 | 91九色麻豆 | 国产精品久久久久久久粉嫩 | 一区二区不卡视频 | 国产视频一视频二 | 久久国产精品视频 | 国产乱码精品一区二区三区忘忧草 | 国产在线播放一区二区三区 | 超碰97免费观看 | 日韩精品在线视频 | 日本一卡精品视频免费 | 欧美乱人伦视频 | 亚洲一区二区三区免费在线 | 成人小视频在线观看 | 青青草视频网站 | 有码一区 | 国产精品久久久久久一级毛片 | 1级黄色大片 | 视频一区二区在线观看 | 亚洲成人精品一区 |