在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js的instanceof和包裝對(duì)象的問題,進(jìn)來看一下

js的instanceof和包裝對(duì)象的問題,進(jìn)來看一下

clipboard.png
為什么會(huì)是這個(gè)結(jié)果,直接聲明的字符串和new的有什么區(qū)別,為什么s new的字符串用instanceof檢測(cè)即是Object又是String呢

回答
編輯回答
夢(mèng)若殤
直接聲明的字符串和new的有什么區(qū)別

一個(gè)是字面量的字符串
一個(gè)是String類型的實(shí)例,valueOf會(huì)返回字面量的字符串,所以'a' !== new String('a'),但是'a' == new String('a')'a' === new String('a').valueOf()

為什么s new的字符串用instanceof檢測(cè)即是Object又是String

因?yàn)?code>String繼承自Object,String instanceof Object

2018年8月31日 19:16
編輯回答
半心人

還記得JS原型鏈機(jī)制么?通過new String出來的字符串是繼承String對(duì)象的,String又是繼承Object對(duì)象的,所以后面的s instance Object | String 都為true。
JS中有值類型和引用類型這兩種數(shù)據(jù)類型,通過字面量創(chuàng)建出來的s他是直接賦予值'hello'的,所以它屬于值類型,'hello'就是一個(gè)普通的常量是不繼承于任何對(duì)象的,所以s instance Object為false。
需要注意的是基礎(chǔ)類型中只有number boolean string可以通過值傳遞,var obj = {};依然是一個(gè)引用類型。

2017年4月16日 12:32