摘要:先說結(jié)論運(yùn)算操作時(shí),對象的屬性會先被調(diào)用,默認(rèn)的屬性會隱性地調(diào)用方法。
先說結(jié)論:運(yùn)算操作(+|-|*|÷)時(shí),對象的valueOf屬性會先被調(diào)用,默認(rèn)的valueOf屬性會隱性地調(diào)用toString方法。
var a = { toString: function() { console.log("in a.toString"); return "|_a->toString_|"; }, valueOf: function() { console.log("in a.valueOf"); return "|_a->valueOf_|"; } }; alert(a); //控制臺-> in a.toString //彈窗-> |_a->toString_|
結(jié)論1:alert方法只是多帶帶直接調(diào)用toString方法;
var a = { toString: function() { console.log("in a.toString"); return "|_a->toString_|"; }, valueOf: function() { console.log("in a.valueOf"); return "|_a->valueOf_|"; } }; ""+a; //控制臺-> in a.valueOf ""-a; //控制臺-> in a.valueOf ""*a; //控制臺-> in a.valueOf ""/a; //控制臺-> in a.valueOf
結(jié)論2:運(yùn)算符會調(diào)用對象的valueOf方法;
var a = { /// toString: function() { // console.log("in a.toString"); // return "|_a->toString_|"; // }, valueOf: function() { console.log("in a.valueOf"); return "|_a->valueOf_|"; } }; ""+a; //控制臺-> in b.valueOf ""-a; //控制臺-> in b.valueOf ""*a; //控制臺-> in b.valueOf ""/a; //控制臺-> in b.valueOf
結(jié)論3:操作符默認(rèn)不會調(diào)用toString方法;
var a = { toString: function() { console.log("in a.toString"); return "|_a->toString_|"; }, /// valueOf: function() { // console.log("in a.valueOf"); // return "|_a->valueOf_|"; // } }; ""+a; //控制臺-> in b.toString ""-a; //控制臺-> in b.toString ""*a; //控制臺-> in b.toString ""/a; //控制臺-> in b.toString
結(jié)論4:默認(rèn)的valueOf會調(diào)用toString方法;
總結(jié):
alert():只調(diào)用toString
運(yùn)算符:只調(diào)用valueOf
valueOf(默認(rèn)):會調(diào)用valueOf
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/89084.html
摘要:對于與的設(shè)計(jì)在中所設(shè)計(jì)的純對象類型的與方法,它們的返回如下方法返回值對象本身。與三個(gè)強(qiáng)制轉(zhuǎn)換函數(shù),所對應(yīng)的就是在標(biāo)準(zhǔn)中的三個(gè)內(nèi)部運(yùn)算轉(zhuǎn)換的對照表。 在JS中的運(yùn)算符共同的情況中,(+)符號是很常見的一種,它有以下的使用情況: 數(shù)字的加法運(yùn)算,二元運(yùn)算 字符串的連接運(yùn)算,二元運(yùn)算,最高優(yōu)先 正號,一元運(yùn)算,可延伸為強(qiáng)制轉(zhuǎn)換其他類型的運(yùn)算元為數(shù)字類型 當(dāng)然,如果考慮多個(gè)符號一起使用時(shí),...
摘要:前言相信大家在代碼中經(jīng)??匆姾停蠹艺娴呐吮容^運(yùn)算符和其中的隱式轉(zhuǎn)換嘛今天就重新認(rèn)識下比較運(yùn)算符。 前言相信大家在代碼中經(jīng)??匆?== 和 ===,但大家真的弄懂了比較運(yùn)算符和其中的隱式轉(zhuǎn)換嘛? 今天就重新認(rèn)識下比較運(yùn)算符。 全等運(yùn)算符 === 說明: 嚴(yán)格匹配,不會類型轉(zhuǎn)換,必須要數(shù)據(jù)類型和值完全一致 先判斷類型,如果類型不是同一類型的話直接為false; 1 對于基本數(shù)據(jù)類...
摘要:一元運(yùn)算符一元運(yùn)算符只能操作一個(gè)值。邏輯非邏輯非參考數(shù)據(jù)判斷邏輯非運(yùn)算符可以用于任何值。無論這個(gè)值是什么數(shù)據(jù)類型,這個(gè)運(yùn)算符都會返回一個(gè)布爾值。 前端學(xué)習(xí):教程&開發(fā)模塊化/規(guī)范化/工程化/優(yōu)化&工具/調(diào)試&值得關(guān)注的博客/Git&面試-前端資源匯總 歡迎提issues斧正:運(yùn)算符 JavaScript-運(yùn)算符 JavaScript 有一系列操作數(shù)據(jù)值的運(yùn)算符,運(yùn)算符按照特定運(yùn)算規(guī)則對...
摘要:前言整理中一些相似的關(guān)鍵字方法概念。于是我們修改上面的函數(shù)來驗(yàn)證它們的區(qū)別小明擼代碼擼代碼小紅小黑小剛小紅小黑擼代碼小李小謝小剛小李小謝擼代碼那么與有什么區(qū)別呢與和不同的是,綁定后不會立即執(zhí)行。通常用來處理一些并發(fā)的異步操作。 前言 整理 javascript 中一些相似的關(guān)鍵字、方法、概念。 1. var、function、let、const 命令的區(qū)別 使用var聲明的變量,其作...
閱讀 1146·2021-11-23 09:51
閱讀 2511·2021-09-29 09:34
閱讀 3213·2019-08-30 14:20
閱讀 1159·2019-08-29 14:14
閱讀 3242·2019-08-29 13:46
閱讀 1140·2019-08-26 13:54
閱讀 1687·2019-08-26 13:32
閱讀 1482·2019-08-26 12:23