js對字符串和數(shù)字進(jìn)行加法運算的一些情況
對字符串和數(shù)字進(jìn)行加法運算
兩個數(shù)字相加,返回數(shù)字相加的和,如果數(shù)字與字符串相加,返回字符串,如下實例:
實例
x=5+5; y="5"+5; z="Hello"+5;
x,y, 和 z 輸出結(jié)果為:
10
55
Hello5
規(guī)則:如果把數(shù)字與字符串相加,結(jié)果將成為字符串!
var result1=5+5+"abc"; //結(jié)果將是"10abc"
var result2= ""+5+5+"abc"; //結(jié)果將是"55abc"
空文本 + 數(shù)字得到的運算結(jié)果都是把數(shù)字轉(zhuǎn)成字符串,無論文本有多少個空格。但是空格會計入長度。
var result1=""+5; // 得到的結(jié)果是"5" var result2=" "+5; // 得到的結(jié)果是" 5" var result3=" "+5; // 得到的結(jié)果是" 5"
var result3=" "+5; // 得到的結(jié)果是" 5"
我想進(jìn)一步解釋, 圖片說明:
html會壓縮空格, 所以直觀上顯示的是字符串,沒有顯示空格。
常見的不同類型運算的轉(zhuǎn)換方式:
1.字符串和數(shù)字相加,數(shù)字轉(zhuǎn)成字符串.
var one="This is a test"; var two=123; var three=one+two;
// 結(jié)果:three:This is a test123
2.數(shù)字和布爾值相加,布爾值 false 轉(zhuǎn)成 0,true 轉(zhuǎn)成 1
var one=13; var two=true; var three=one+two; // 結(jié)果 three:14
3.字符串與布爾值相加,布爾值轉(zhuǎn)化成字符串。
取模運算的結(jié)果符號只與左邊值的符號有關(guān):
var x = 7 % 3; // 結(jié)果為 1 var y = 7 % (-3); // 結(jié)果為 1 var z = (-7) % 3; // 結(jié)果為 -1
如果 % 左邊的操作數(shù)是正數(shù),則模除的結(jié)果為正數(shù)或零;
如果 % 左邊的操作數(shù)是負(fù)數(shù),則模除的結(jié)果為負(fù)數(shù)或零。
數(shù)字與 null(空值) 相加,null 轉(zhuǎn)化為數(shù)字 0:
var car=null+3+4; // 結(jié)果為7
字符串與 null(空值) 相加,null 轉(zhuǎn)化為字符串:
var car=null+"a"; // 結(jié)果為 nulla
補(bǔ)充
1、字符串一個很能強(qiáng)大的數(shù)據(jù)類型;在執(zhí)行加 + 時,將被加的對象統(tǒng)一處理為字符串。
2、bool 類型在與數(shù)字類型進(jìn)行相加時,視為 0 或者 1 處理。
3、null 類型與數(shù)字類型進(jìn)行累加時,視為 0 處理。
4、bool 類型與 null 類型進(jìn)行累加時,視為其與整數(shù)類型累加處理。
5、undefined 除了與字符串進(jìn)行累加時有效(undefined 視為字符串"undefined"處理),其他情況皆返回 NaN。
6、求模 % 運算,運算結(jié)果只取決于第一個數(shù)字的正負(fù)。
-12 % -8 = -4;
12 % -8 = 4;
-12 % 8 = -4;
7、查看 String 數(shù)據(jù)類型支持的方法和屬性:
打開網(wǎng)頁后 F12 進(jìn)行開發(fā)調(diào)試環(huán)境,找到 console 標(biāo)簽頁面,執(zhí)行:
var str = new String('string');
str
點開列表下拉箭頭即可:
空文本 + 數(shù)字得到的運算結(jié)果都是把數(shù)字轉(zhuǎn)成字符串,無論文本有多少個空格。但是空格會計入長度。
var result1=""+5; ? ? ? ? // 得到的結(jié)果是"5" var result2=" "+5; ? ? ? ?// 得到的結(jié)果是" 5" var result3=" ? ? ? "+5; ?// 得到的結(jié)果是" ? ? ? 5"
取模運算的結(jié)果符號只與左邊值的符號有關(guān):
var x = 7 % 3; // 結(jié)果為 1 var y = 7 % (-3); // 結(jié)果為 1 var z = (-7) % 3; // 結(jié)果為 -1
如果 % 左邊的操作數(shù)是正數(shù),則模除的結(jié)果為正數(shù)或零;
如果 % 左邊的操作數(shù)是負(fù)數(shù),則模除的結(jié)果為負(fù)數(shù)或零。
1、字符串一個很能強(qiáng)大的數(shù)據(jù)類型;在執(zhí)行加 + 時,將被加的對象統(tǒng)一處理為字符串。
2、bool 類型在與數(shù)字類型進(jìn)行相加時,視為 0 或者 1 處理。
3、null 類型與數(shù)字類型進(jìn)行累加時,視為 0 處理。
4、bool 類型與 null 類型進(jìn)行累加時,視為其與整數(shù)類型累加處理。
5、undefined 除了與字符串進(jìn)行累加時有效(undefined 視為字符串"undefined"處理),其他情況皆返回 NaN。
字符串(string)類型和數(shù)字(number)類型進(jìn)行加 + 運算會把 number 先隱式轉(zhuǎn)換成 string 類型然后根據(jù) string 的 + 運算規(guī)則進(jìn)行字符串拼接,返回拼接后的字符串,由此得到 JavaScript獨具特色的類型轉(zhuǎn)換方式,例子如下:
var x=1; console.log(typeof x); x=x+''; console.log(typeof x);
另外,補(bǔ)充一個類似的方法,如果要把字符串轉(zhuǎn)換為數(shù)字,可以通過減 - 運算來進(jìn)行,當(dāng)然這里有一種情況,就是參與運算的 string 不能被轉(zhuǎn)換成合法的 number 類型,那么最后結(jié)果就會返回 NaN。
var x='1'; console.log(typeof x); x=x-0; console.log(typeof x); var y='2'; y=y-1; console.log(y); var z='abc'; z=z-2; console.log(z);
到此這篇關(guān)于js對字符串和數(shù)字進(jìn)行加法運算的一些情況的文章就介紹到這了,更多相關(guān)字符串和數(shù)字進(jìn)行加法運算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于JavaScript實現(xiàn)數(shù)值型坐標(biāo)軸刻度計算算法(echarts的y軸刻度計算)
這篇文章主要介紹了基于JavaScript實現(xiàn)數(shù)值型坐標(biāo)軸刻度計算算法(echarts的y軸刻度計算),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,感興趣的朋友可以參考與一下2022-06-06next.js之getStaticProps?getStaticPaths使用技巧解析
這篇文章主要為大家介紹了next.js之getStaticProps?getStaticPaths使用技巧解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06JavaScript Window瀏覽器對象模型方法與屬性匯總
本文給大家匯總分享的是JavaScript Window瀏覽器對象模型方法與屬性,十分的細(xì)致全面,這里推薦給大家,有需要的小伙伴可以參考下。2015-04-04一文詳解Proxy和Object.defineProperty的使用與區(qū)別
在JavaScript中,對象是一種核心的數(shù)據(jù)結(jié)構(gòu),而對對象的操作也是開發(fā)中經(jīng)常遇到的任務(wù),本文將深入比較Proxy和Object.defineProperty,感興趣的小伙伴可以了解下2023-12-12AutoJs4.4.1免費版快速接通vscode調(diào)試腳本的操作方法
這篇文章主要介紹了AutoJs4.4.1免費版快速接通vscode進(jìn)行調(diào)試腳本,首先下載AutoJs并安裝,下載完成后,將2個apk文件拷貝到手機(jī)安裝即可,接下來需要安裝插件,本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10