js對(duì)字符串和數(shù)字進(jìn)行加法運(yùn)算的一些情況
對(duì)字符串和數(shù)字進(jìn)行加法運(yùn)算
兩個(gè)數(shù)字相加,返回?cái)?shù)字相加的和,如果數(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ù)字得到的運(yùn)算結(jié)果都是把數(shù)字轉(zhuǎn)成字符串,無論文本有多少個(gè)空格。但是空格會(huì)計(jì)入長(zhǎng)度。
var result1=""+5; // 得到的結(jié)果是"5" var result2=" "+5; // 得到的結(jié)果是" 5" var result3=" "+5; // 得到的結(jié)果是" 5"
var result3=" "+5; // 得到的結(jié)果是" 5"
我想進(jìn)一步解釋, 圖片說明:

html會(huì)壓縮空格, 所以直觀上顯示的是字符串,沒有顯示空格。
常見的不同類型運(yùn)算的轉(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)化成字符串。
取模運(yùn)算的結(jié)果符號(hào)只與左邊值的符號(hào)有關(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、字符串一個(gè)很能強(qiáng)大的數(shù)據(jù)類型;在執(zhí)行加 + 時(shí),將被加的對(duì)象統(tǒng)一處理為字符串。
2、bool 類型在與數(shù)字類型進(jìn)行相加時(shí),視為 0 或者 1 處理。
3、null 類型與數(shù)字類型進(jìn)行累加時(shí),視為 0 處理。
4、bool 類型與 null 類型進(jìn)行累加時(shí),視為其與整數(shù)類型累加處理。
5、undefined 除了與字符串進(jìn)行累加時(shí)有效(undefined 視為字符串"undefined"處理),其他情況皆返回 NaN。
6、求模 % 運(yùn)算,運(yùn)算結(jié)果只取決于第一個(gè)數(shù)字的正負(fù)。
-12 % -8 = -4;
12 % -8 = 4;
-12 % 8 = -4;
7、查看 String 數(shù)據(jù)類型支持的方法和屬性:
打開網(wǎng)頁(yè)后 F12 進(jìn)行開發(fā)調(diào)試環(huán)境,找到 console 標(biāo)簽頁(yè)面,執(zhí)行:
var str = new String('string');
str
點(diǎn)開列表下拉箭頭即可:

空文本 + 數(shù)字得到的運(yùn)算結(jié)果都是把數(shù)字轉(zhuǎn)成字符串,無論文本有多少個(gè)空格。但是空格會(huì)計(jì)入長(zhǎng)度。
var result1=""+5; ? ? ? ? // 得到的結(jié)果是"5" var result2=" "+5; ? ? ? ?// 得到的結(jié)果是" 5" var result3=" ? ? ? "+5; ?// 得到的結(jié)果是" ? ? ? 5"
取模運(yùn)算的結(jié)果符號(hào)只與左邊值的符號(hào)有關(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、字符串一個(gè)很能強(qiáng)大的數(shù)據(jù)類型;在執(zhí)行加 + 時(shí),將被加的對(duì)象統(tǒng)一處理為字符串。
2、bool 類型在與數(shù)字類型進(jìn)行相加時(shí),視為 0 或者 1 處理。
3、null 類型與數(shù)字類型進(jìn)行累加時(shí),視為 0 處理。
4、bool 類型與 null 類型進(jìn)行累加時(shí),視為其與整數(shù)類型累加處理。
5、undefined 除了與字符串進(jìn)行累加時(shí)有效(undefined 視為字符串"undefined"處理),其他情況皆返回 NaN。
字符串(string)類型和數(shù)字(number)類型進(jìn)行加 + 運(yùn)算會(huì)把 number 先隱式轉(zhuǎn)換成 string 類型然后根據(jù) string 的 + 運(yùn)算規(guī)則進(jìn)行字符串拼接,返回拼接后的字符串,由此得到 JavaScript獨(dú)具特色的類型轉(zhuǎn)換方式,例子如下:
var x=1; console.log(typeof x); x=x+''; console.log(typeof x);
另外,補(bǔ)充一個(gè)類似的方法,如果要把字符串轉(zhuǎn)換為數(shù)字,可以通過減 - 運(yùn)算來進(jìn)行,當(dāng)然這里有一種情況,就是參與運(yùn)算的 string 不能被轉(zhuǎn)換成合法的 number 類型,那么最后結(jié)果就會(huì)返回 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對(duì)字符串和數(shù)字進(jìn)行加法運(yùn)算的一些情況的文章就介紹到這了,更多相關(guān)字符串和數(shù)字進(jìn)行加法運(yùn)算內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Javascript網(wǎng)頁(yè)搶紅包外掛實(shí)現(xiàn)分享
本篇文章通過一個(gè)搶紅包的網(wǎng)頁(yè)實(shí)例講述了Javascript書寫的原理以及思路,有興趣的朋友參考學(xué)習(xí)下。2018-01-01
微信小程序在text文本實(shí)現(xiàn)多種字體樣式
這篇文章主要介紹了微信小程序在text文本實(shí)現(xiàn)多種字體樣式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
理解javascript函數(shù)式編程中的閉包(closure)
這篇文章主要幫助大家理解javascript函數(shù)式編程中的閉包(closure)概念,通俗地講, JavaScript 中每個(gè)的函數(shù)都是一個(gè)閉包,感興趣的小伙伴們可以參考一下2016-03-03
獲取Javscript執(zhí)行函數(shù)名稱的方法
獲取Javscript執(zhí)行函數(shù)名稱的方法...2006-12-12
Webwork 實(shí)現(xiàn)文件上傳下載代碼詳解
WebWork 當(dāng)然也提供了很友好的攔截器來實(shí)現(xiàn)對(duì)文件的上傳,讓我們可以專注與業(yè)務(wù)邏輯的設(shè)計(jì)和實(shí)現(xiàn),在實(shí)現(xiàn)上傳和下載時(shí)順便關(guān)注了下框架上傳下載的實(shí)現(xiàn)2016-02-02
基于vue實(shí)現(xiàn)移動(dòng)端圓形旋鈕插件效果
最近公司有一個(gè)項(xiàng)目的需要做出旋鈕的效果,旋鈕有十個(gè)檔,根據(jù)手指旋轉(zhuǎn)切換,旋轉(zhuǎn)時(shí)接近最近的檔會(huì)有吸附效果。這篇文章主要介紹了vue實(shí)現(xiàn)移動(dòng)端圓形旋鈕插件效果 ,需要的朋友可以參考下2018-11-11
基于Leaflet的Webgis經(jīng)緯網(wǎng)格功能實(shí)現(xiàn)
本文將介紹一款Leaflet的經(jīng)緯網(wǎng)插件,基于這款經(jīng)緯網(wǎng)插件,詳細(xì)介紹如何實(shí)現(xiàn)經(jīng)緯網(wǎng)功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2023-12-12

