資料型別的劃分及轉換

2021-10-07 07:47:55 字數 1172 閱讀 8279

比如下題:

console.

log(

["0"]==

[0])

;// false

console.

log(![

"0"]==!

[0])

;// true

console.

log(

["0"]+

0==[0

]+0)

;// true

結果我們看到了,那我們今天就得好好說道說道各種運算子帶來的隱式資料型別轉換

隱式型別轉換

隱式資料型別轉換,也就是說這個轉換過程不受我們強制 js 偷偷自己轉的.

如 10 - 「5」結果為 5。按照道理數字和字串是不能直接運算的。但是這裡使用減號的時候,減號就偷偷的把兩邊的資料都轉換為數字然後進行運算,這個就是隱式型別轉換

知道了隱式型別轉換之後 我們來看看各種運算子帶來的隱式型別轉換

數**算符的計算規則

-減,* 乘,/ 除,% 取模,-= 減等,*= 乘等,/= 除等,%= 模等,-- 自減,++ 自增,+ 正,- 負

這些運算子只能進行數**算,所以在計算的時候,會先進行資料轉換,如果計算的值不是數字,則先轉成數字之後再進行運算,這個轉換過程 和 number() 的轉換規則一致,大家也可以理解為這些運算子幫我們呼叫 number() 方法把兩側資料都轉換成數字之後再進行運算

var a = true;

console.

log(

++a)

;//2

/* a 本身是乙個布林值,但是自增計算的時候,就先把 a 轉成了數字 1

然後 ++ 結果就是 2 */

+加,+= 加等

這兩個運算在 js 中稍微有些特殊他們不只可以進行加法運算,也可用於字串連線,具體規則如下:

邏輯運算子的計算規則

|| 或 運算子規則

&& 與 運算子規則

! 非 運算子規則

! 運算子在處理資料時,如果不是布林值會直接呼叫 boolean()方法進行轉換,轉換完之後,再進行計算

關係運算子的計算規則

> 大於, < 小於, >= 大於等於, <= 小於等於

== 等等 和 != 不等

=== 全等 和 !== 全不等

資料型別及轉換

原始值 number string boolean null undefined 引用值 object array object function date regexp 正規表示式 原始值和引用值區別 原始型別變數,存放的是具體的值,即修改變數a的值,不會影響變數b的值。var a 5 var b...

資料型別及轉換

number 整數,浮點數,nan 0 預設值 number typeof型別 string 任何加了引號的都是字串 string boolean 布林值false boolean undefined 宣告了變數,但是沒有賦值 undefined undefined null 宣告變數為空值 nul...

資料型別及轉換

資料型別 內建 引用 八種基本型別 6 1 1 6種數字型別,1種字元型,1種布林型 1 byte 8位1位元組,128 127,2 int 32位4位元組 最小值是 2,147,483,648 2 31 最大值是 2,147,483,647 2 31 1 3 long 64位8位元組,最小值是 9...