只有基本型別的資料下能進行運算
所有引用型別的資料,需要運算時候;先需要轉化為基本型別資料; 再運算
所有引用型別資料只能轉化為字串.最後再由字串轉為其他型別
js資料型別型別分為基本資料型別和復合資料型別(引用資料型別)
基本資料型別:string boolean number null undefined
復合資料型別(引用資料型別):陣列array 物件object 函式function
先把字串轉化為number 再進行比較 。 有字串,+屬於拼接
var res =
('han'
+'ll')-
true+1
//轉化過程:
// res = ('hanll') -1 + 1 // 首先將字串拼接 true轉化成number
// res = nan - 1 + 1; //字串轉number 不是number 所以返回nan
//nan與任何數比較都是nan
console.
log(res)
//nan
var res1 =
('han'
+'ll')+
true+1
//轉化過程:
// res = ('hanll') +true + 1 // 在這邊 +都是拼接
// res = hanll + true + 1;
console.
log(res)
//hanlltrue1
布林和數字進行比較時,字串轉換成數字,二者再比較
var res =
true
+false
console.
log(res)
//1+0 =1
空陣列先轉化為空字串 再轉化為0
有乙個數字的陣列 [『1』] --> num
多個數字或者非數字先轉化為字串 然後 nan
空物件轉化成number是 nan
var res =
['1']-
// nan 1-nan
console.
log(res)
//nan
var res1 =
['1']-
2//1 -2
cosole.
log(res1)
//-1
var res2 =
-1;//0-1 =-1
cosole.
log(res2)
//-1
在預設隱式轉化中;所有的物件都轉化為再[object object]
var obj =
var res = obj+
'小紅'
console.
log(res)
//[object object]小紅
var res =
+'小紅'
//[object object]小紅 + 拼接 不是運算
JS顯式型別轉換及關於隱式型別轉化的底層邏輯
顯式型別轉換是指使用函式主動將js資料型別轉化,而隱式型別轉化是指在程式執行中程式自動轉化型別的情況。console.log number true 1 發生顯示型別轉化 console.log true false 1 0 1 發生隱式型別轉化number 將其他型別的資料轉化為數值型,並返回轉化...
PHP隱式型別轉化
首先看一下下面一段 a true b false var dump strlen a 1 var dump strlen b 0在使用strlen時布林變數會隱式轉化為字串,true轉化為字串1,false轉化為空字串,其轉化規則我們可以在php原始碼中找到答案。非字串型別轉化規則 zend api...
資料型別 隱式型別轉化
減號 乘號 除號 取模等都是隱式型別轉換 把字串變成數字 加號 轉換成字串 自加 自減 轉換成數字 大於 小於 仔細看清楚是數字的比較還是字串的比較 取反嘆號!把右邊的資料通通轉成布林值 雙等號 轉成布林值,只看值不看資料型別 如果轉換不成功,就會出現nan not a number alert 2...