ES(JavaScript)內建型別及方法

AmberdeBF發表於2018-07-20

型別

  • 6種原始型別
    • Boolean
    • String
    • Null
    • undefined
    • Number
    • Symbol(ES6新定義)
  • 引用型別
    • Object
    • Function

方法

typeof

  • typeof true // boolean
  • typeof 'string' // string
  • typeof null // object
  • typeof undefined // undefined
  • typeof 123 // number
  • typeof {key: 'value'} // object
  • typeof function(){return 'i\'m a function} // function

instanceof

let obj = {}
let arr = []
obj instanceof Object // true
arr instanceof Object // true
arr instanceof Array // true
複製程式碼

型別轉換

轉Boolean

let str = 'string'
!str // false
!!str // true
!!0 // false
!!{} // true
複製程式碼

物件轉基本型別

let obj = {name: 'Damon'}
JSON.stringify(obj) // '{"name":"Damon"}'
obj.toString() // '[object Object]'
obj.toLocaleString() // '[object Object]'
複製程式碼

字串轉陣列

let str = 'ILoveAmber'
str.split('') // return [ 'I', 'L', 'o', 'v', 'e', 'A', 'm', 'b', 'e', 'r' ]
str // 'ILoveAmber'
複製程式碼

字串轉數字

let str1 = '123LoveAmber'
parseInt(str1) // 123
str1 '123LoveAmber'

let str2 = 'LoveAmber123'
parseInt(str2) // NaN

let str3 = '123'
parseInt(str3) // 123
str3 // '123'
str3 * 1 // 123
str3 // '123'
複製程式碼

數字轉字串

let num = 123
num.toString() // '123'
num.toString(2) // '1111011' 轉換為二進位制字串
num // 123

num + '' // '123'
num + 'LoveAmber' // '123LoveAmber'
複製程式碼

四則運算子

算數運算子

1 + 1 // 2
1 - 1 // 0
1 * 1 // 1
3 / 2 // 1.5
3 % 2 // 1

let a = 1
++a // return 2 & a = 2
a = 1
a++ // return 1 & a = 2

let b = 2
--b // return 1 & b = 1
b = 2
b-- // return 2 & b = 1
複製程式碼

賦值運算子

let a = 1 // a = 1
a += 1 // return 2 & a = 2
a -= 1 // return 1 & a = 1
a *= 3 // return 3 & a = 3
a /= 3 // return 1 & a = 1
a %= 5 // return 1 & a = 1
複製程式碼

位運算

ECMAScript 整數有兩種型別,即有符號整數(允許用正數和負數)和無符號整數(只允許用正數)。在 ECMAScript 中,所有整數字面量預設都是有符號整數。

有符號整數使用 31 位表示整數的數值,用第 32 位表示整數的符號,0 表示正數,1 表示負數。數值範圍從 -2147483648 到 2147483647

NOT 運算

let num = 28
let num2 = ~num // -29
num.toString(2) // '11100'
num2.toString(2) // '-11101'
複製程式碼

AND

let a = 123
let b = 2
a.toString(2) // '1111011'
b.toString(2) // '10'
let c = a & b // 2
c.toString(2) // '10'
複製程式碼

OR

let a = 123
let b = 2
let c = a | b // 123
c.toString(2) // '1111011'
複製程式碼

XOR

let a = 123
let b = 2
let c = a ^ b // 121
c.toString(2) // '1111001'
複製程式碼

左移運算

let a = 3
a.toString(2) // 11
let c = a << 5 // 96
c.toString(2) // '1100000'
複製程式碼

有符號右移運算(無符號右移為 >>> )

let a = 3
let c = a >> 5 // 0
c = a >> 1 // 1
複製程式碼

== , === 操作符

let a = 123
a === 123 // true
a == '123' // true
a === '123' // false

let b = 'abc'
b === 'abc' // true

let obj1 = {name: 'Damon'}
let obj2 = {name: 'Damon'}
obj1 === obj2 // false
obj1 == obj2 // false

let arr1 = [1,2,3]
let arr2 = [1,2,3]
arr1 === arr2 // false
arr1 == arr2 // false

let obj1 = {name: 'Amber'}
let obj2 = obj1
obj1 == obj2 // true
obj1 === obj2 // true
複製程式碼

比較運算子

123 > 1 // true
'123' > '1' // true
'abc' > 'a' // true
'abc' > 'ad' // false
複製程式碼

相關文章