js隱式型別轉化及運算

2021-10-07 06:59:44 字數 1646 閱讀 2567

只有基本型別的資料下能進行運算

所有引用型別的資料,需要運算時候;先需要轉化為基本型別資料; 再運算

所有引用型別資料只能轉化為字串.最後再由字串轉為其他型別

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...