TypeOf

JS 內建型別

  • 基本型別:

    • number、String、boolean、null、undefined、symbol

  • 物件型別

    • 物件及其子型別(陣列、函式、日期)

JS 基本型別判斷(是檢測「值」的型別)

console.log(typeof 2)
// number
console.log(typeof 's')
// string
console.log(typeof true)
// boolean
console.log(typeof null)
// object
console.log(typeof undefined)
// undefined
console.log(typeof NaN)
// number
console.log(typeof { a:1})
// object
console.log(typeof [1,2,3])
// object
console.log(typeof function() {})
// function

JS 檢測 null 判斷

console.log("" == false) // true
console.log("" === false) //false

console.log(0 == false) // true
console.log(0 === false) // false

console.log(-0 == false) // true
console.log(-0 === false) // false

console.log(NaN == false) // false
console.log(NaN === false) // false

console.log(null == false) // false
console.log(null === false) // false

console.log(undefined == false) //false
console.log(undefined === false) //false

console.log(null == undefined)  // true
console.log(null === undefined) // false

console.log(!null) // true
console.log(!NaN)  // true
console.log(!undefined) // true
// 空陣列
if([]){
  console.log(1)
}
// 空物件
if({}){
  console.log(2)
}
// 空函式
if(function foo(){}){
  console.log(3)
}
// 1
// 2
// 3

JS 長度判斷

function test (a,b,c){
  console.log(123)
}

const list = [1,2,3,4,5]

console.log('',test.length) 
console.log('',list.length)
// 3
// 5

JS 檢測物件子型別

Object.prototype.toString.call([1, 2, 3]) // [object array]

JS new 建構子

let a = new Number()
let b = new String()
let c = new Boolean()

console.log(typeof a) // object
console.log(typeof b) // object
console.log(typeof c) // object

Last updated