qq_笑_17
2021-11-04 14:23:43
我最近遇到了一個(gè)高爾夫卡塔,要求檢查一個(gè)字母是否大寫,不超過(guò) 9 個(gè)字符。用戶的回答有點(diǎn)嚇人(這些例子也適用>于相反的順序):f=s=>s<{}f=c=>c<{}f=_=>_<ff=Z=>Z<f某些變量名稱不適用于f:f=a=>a<ff=z=>z<f將函數(shù)與基本字符串進(jìn)行比較時(shí),<and>運(yùn)算符為何以及如何工作?也許指針比較?自己試試:// workingf1=s=>s<{}f2=c=>c<{}f3=_=>_<f3f4=Z=>Z<f4// not workingf5=s=>s<f5console.log('f1', f1('A'))console.log('f1', f1('a'))console.log('f2', f2('A'))console.log('f2', f2('a'))console.log('f3', f3('A'))console.log('f3', f3('a'))console.log('f4', f4('A'))console.log('f4', f4('a'))console.log('f5', f5('A'))console.log('f5', f5('a'))
2 回答

慕容708150
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
將字符串與{}
進(jìn)行比較實(shí)際上是將字符串與 的結(jié)果進(jìn)行比較,結(jié)果({}).toString()
始終為"[object Object]"
。重要的部分是[
字符,它是最后一個(gè)大寫字母 ( Z
)之后的第一個(gè)代碼點(diǎn)。因此,如果您知道輸入字符串是某個(gè)字母,則與以 開頭的字符串進(jìn)行比較[
會(huì)告訴您它是一個(gè)大寫字母。
要清楚,
s => s<{}
是有效的
s => s<"[object Object]"
它與使用對(duì)象 ( {}
)時(shí)選擇的變量名稱無(wú)關(guān),但對(duì)于函數(shù)引用版本很重要。其中,“_”很重要,因?yàn)樗窃凇癦”之后但在所有小寫字母之前的字符。

楊魅力
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
運(yùn)算符>
和<
返回true
或false
取決于運(yùn)算符周圍的兩個(gè)值。如果您嘗試分配與布爾值不兼容的類型,則它將不起作用
添加回答
舉報(bào)
0/150
提交
取消