成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

理解JS中的加號(hào)運(yùn)算符

nodejh / 2376人閱讀

摘要:中的基本數(shù)據(jù)類(lèi)型有種,引用數(shù)據(jù)類(lèi)型則是指除了上述基本數(shù)據(jù)類(lèi)型以外的所有值,比如隱式類(lèi)型轉(zhuǎn)換加法的隱式轉(zhuǎn)換轉(zhuǎn)換為原始值當(dāng)需要轉(zhuǎn)換為原始值時(shí),引擎內(nèi)部會(huì)進(jìn)行抽象操作。

基本運(yùn)算規(guī)則

+的使用有兩種情況
當(dāng)+連接兩個(gè)變量或值時(shí)即為二元運(yùn)算符,比如a + b,當(dāng)+在變量或值前面時(shí),則為一元運(yùn)算符,比如+"12.1"

一元運(yùn)算符

直接轉(zhuǎn)換為Number類(lèi)型,相當(dāng)于Number()
常用的還有!運(yùn)算符,用來(lái)轉(zhuǎn)為Boolean類(lèi)型

二元運(yùn)算符

加法,可以認(rèn)為只有兩種情況
1、數(shù)字 + 數(shù)字
2、字符串 + 字符串
其他類(lèi)型的值相加最終都會(huì)隱式轉(zhuǎn)換為上述兩種類(lèi)型相加。

JS中的基本數(shù)據(jù)類(lèi)型(primitives)有6種,
String、Number、Boolean、undefined、null、Symbol
引用數(shù)據(jù)類(lèi)型則是指除了上述基本數(shù)據(jù)類(lèi)型以外的所有值,比如Array、Function
隱式類(lèi)型轉(zhuǎn)換

加法的隱式轉(zhuǎn)換:

1、轉(zhuǎn)換為原始值

當(dāng)需要轉(zhuǎn)換為原始值時(shí),JS引擎內(nèi)部會(huì)進(jìn)行抽象操作ToPrimitive()。

ToPrimitive(input,PreferredType?)
// 如果為原始值則直接返回
// 如果為引用數(shù)據(jù)類(lèi)型則
// 1、先嘗試調(diào)用valueOf()方法,如果返回值為原始值,則返回該值
// 2、否則,嘗試調(diào)用toString()方法,如果返回值為原始值,則返回該值
// 3、否則,拋出異常
// 注:
// 1、如果第二個(gè)參數(shù)PreferedType為String,則2和3順序調(diào)換,即先調(diào)用toString。
// 2、PreferedType默認(rèn)為Number,但在遇到Date類(lèi)型的值時(shí)為String

具體轉(zhuǎn)換規(guī)則可以參考ECMA規(guī)范中9.1的ToPrimitive[[DefaultValue]]部分

2、轉(zhuǎn)換為數(shù)字

規(guī)則為:

類(lèi)型 結(jié)果
undefined NaN
null 0
Boolean true為1,false為0
Number /
String 轉(zhuǎn)數(shù)字,"" -> 0
Object 先ToPrimitive轉(zhuǎn)為原始值再轉(zhuǎn)為數(shù)字
3、轉(zhuǎn)換為字符串

直接轉(zhuǎn)換,不做贅述,對(duì)象類(lèi)型時(shí)參考數(shù)字的處理

相關(guān)面試題
[] + {} // 結(jié)果為 "[object Object]"
[] + [] // 結(jié)果為 ""
{} + {} // 結(jié)果為 NaN
{} + [] // 結(jié)果為 0,當(dāng)語(yǔ)句開(kāi)始為{時(shí),會(huì)被JS解釋器認(rèn)為是代碼塊,所以實(shí)質(zhì)上是 +[]
{} + {} // 結(jié)果為NaN,原因同上

注:第五道面試題在node.js環(huán)境下的運(yùn)行結(jié)果卻是"[object Object]",node和chrome同樣使用了V8引擎,想來(lái)是對(duì)此做了特殊處理

參考

深入理解Javascript中Object類(lèi)型的轉(zhuǎn)換

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/102898.html

相關(guān)文章

  • JS的{} + {}與{} + []的結(jié)果是什么?

    摘要:對(duì)于與的設(shè)計(jì)在中所設(shè)計(jì)的純對(duì)象類(lèi)型的與方法,它們的返回如下方法返回值對(duì)象本身。與三個(gè)強(qiáng)制轉(zhuǎn)換函數(shù),所對(duì)應(yīng)的就是在標(biāo)準(zhǔn)中的三個(gè)內(nèi)部運(yùn)算轉(zhuǎn)換的對(duì)照表。 在JS中的運(yùn)算符共同的情況中,(+)符號(hào)是很常見(jiàn)的一種,它有以下的使用情況: 數(shù)字的加法運(yùn)算,二元運(yùn)算 字符串的連接運(yùn)算,二元運(yùn)算,最高優(yōu)先 正號(hào),一元運(yùn)算,可延伸為強(qiáng)制轉(zhuǎn)換其他類(lèi)型的運(yùn)算元為數(shù)字類(lèi)型 當(dāng)然,如果考慮多個(gè)符號(hào)一起使用時(shí),...

    2json 評(píng)論0 收藏0
  • js入門(mén)筆記整理(二)——操作符

    摘要:上一篇入門(mén)筆記整理一元操作符遞增遞增分為前置遞增和后置遞增前置型兩個(gè)加號(hào)放在前面這個(gè)操作其實(shí)就是給加,上面的列子等效于前置遞增其實(shí)可以分為兩步操作,其加運(yùn)算高于賦值號(hào)運(yùn)算,如等效于先運(yùn)行加運(yùn)算為再運(yùn)行賦值運(yùn)算后置型兩個(gè)加號(hào)放在后面這個(gè)操作其 上一篇:js入門(mén)筆記整理 一元操作符 遞增 遞增分為前置遞增和后置遞增前置型——兩個(gè)加號(hào)(++)放在前面 var num = 1; ++n...

    JasonZhang 評(píng)論0 收藏0
  • JavaScript 類(lèi)型轉(zhuǎn)換

    摘要:這樣導(dǎo)致結(jié)果不一致,等解析語(yǔ)句為,對(duì)空對(duì)象強(qiáng)制轉(zhuǎn)為數(shù)字類(lèi)型,即為,將非空字符串轉(zhuǎn)換為數(shù)字類(lèi)型,結(jié)果為。綜上,右邊表達(dá)式轉(zhuǎn)換為。 首先從一系列讓JavaScript初學(xué)者抓狂的運(yùn)算說(shuō)起。 1 + {} {} + 1 [] + {} {} + [] [] + [] {} + {} 能全部答對(duì)上面的運(yùn)算結(jié)果,不必浪費(fèi)時(shí)間繼續(xù)閱讀本文了。如果對(duì)某一些的結(jié)果還不確定,請(qǐng)慢慢往下看。 上面列的所有...

    sydMobile 評(píng)論0 收藏0
  • 從 ++[[]][+[]]+[+[]]==10? 深入淺出弱類(lèi)型 JS 的隱式轉(zhuǎn)換

    摘要:與此相對(duì),強(qiáng)類(lèi)型語(yǔ)言的類(lèi)型之間不一定有隱式轉(zhuǎn)換。三為什么是弱類(lèi)型弱類(lèi)型相對(duì)于強(qiáng)類(lèi)型來(lái)說(shuō)類(lèi)型檢查更不嚴(yán)格,比如說(shuō)允許變量類(lèi)型的隱式轉(zhuǎn)換,允許強(qiáng)制類(lèi)型轉(zhuǎn)換等等。在中,加性運(yùn)算符有大量的特殊行為。 從++[[]][+[]]+[+[]]==10?深入淺出弱類(lèi)型JS的隱式轉(zhuǎn)換 本文純屬原創(chuàng)? 如有雷同? 純屬抄襲? 不甚榮幸! 歡迎轉(zhuǎn)載! 原文收錄在【我的GitHub博客】,覺(jué)得本文寫(xiě)的不算爛的...

    miya 評(píng)論0 收藏0
  • JS最新基本數(shù)據(jù)類(lèi)型:BigInt

    摘要:意外四舍五入會(huì)損害程序的可靠性和安全性。下面是一些例子構(gòu)造函數(shù)與其他基本類(lèi)型一樣,可以使用構(gòu)造函數(shù)創(chuàng)建。總結(jié)是一種新的數(shù)據(jù)類(lèi)型,用于當(dāng)整數(shù)值大于數(shù)據(jù)類(lèi)型支持的范圍時(shí)。 為了保證的可讀性,本文采用意譯而非直譯。 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客,一年百來(lái)篇優(yōu)質(zhì)文章等著你! BigInt數(shù)據(jù)類(lèi)型的目的是比Number數(shù)據(jù)類(lèi)型支持的范圍更大的整數(shù)值。在對(duì)大整數(shù)執(zhí)行數(shù)學(xué)運(yùn)算時(shí),以任意精...

    lwx12525 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<