当前位置: 首页 > Web前端 > HTML

'2'-'10'==真?JS是如何进行隐式类型转换的?

时间:2023-03-28 14:47:57 HTML

鍓嶈█'2'>'10'杩斿洖鐨則rue鍙兘寰堝浜轰笉鐞嗚В鍚э紵鍦╦s涓紝operator鍦ㄦ搷浣滅殑鏃跺€欙紝濡傛灉涓よ竟鐨勬暟鎹笉涓€鑷达紝CPU灏辨棤娉曡绠椼€傝繖鏃跺€欐垜浠殑缂栬瘧鍣ㄤ細鑷姩灏嗚繍绠楃涓よ竟鐨勬暟鎹浆鎹㈡垚鐩稿悓鐨勬暟鎹被鍨嬪啀杩涜璁$畻銆傝繖绉嶇敱缂栬瘧鍣ㄨ嚜鍔ㄨ浆鎹㈣€屾棤闇€绋嬪簭鍛樻墜鍔ㄨ浆鎹㈢殑鏂规硶绉颁负闅愬紡杞崲銆傚鏋滆繖绡囨枃绔犲浣犳湁甯姪锛屸潳锔忓叧娉?鐐硅禐鉂わ笍榧撳姳浣滆€咃紝鏂囩珷鍏紬鍙烽鍙戯紝鍏虫敞鍓嶇鍗椾節绗竴鏃堕棿鑾峰彇鏈€鏂版枃绔爚鎯崇煡閬撲负浠€涔?2'>'10'涓簍rue锛屾垜浠鍏堣浜嗚ВJavaScript鐨勯殣寮忕被鍨嬭浆鎹㈣鍒欍€傞殣寮忕被鍨嬭浆鎹㈣鍒?.==杩愮畻绗︾殑寮哄埗绫诲瀷杞崲瑙勫垯锛熷浜庡瓧绗︿覆鍜屾暟瀛椾箣闂寸殑鐩哥瓑姣旇緝锛屽湪姣旇緝涔嬪墠灏嗗瓧绗︿覆杞崲涓烘暟瀛椼€傚叾浠栫被鍨嬩笌甯冨皵绫诲瀷鐨勭浉绛夋瘮杈冿紝鍏堝皢甯冨皵鍊艰浆鎹负鏁板瓧锛屽啀濂楃敤鍏朵粬瑙勫垯杩涜姣旇緝銆俷ull鍜寀ndefined涔嬮棿鐨勭浉绛夋瘮杈冿紝璁$畻缁撴灉涓簍rue銆傚皢鍏朵粬鍊间笌瀹冧滑杩涜姣旇緝杩斿洖false銆傚浜庡璞′笌闈炲璞$殑鐩哥瓑姣旇緝锛屽璞″厛璋冪敤ToPrimitive鎶借薄鎿嶄綔锛屽啀杩涜姣旇緝銆傚鏋滄搷浣滄暟鐨勮绠楃粨鏋滀负NaN锛屽垯鐩哥瓑姣旇緝杩斿洖false锛圢aN鏈韩涔熶笉绛変簬NaN锛夈€傚鏋滀袱涓搷浣滄暟鍊奸兘鏄璞★紝鍒欐瘮杈冨畠浠槸鍚︽寚鍚戝悓涓€涓璞°€傚鏋滀袱涓搷浣滄暟鎸囧悜鍚屼竴涓璞★紝鍒欑浉绛夎繍绠楃杩斿洖true锛屽惁鍒欒繑鍥瀎alse銆?.鑷鑷噺杩愮畻绗︼紙preandpost锛夛紝涓€鍏冩璐熻繍绠楃杩欎簺杩愮畻绗﹂€傜敤浜庝换浣曟暟鎹被鍨嬬殑鍊笺€傚浜庝笉鍚岀被鍨嬬殑鍊硷紝杩愮畻绗﹂伒寰互涓嬭鍒欙紙缁忚繃姣旇緝锛岃鍒欎笌Number()鐨勮鍒欏熀鏈浉鍚岋級锛氬鏋滄槸鍖呭惈鏈夋晥鏁板瓧瀛楃鐨勫瓧绗︿覆锛岄鍏堝皢鍏惰浆鎹负鏁板瓧value锛堣浆鎹㈣鍒欏悓Number()锛夛紝鎵ц鍔犲噺1鎿嶄綔鍚庯紝瀛楃涓插彉閲忓彉涓烘暟鍊煎彉閲忋€傚鏋滄槸涓嶅寘鍚湁鏁堟暟瀛楀瓧绗︾殑瀛楃涓诧紝鍒欏彉閲忕殑鍊艰缃负NaN锛屽瓧绗︿覆鍙橀噺鍙樹负鏁板瓧鍙橀噺銆傝嫢涓哄竷灏斿€糵alse锛屽垯鍏堝皢鍏惰浆鍖栦负0锛屽啀杩涜鍔犲噺1杩愮畻锛屽皢甯冨皵鍊煎彉閲忕紪绋嬩负鏁板€煎彉閲忋€傚鏋滄槸甯冨皵鍊紅rue锛屽厛杞负1鍐嶈繘琛屽姞鍑?杩愮畻锛屽竷灏斿€煎彉閲忓氨鍙樻垚浜嗘暟鍊煎彉閲忋€傚鏋滄槸娴偣鍊硷紝鍒欐墽琛屽姞鍑?鐨勬搷浣溿€傚鏋滄槸瀵硅薄锛屽垯鍏堣皟鐢ㄥ璞$殑valueOf()鏂规硶锛屽啀瀵硅繑鍥炲€煎簲鐢ㄥ墠闈㈢殑瑙勫垯銆傚鏋滅粨鏋滀负NaN锛屽垯鍦ㄨ皟鐢╰oString()鏂规硶鍚庡簲鐢ㄥ墠闈㈢殑瑙勫垯銆傚璞″彉閲忔垚涓烘暟瀛楀彉閲忋€?.鍔犳硶杩愮畻绗﹀姞鍙疯繍绠楃鍦↗avascript涓篃鐢ㄤ簬瀛楃涓茶繛鎺ワ紝鎵€浠ュ姞鍙疯繍绠楃鐨勮鍒欏垎涓轰袱绉嶆儏鍐碉細濡傛灉涓や釜鎿嶄綔鏁扮殑鍊奸兘鏄暟鍊硷紝瑙勫垯鏄細濡傛灉涓€涓搷浣滄暟濡傛灉鏄疦aN锛岀粨鏋滀负NaN銆傚鏋滄槸Infinity+Infinity锛岀粨鏋滃氨鏄疘nfinity銆傚鏋滄槸-Infinity+(-Infinity)锛岀粨鏋滃氨鏄?Infinity銆傚鏋滄槸Infinity+(-Infinity)锛屽垯缁撴灉涓篘aN銆傚鏋滄槸+0+(+0)锛岀粨鏋滄槸+0濡傛灉鏄?-0)+(-0)缁撴灉鏄?0濡傛灉鏄?+0)+(-0)缁撴灉鏄?0濡傛灉鎿嶄綔鏁版槸鎵€鏈夊瓧绗︿覆锛屽皢瀹冧滑杩炴帴璧锋潵銆傚鏋滃彧鏈変竴涓搷浣滄暟鏄瓧绗︿覆锛屽垯灏嗗叾浠栨搷浣滄暟杞崲涓哄瓧绗︿覆骞跺皢瀹冧滑杩炴帴璧锋潵銆傚鏋滄搷浣滄暟鏄璞°€佸€兼垨甯冨皵鍊硷紝鍒欒皟鐢╰oString()鏂规硶鑾峰彇瀛楃涓插€硷紝鐒跺悗搴旂敤鍓嶉潰鐨勫瓧绗︿覆瑙勫垯銆傚浜巙ndefined鍜宯ull锛屽垎鍒皟鐢⊿tring()鏄惧紡杞崲涓哄瓧绗︿覆銆傚彲浠ョ湅鍑猴紝鍦ㄥ姞娉曡繍绠椾腑锛屽鏋滀竴涓繍绠楀€兼槸瀛楃涓茬被鍨嬶紝鍒欏皢鍙︿竴涓繍绠楀€艰浆鎹负瀛楃涓诧紝鏈€鍚庤繛鎺ヨ捣鏉ャ€?銆佷箻闄ゃ€佸噺杩愮畻绗︺€佸彇妯¤繍绠楃杩欎簺杩愮畻绗﹂兘鏄负浜嗚繍绠楋紝鎵€浠ュ畠浠湁涓€涓叡鍚岀偣锛氬鏋滃叾涓竴涓繍绠楁暟鍊间笉鏄暟鍊硷紝鍒欓殣寮忚皟鐢∟umber()鍑芥暟杩涜杞崲銆?銆侀€昏緫杩愮畻绗︼紙!銆?&銆亅|锛夐€昏緫闈烇紙!锛夎繍绠楃棣栧厛閫氳繃Boolean()鍑芥暟灏嗗叾杩愮畻鍊艰浆鎹负甯冨皵鍊硷紝鐒跺悗鍙栧弽銆傞€昏緫涓庯紙&&锛夎繍绠楃锛屽鏋滀竴涓繍绠楀€间笉鏄竷灏斿€硷紝鍒欐寜浠ヤ笅瑙勫垯杩涜杞崲锛氬鏋滅涓€涓搷浣滄暟缁廈oolean()杞崲鍚庝负鐪燂紝鍒欒繑鍥炵浜屼釜杩愮畻鍊硷紝鍚﹀垯杩斿洖绗竴涓搷浣滄暟鏄繑鍥炲€硷紙涓嶆槸Boolean()杞崲鍚庣殑鍊硷級濡傛灉鍏朵腑涓€涓搷浣滄暟涓簄ull锛屽鏋滃叾涓竴涓搷浣滄暟涓篘aN鍒欒繑鍥瀗ull锛屽鏋滃叾涓竴涓搷浣滄暟鏈畾涔夊垯杩斿洖NaN锛岃繑鍥瀠ndefined閫昏緫鎴栵紙||锛塷perator锛屽鏋滀竴涓繍绠楀€间笉鏄竷灏斿€硷紝閬靛惊浠ヤ笅瑙勫垯锛氬鏋滅涓€涓繍绠楀€肩粡杩嘊oolean()杞崲鍚庝负false锛屽垯杩斿洖绗簩涓繍绠楀€硷紝鍚﹀垯杩斿洖绗竴涓繍绠楀€硷紙涓嶆槸缁忚繃Boolean()杞崲鍚巙ndefined銆乶ull銆丯aN鐨勫彇鍊间笌閫昏緫涓庯紙&&锛夌浉鍚?.鍏崇郴杩愮畻绗︼紙<銆?銆?=銆?=锛変笌涓婅堪杩愮畻绗︾浉鍚岋紝鍏崇郴杩愮畻绗︾殑杩愮畻鍊煎彲浠ヤ篃鍙互鏄疉ny绫诲瀷锛屾墍浠ュ湪浣跨敤闈炴暟鍊肩被鍨嬪弬涓庣殑鏃跺€欏湪姣旇緝涓紝绯荤粺杩橀渶瑕佽繘琛岄殣寮忕被鍨嬭浆鎹細濡傛灉涓や釜鎿嶄綔鏁扮殑鍊奸兘鏄暟鍊硷紝鍒欒繘琛屾暟鍊兼瘮杈冿紱濡傛灉涓や釜鎿嶄綔鏁扮殑鍊奸兘鏄瓧绗︿覆锛屽垯姣旇緝瀵瑰簲鐨勫瓧绗︿覆瀛楃缂栫爜鍊煎鏋滃彧鏈変竴涓搷浣滄暟鏄暟鍊硷紝鍒欏皢鍙︿竴涓搷浣滄暟杞崲涓烘暟鍊艰繘琛屾暟鍊兼瘮杈冨鏋滀竴涓搷浣滄暟鏄璞★紝鍒欒皟鐢╲alueOf()鏂规硶锛堝鏋滃璞℃病鏈塿alueOf()鏂规硶锛岃皟鐢╰oString()鏂规硶锛夛紝寰楀埌鐨勭粨鏋滄寜鐓у墠闈㈢殑瑙勫垯杩涜姣旇緝銆傚鏋滆繍绠楀€兼槸甯冨皵鍊硷紝鍒欏皢鍏惰浆鎹负鏁板€硷紝鐒跺悗杩涜姣旇緝銆傛敞鎰忥細NaN鏄竴涓潪甯哥壒娈婄殑鍊硷紝瀹冧笉绛変簬浠讳綍绫诲瀷鐨勫€硷紝鍖呮嫭瀹冩湰韬紝鑰屼笌浠讳綍绫诲瀷鐨勫€兼瘮杈冩椂杩斿洖false銆?.鍊煎埌瀛楃涓茬殑鍏朵粬杞崲瑙勫垯锛烴ull鍜孶ndefined绫诲瀷锛宯ull杞负鈥渘ull鈥濓紝undefined杞负鈥渦ndefined鈥濓紝Boolean绫诲瀷锛宼rue杞负鈥渢rue鈥濓紝false杞负鈥渇alse鈥濄€侼umber绫诲瀷鐨勫€肩洿鎺ヨ繘琛岃浆鎹紝浣嗗浜庢瀬灏忓拰鏋佸ぇ鐨勬暟锛屼娇鐢ㄦ寚鏁板舰寮忋€係ymbol绫诲瀷鐨勫€肩洿鎺ヨ浆鎹紝浣嗗彧鍏佽鏄惧紡杞崲锛岄殣寮忚浆鎹細浜х敓閿欒銆傚浜庢櫘閫氬璞★紝闄ら潪鑷繁瀹氫箟toString()鏂规硶锛屽惁鍒欓兘浼氳皟鐢╰oString()(Object.prototype.toString())杩斿洖鍐呴儴灞炴€[Class]]鐨勫€硷紝濡傗€淸objectObject]鈥濄€傚鏋滃璞℃湁鑷繁鐨則oString()鏂规硶锛屽垯璋冪敤璇ユ柟娉曞苟鍦ㄥ瓧绗︿覆鍖栨椂浣跨敤鍏惰繑鍥炲€笺€?銆佸叾浠栧€煎埌鏁板€肩殑杞崲瑙勫垯鏄粈涔堬紵Undefined绫诲瀷鐨勫€艰杞崲涓篘aN銆侼ull绫诲瀷鐨勫€艰浆鎹负0銆侭oolean绫诲瀷鐨勫€硷紝true杞崲涓?锛宖alse杞崲涓?銆係tring绫诲瀷鐨勫€艰浆鎹负浣跨敤Number()鍑芥暟杞崲.濡傛灉鍖呭惈闈炴暟鍊硷紝鍒欒浆涓篘aN锛岀┖瀛楃涓蹭负0銆係ymbol绫诲瀷鐨勫€间笉鑳借浆涓烘暟瀛楋紝浼氭姤閿欍€傚璞★紙鍖呮嫭鏁扮粍锛夐鍏堜細琚浆鎹负瀵瑰簲鐨勫熀鏈被鍨嬪€硷紝濡傛灉杩斿洖鐨勫熀鏈被鍨嬪€间笉鏄暟瀛楋紝鍒欐寜鐓т笂杩拌鍒欒浆鎹负鏁板瓧銆傝灏嗗€艰浆鎹负鐩稿簲鐨勫師濮嬪€硷紝鎶借薄鎿嶄綔ToPrimitive棣栧厛妫€鏌ワ紙閫氳繃鍐呴儴鎿嶄綔DefaultValue锛夎鍊兼槸鍚﹀叿鏈塿alueOf()鏂规硶銆傚鏋滃畠瀛樺湪骞惰繑鍥炲師濮嬪€硷紝鍒欎娇鐢ㄨ鍊艰繘琛岃浆鎹€傚鏋滀笉鏄紝鍒欎娇鐢╰oString()鐨勮繑鍥炲€硷紙濡傛灉瀛樺湪锛夎繘琛岃浆鎹€傚鏋渧alueOf()鍜宼oString()鍧囨湭杩斿洖鍘熷鍊硷紝鍒欎細寮曞彂TypeError銆?銆佸叾浠栧€煎埌甯冨皵鍊肩殑杞崲瑙勫垯鏄粈涔堬紵浠ヤ笅鏄痜alse鍊硷細undefined銆乶ull銆乫alse銆?0銆?0鍜孨aN锛屽皢""杞崲涓篺alse鍊肩殑甯冨皵鍊兼槸false銆備粠閫昏緫涓婅锛屽亣鍊煎垪琛ㄤ箣澶栫殑鎵€鏈夊唴瀹归兘搴旇涓虹湡銆傛€荤粨null,undefined鏄浉绛夌殑锛屽苟涓旂瓑浜庡畠浠嚜宸眆alse,0,'',[]绛変簬NaN,{}鍜屼换浣曚笢瑗块兘涓嶇浉绛夛紝瀹冧滑涓嶇瓑浜庡畠浠嚜宸盢aN==NaN//falseNaN==undefined//falseNaN==false//falseNaN==null//falseNaN==[]//falseNaN==''//falseNaN=={}//falsefalse==false//truefalse==undefined//falsefalse==null//falsefalse==[]//truefalse=={}//falsefalse==''//trueundefined==undefined//trueundefined==null//trueundefined==false//falseundefined==[]//falseundefined=={}//falseundefined==''//falsenull==null//truenull==NaN//falsenull==[]//falsenull=={}//falsenull==undefined//true0==false//true0==[]//true0=={}//false0==null//false0==undefined//false0==''//true0==NaN//falsefalse==[]//truefalse=={}//falsefalse==null//falsefalse==undefined//falsefalse==''//truefalse==NaN//false[]=={}//falseBoolean([])//trueBoolean({})//trueBoolean(null)//falseBoolean(NaN)//falseBoolean(undefined)//f槌楅奔seBoolean('')//falseBoolean(0)//falseNumber(undefined)//NaNNumber({})//NaNNumber(NaN)//NaNNumber('')//0Number([])//0Number(false)//0Number(null)//涓轰粈涔?'2'>'10'涓虹湡锛熶笂闈㈡垜浠垪鍑轰簡杩欎箞澶氱殑杞崲瑙勫垯锛岄偅涔堟垜浠彲浠ュ湪涓婇潰鐨勮鍒欎腑鎵惧埌杩欎釜闂鐨勭瓟妗堬紝棣栧厛鎵惧埌鍏崇郴杩愮畻绗︼紝瑙勫垯涓殑绗簩鐐规槸濡傛灉涓や釜杩愮畻绗﹂兘鏄瓧绗︿覆锛岄偅涔堟瘮杈冨搴旂殑瀛楃缂栫爜鍊煎埌瀛楃涓层€傛寜鐓ф垜浠父瑙勭殑鎬濈淮锛屾槸涓嶆槸浼氳浆鎹㈡垚鏁板瓧鍐嶆瘮杈冿紝鐒跺悗2>10锛岃繑鍥瀎alse锛屽叾瀹炰笉鏄紝鏄笉鏄寰桱avaScript寰堝彲鎬滒煢avaScript涓娇鐢╟harCodeAt()鑾峰彇瀛楃鐮乧onsole.log('2'>'10')//true//鍏堝皢杩愮畻绗︿袱杈硅浆鎹负瀛楃鐮佸啀姣旇緝'2'.charCodeAt()//50'10'.charCodeAt()//49//鎵€浠?2'>'10'浼氳繑鍥瀟rue璁╂垜浠湅鍑犱釜鏈夎叮鐨勶紙闈炲父妫樻墜鐨勶級闂1.褰撳鏉傛暟鎹被鍨嬭浆鎹负瀛楃涓叉椂锛岄鍏堣皟鐢╲alueOf()寰楀埌鍘熷鍊硷紝濡傛灉鍘熷鍊间笉鏄瓧绗︿覆绫诲瀷锛屽垯璋冪敤toString()杞崲涓簊tringconsole.log([1,2]=='1,2')//true[1,2]銆倀oString()//'1,2'vara={}console.log(a.toString())//"[objectObject]"console.log(a=="[objectObject]")//true鍒嗘瀽锛氬厛鎶婂乏杈圭殑鏁版嵁绫诲瀷杞垚瀛楃涓诧紝鐒跺悗涓よ竟閮芥槸瀛楃涓诧紝鍐嶆瘮杈冨瓧绗︾紪鐮佸€?.閫昏緫闈為殣寮忚浆鎹㈠拰鍏崇郴杩愮畻绗﹂殣寮忚浆鎹onsole.log([]==0)//trueconsole.log(![]==0)//trueconsole.log([]==![])//true浣犺寰楃璋卞悧锛燂紵锛焎onsole.log([]==[])//falseconsole.log({}==!{})//falseconsole.log({}=={})//false鐪嬪埌杩欎簺缁撴灉浣犳槸涓嶆槸寰堟儕璁讹紝鏄殑锛屾垜涔熷緢鎯婅锛岃繖鏄竴涓繁鍧戙€傚紑涓帺绗戯紝璁╂垜浠潵鐪嬬湅涓轰粈涔堬紒锛佽В鏋愶細console.log([]==0)//true/*鍏崇郴杩愮畻绗?3)濡傛灉鍙湁涓€涓搷浣滄暟鍊兼槸鏁板€硷紝灏嗗彟涓€涓搷浣滄暟鍊艰浆鎹㈡垚鏁板€艰繘琛屾暟鍊兼瘮杈冨師鐞嗭細1.[].valueOf().toString()寰楀埌瀛楃涓?"2.灏?"杞崲涓烘暟瀛桸umber("")寰楀埌鏁板瓧0锛屾墍浠]==0鎴愮珛*/console.log(![]==0)//true/*鍘熺悊锛氬拰涓婇潰绫讳技锛屽彧鏄€昏緫杩愮畻绗︾殑浼樺厛绾ч珮浜庡叧绯昏繍绠楃锛屾墍浠ュ厛鎵ц![]寰楀埌falsefalse==0鎴愮珛*/console.log([]==![])//true/*涓婇潰鎴戜滑鐭ラ亾[]==0![]==0鎵€浠]==![]*/console.log([]==[])//false/*寮曠敤鏁版嵁绫诲瀷鏁版嵁瀛樺湪浜庡爢涓紝瀹冧滑鐨勫湴鍧€瀛樻斁鍦ㄦ爤涓紝涓や釜[]鍦板潃蹇呴』涓嶅悓锛屾墍浠ヤ负false*/console.log({}==!{})//false/*鍘熺悊锛?.{}.valueOf().toString()鑾峰彇鈥淸object,Object]鈥?.!{}==false3.Number([object,Object]")//NaNNumber(false)//04銆侼aN!=0*/console.log({}=={})//false/*寮曠敤鏁版嵁绫诲瀷鏁版嵁瀛樻斁鍦ㄥ爢涓紝瀹冧滑鐨勫湴鍧€瀛樻斁鍦ㄦ爤涓紝鎵€浠ヤ竴瀹氭槸涓嶅悓鐨?/JavaScripttruthtable鎴戞槸妤犱節锛岃阿璋e锛氣€滅偣璧炲叧娉ㄨ瘎璁衡€濓紝鎴戜滑涓嬫湡鍐嶈锛?/p>

最新推荐
猜你喜欢