摘要:寫在前面這道題是本人在面試一家公司時的一個簡單的基礎(chǔ)問題,公司就不透露了,算是國內(nèi)很有名的公司,本人面試的只是實習(xí)崗位。
寫在前面
這道題是本人在面試一家公司時的一個簡單的基礎(chǔ)問題,公司就不透露了,算是國內(nèi)很有名的公司,本人面試的只是實習(xí)崗位。一些大的問題就不再說了,每個人遇到的可能都是不一樣的,基本會圍繞著我們平常所常用的東西來聊,下面就說一道小題:
題目寫出下面幾個表達(dá)式的結(jié)果:
NaN == NaN [] == false !![] == false {} == false undefined == null
這道題我估計很多人都會答錯,本人就答錯了,下面就來分析分析:
NaN == NaN
這個只需要理解NaN是什么就好,NaN代表的是Not a Number,代表的是一個不可以表示的值,而非一個具體的值,所以NaN和NaN并不相等。
==比較的僅僅是值,而值+類型,所以==會發(fā)生隱式的類型轉(zhuǎn)換,所以有必要先來看一下ECMA規(guī)范:
上圖是規(guī)范,下面我就來翻譯下上面說的:
undefined == null => true
Number類型與String類型比較的話,那么會對String類型進(jìn)行類型轉(zhuǎn)換。
假如含有Boolean類型的話,會先將Boolean類型轉(zhuǎn)化為Number類型。
假如是基本類型與引用類型比較的話,會先嘗試對引用類型進(jìn)行轉(zhuǎn)化。
了解了這部分規(guī)范后,就可以解決undefined == null啦,根據(jù)規(guī)范會返回true。
對于引用類型的轉(zhuǎn)化,又有如下規(guī)則:
簡單來說就是有兩種處理方式:
假如obj instanceof String為true,則會優(yōu)先調(diào)用toString
假如不是String類型,則會優(yōu)先調(diào)用valueOf方法
下面來繼續(xù)看上面的題目:
[] == false // true
[]會首先嘗試調(diào)用valueOf方法,[].valueOf()返回是[],再調(diào)用toString方法,[].toString()返回的是空字符串,則比較的是"" == false,依據(jù)規(guī)范進(jìn)行轉(zhuǎn)化:
"" == Number(false) => "" == 0 Number("") == 0 => 0 == 0
對于{} == false來說也是相同的道理,將其轉(zhuǎn)化為[object Object] == false,答案也很明了,返回的肯定是false。
再來看!![] == false,首先來看一運(yùn)算符的優(yōu)先級,鏈接中的表格寫出了各種運(yùn)算符的優(yōu)先級,根據(jù)表格可以知道的就是!的優(yōu)先級高于==,而!!將表達(dá)式轉(zhuǎn)化為Boolean類型,!![]返回的是true,所以!![] == false值為false
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88177.html
摘要:項目組長給我看了一道面試別人的面試題。打鐵趁熱,再來一道題來加深下理解。作者以樂之名本文原創(chuàng),有不當(dāng)?shù)牡胤綒g迎指出。 showImg(https://segmentfault.com/img/bVbur0z?w=600&h=400); 剛?cè)肼毿鹿荆瑢儆诠久刃乱幻?,一天下午對著屏幕看代碼架構(gòu)時。BI項目組長給我看了一道面試別人的JS面試題。 雖然答對了,但把理由說錯了,照樣不及格。 ...
摘要:重溫一個面試題內(nèi)容數(shù)組內(nèi)容為數(shù)組內(nèi)容為個英文字母,使用兩個線程分別輸入兩個數(shù)組,打印內(nèi)容為這樣的規(guī)律提取一下核心內(nèi)容,去除次要內(nèi)容兩個線程需要交替執(zhí)行,打印數(shù)字的線程需要先執(zhí)行,數(shù)組打印完畢后線程需要結(jié)束。 一道多線程面試題引起的自我救贖 近日去一個知名互聯(lián)網(wǎng)企業(yè)參加面試,之前準(zhǔn)備多多信心滿滿,但是面試一開始就是一道不起眼的編程題 數(shù)組A內(nèi)容為 1,2,3,4...52 ,數(shù)組B內(nèi)容...
摘要:一基礎(chǔ)接口的意義百度規(guī)范擴(kuò)展回調(diào)抽象類的意義我的前端面試經(jīng)歷百度前端掘金博主就讀于電子科技大學(xué),大三狗一枚面試是個漫長的過程,從海投到收獲電話面試,一面二面三面,一個步驟出錯那么后面就宣告終結(jié)。 一道常被人輕視的前端 JS 面試題 - 前端 - 掘金 目錄前言第一問第二問變量聲明提升函數(shù)表達(dá)式第三問第四問第五問第六問構(gòu)造函數(shù)的返回值第七問最后前言 年前剛剛離職了,分享下我曾經(jīng)出過的一道...
摘要:今天看見一道面試題答案是多少答案是對方法不太了解就去搜了一下,里面也包含了對這道面試題的詳解。方法返回一個由原數(shù)組中的每個元素調(diào)用一個指定方法后返回值組成的新數(shù)組。使用方法處理數(shù)組時,數(shù)組元素的范圍在方法第一次調(diào)用之前就已經(jīng)確定了。 今天看見一道面試題:[1,2,3].map(parseInt)答案是多少?答案是[1,NaN,NaN] 對map()方法不太了解就去搜了一下:Array....
摘要:據(jù)了解,現(xiàn)在前端面試也喜歡考算法題了。下面說一個跟前端有點相關(guān)并且有點趣的一道算法題。遍歷二維數(shù)組連續(xù)的個數(shù)連續(xù)的個數(shù)形狀的總數(shù)第幾個形狀形狀的面積最后的代碼圖片路徑讀取整張圖片的像素。 據(jù)了解,現(xiàn)在前端面試也喜歡考算法題了。前幾天去面試,果不其然的,面試官給我四道算法題,讓我自己回去做。下面說一個跟前端有點相關(guān)并且有點趣的一道算法題。 題目: 平面上有若干個不特定的形狀,如下圖所示...
閱讀 3204·2021-10-14 09:42
閱讀 3572·2019-08-26 13:56
閱讀 3482·2019-08-26 11:59
閱讀 948·2019-08-23 18:00
閱讀 2213·2019-08-23 17:51
閱讀 3534·2019-08-23 17:17
閱讀 1487·2019-08-23 15:11
閱讀 5204·2019-08-23 15:05