摘要:直接開(kāi)始題目是厲害了說(shuō)句實(shí)話開(kāi)發(fā)中誰(shuí)寫(xiě)成這樣保證會(huì)被打死。不過(guò)面試就是面試,有面試官的考量點(diǎn)。官方是這么說(shuō)的。結(jié)果完美,不過(guò)小姐姐的意思是數(shù)組的方法會(huì)自動(dòng)觸發(fā)數(shù)組的。
直接開(kāi)始題目是
if(a==1 && a==2 && a==3){ alert("厲害了") }
說(shuō)句實(shí)話開(kāi)發(fā)中誰(shuí)寫(xiě)成這樣保證會(huì)被打死。
不過(guò)面試就是面試,有面試官的考量點(diǎn)。
我理解的點(diǎn)有兩個(gè)
1、隱式類(lèi)型轉(zhuǎn)換先說(shuō)說(shuō)隱式類(lèi)型轉(zhuǎn)換有幾種情況
String和Number比較:"1" == 1,字符串會(huì)調(diào)用Number()方法轉(zhuǎn)為數(shù)字后再比較。
Boolean和Number比較:true == 1, Boolean調(diào)用Number()方法轉(zhuǎn)為數(shù)字后再比較。
布爾值和字符串比較:true == "1",會(huì)將雙方調(diào)用Number()轉(zhuǎn)換為Number,然后再進(jìn)行比較。
總結(jié)一句話,==兩側(cè)非Number都會(huì)調(diào)用Number()轉(zhuǎn)化后再調(diào)用。
它們四個(gè)可以分兩類(lèi),+和其它,我們都知道+既可以做運(yùn)算符也可以做字符串鏈接。
1+1 = 2 1+"1" = "11" 2-"1" = 1 2*"1" = 2 2-/"1" = 2
除了+號(hào)運(yùn)算符,其它運(yùn)算符兩側(cè)如果有字符串?dāng)?shù)字的話也是會(huì)調(diào)用Number轉(zhuǎn)換再運(yùn)算。
聊到這里你發(fā)現(xiàn)這和題目沒(méi)毛關(guān)系啊!過(guò)來(lái)人告訴你 冷靜!往下看
2、valueOf / toString等原生api的掌握程度
針對(duì)對(duì)象的valueOf / toString等原生api,我們看數(shù)字和對(duì)象的比較/數(shù)字和對(duì)象的運(yùn)算
以上我們總結(jié)單純的隱式類(lèi)型轉(zhuǎn)換沒(méi)辦法解決問(wèn)題
js里除了空字符串、數(shù)字0、null、undefined、false、NaN為假 其它均為真。
JavaScript調(diào)用valueOf方法將對(duì)象轉(zhuǎn)換為原始值。你很少需要自己調(diào)用valueOf方法;當(dāng)遇到要預(yù)期的原始值的對(duì)象時(shí),JavaScript會(huì)自動(dòng)調(diào)用它。官方是這么說(shuō)的。
1 == { valueOf:()=>{ return 1 } } //true
從結(jié)果看 對(duì)象會(huì)自動(dòng)調(diào)用valueOf方法
這樣我們就可以改成:
a = { value :0, valueOf :function(){ this.value++ return this.value } } 1==a //true 2==a //true 3==a //true //結(jié)果為true,每次隱式類(lèi)型轉(zhuǎn)換的過(guò)程都會(huì)自動(dòng)調(diào)用valueOf。 //接下來(lái)說(shuō)toString //都有valueOf了 還說(shuō)toString干嘛,的確默認(rèn)都會(huì)調(diào)用,只不過(guò)有優(yōu)先級(jí)。 //我只能說(shuō)js作者很牛逼。 //如果同時(shí)有包含它們兩個(gè)(valueOf和toString會(huì)怎么樣 a = { value :0, valueOf :function(){ this.value++ return this.value+"aa" }, toString:function(){ this.value+=2 return this.value } }
規(guī)則就是這樣,當(dāng)valueOf返回不為基本類(lèi)型的時(shí)候,回去調(diào)用toString方法。
調(diào)用了三次結(jié)果變?yōu)?
還有一個(gè)很騷的方法,是從一個(gè)小姐姐博客看到的,https://juejin.im/post/5d124a12f265da1b9163a28d
文章第六題:我聊的這個(gè)就是這個(gè)題,不過(guò)感覺(jué)小姐姐聊得更專(zhuān)業(yè)點(diǎn)。
let arr=[1,2,3] arr.join = arr.shift arr ==1 arr ==2 arr ==3 結(jié)果完美,不過(guò)小姐姐的意思是數(shù)組的toString方法會(huì)自動(dòng)觸發(fā)數(shù)組的jion。 這個(gè)真是厲害了!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/105311.html
摘要:另一個(gè)問(wèn)題,就是我下面要提及的作用域問(wèn)題,我當(dāng)時(shí)思考的時(shí)間太久了這是回憶中的面試題實(shí)際略有差異,不糾結(jié)了說(shuō)一下腳本的運(yùn)行結(jié)果引用錯(cuò)誤中給出的錯(cuò)誤提示。 版權(quán)聲明:此文首發(fā)于我的簡(jiǎn)書(shū)賬號(hào)人生還有多少個(gè)二十年,轉(zhuǎn)載請(qǐng)注明出處。 此處有幾百字嘮叨: 當(dāng)天,我早早起床,跨越上百公里,高德導(dǎo)航,路人指點(diǎn),跌跌撞撞到達(dá)招聘會(huì)現(xiàn)場(chǎng),當(dāng)時(shí)已是中午十二點(diǎn)半,吃了午餐(半瓶白開(kāi)水),開(kāi)始準(zhǔn)備投遞...
摘要:想必面試題刷的多的同學(xué)對(duì)下面這道題目不陌生,能夠立即回答出輸出個(gè),可是你真的懂為什么嗎為什么是輸出為什么是輸出個(gè)這兩個(gè)問(wèn)題在我腦邊縈繞。同步任務(wù)都好理解,一個(gè)執(zhí)行完執(zhí)行下一個(gè)。本文只是我對(duì)這道面試題的一點(diǎn)思考,有誤的地方望批評(píng)指正。 想必面試題刷的多的同學(xué)對(duì)下面這道題目不陌生,能夠立即回答出輸出10個(gè)10,可是你真的懂為什么嗎?為什么是輸出10?為什么是輸出10個(gè)10?這兩個(gè)問(wèn)題在我腦...
摘要:首先,我先去上搜索了的定義運(yùn)算符創(chuàng)建一個(gè)用戶(hù)定義的對(duì)象類(lèi)型的實(shí)例或具有構(gòu)造函數(shù)的內(nèi)置對(duì)象的實(shí)例。 今天看到一道面試題,如下,問(wèn): 實(shí)例化 Person 過(guò)程中,Person返回什么(或者 p 等于什么)? function Person(name) { this.name = name return name; } let p = new Person(Tom); 說(shuō)實(shí)...
摘要:由虛擬機(jī)生成并拋出,,屬于系統(tǒng)內(nèi)部錯(cuò)誤或者資源耗盡等嚴(yán)重情況,屬于需要擔(dān)負(fù)的責(zé)任,這一類(lèi)異常事件是無(wú)法恢復(fù)或者不可能捕獲的,將導(dǎo)致應(yīng)用程序中斷,但是自定義是可以捕獲的。 題目 showImg(http://img-storage.qiniudn.com/15-9-22/50608386.jpg); 答案:D 分析 Java 異常的結(jié)構(gòu)體系 showImg(http://img-stor...
摘要:下面我們來(lái)使用面向?qū)ο箢?lèi)圖這里就不再畫(huà)了首先面試題中所提到的我們都可以看成類(lèi),比如停車(chē)場(chǎng)是一個(gè)類(lèi)吧,它里面的車(chē)位是一個(gè)類(lèi)吧,攝像頭,屏幕。。。 以下是某場(chǎng)的一道面試題(大概): 1、一個(gè)停車(chē)場(chǎng),車(chē)輛入場(chǎng)時(shí),攝像頭記錄下車(chē)輛信息2、屏幕上顯示所接收的車(chē)輛的信息情況(車(chē)牌號(hào))以及各層車(chē)位的車(chē)位余量3、停車(chē)場(chǎng)一共四層車(chē)位,其中的三層都為普通車(chē)位,還有一層為特殊車(chē)位(體現(xiàn)在停車(chē)計(jì)費(fèi)價(jià)格上面的不...
閱讀 680·2021-09-30 09:47
閱讀 2873·2021-09-04 16:40
閱讀 856·2019-08-30 13:18
閱讀 3452·2019-08-29 16:22
閱讀 1555·2019-08-29 12:36
閱讀 586·2019-08-29 11:11
閱讀 1478·2019-08-26 13:47
閱讀 1132·2019-08-26 13:32