国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

對象轉(zhuǎn)換為原始值的實(shí)現(xiàn)方法

2019-11-20 09:47:24
字體:
供稿:網(wǎng)友

首先,我們要明白原始值得概念

原始值

存儲在棧(stack)中的簡單數(shù)據(jù)段,也就是說,它們的值直接存儲在變量訪問的位置。

引用值

存儲在堆(heap)中的對象,也就是說,存儲在變量處的值是一個(gè)指針(point),指向存儲對象的內(nèi)存處

――――引用了w3c里的概念

原始值,簡單點(diǎn)理解就是 null  undefined string number Boolean 這些

對象轉(zhuǎn)換為boolean相對簡單

所有的對象(包括數(shù)組和函數(shù))都轉(zhuǎn)換成true,包裝對象從也是對象,也轉(zhuǎn)換為true

書上是這么說的  “存取字符串,數(shù)字和布爾值的屬性時(shí)創(chuàng)建的臨時(shí)對象稱之為包裝對象”,我是這么理解的,new出來的string啊,number啊,boolean啊都算作包裝對象,他有別于對象,但它確實(shí)是個(gè)對象,最主要的區(qū)別就是不能給包裝對象定義新的屬性,因?yàn)閟tring number Boolean的屬性是只讀的。

對象轉(zhuǎn)換為string類型

如果 對象具有toString()方法,就調(diào)用toString()的方法,如果返回一個(gè)原始值,就把這個(gè)原始值轉(zhuǎn)換成字符串,對象就轉(zhuǎn)換成這個(gè)字符串,如果不具有toString()方法或者這個(gè)方法返回的值不是一個(gè)原始值,那么就調(diào)用valueOf()方法,同樣的套路,如果返回的是一個(gè)原始值,就把這個(gè)原始值轉(zhuǎn)換成字符串,那么對象也就轉(zhuǎn)換成了這個(gè)字符串了,如果返回的不是一個(gè)原始值,就拋出一個(gè)類型轉(zhuǎn)換的錯(cuò)誤。

這里的toString()方法和valueOf()方法就不一一贅述了,

對象轉(zhuǎn)換為number類型

相比較轉(zhuǎn)換成string,轉(zhuǎn)換number的過程,正好的與其相反,先調(diào)用valueOf()方法,再調(diào)用toString()方法,最后toString()方法返回的不是一個(gè)原始值是,js就拋出一個(gè)錯(cuò)誤。

當(dāng)使用"=="和"+"運(yùn)算符進(jìn)行數(shù)字的計(jì)算或者字符串的拼接時(shí),如果運(yùn)算符的一側(cè)是對象,將使用特殊的對象轉(zhuǎn)換為原始值的方法。對于非日期對象,對象轉(zhuǎn)換成原始值就是

對象先調(diào)用valueOf()方法,再調(diào)用tostring()方法,并將通過調(diào)用這兩個(gè)方法得到的原始值直接作為對象轉(zhuǎn)換成的原始值,對于日期對象來說,先調(diào)用toString()方法,再調(diào)用valueOf方法。

對于日期對象轉(zhuǎn)換成原始值,舉個(gè)例子吧

 

var now=new Date(); typeOf(now+1);     //"string" 將日期對象轉(zhuǎn)換成了字符串,因?yàn)橄日{(diào)用的是toString()方法 typeOf(now-1);      //"number" 體現(xiàn)了js的靈活性,"-"將字符串轉(zhuǎn)換線成了number 

以上這篇對象轉(zhuǎn)換為原始值的實(shí)現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 三都| 泸西县| 镇康县| 大化| 辉县市| 涡阳县| 保康县| 开原市| 合阳县| 平顶山市| 卢龙县| 闵行区| 东至县| 饶阳县| 昌吉市| 班戈县| 江津市| 高台县| 兴山县| 定州市| 沛县| 西充县| 新郑市| 鄂托克前旗| 新昌县| 灵山县| 中西区| 阿勒泰市| 保定市| 旅游| 镇原县| 封丘县| 宜丰县| 临猗县| 谢通门县| 宁远县| 甘孜县| 秦皇岛市| 清流县| 云林县| 芜湖市|