天天看點

01-javascript基礎----js資料類型一、js資料類型二、typeof傳回資料類型

一、js資料類型

1、分類

js的資料類型分為兩種:

  • 基本資料類型:

    String

    Number

    Boolean

    Null

    undefined

  • 引用資料類型:

    Object

    Array

    function

JS隻有

堆記憶體

結構,我們所說的 堆棧記憶體 是指這個堆記憶體中像棧記憶體的分離出來

2、基本資料類型

基本資料類型的存放方式,是存放在

棧記憶體

中,擁有以下特性:

基本資料類型的特點:一旦定義了值,就不會改變

var a = 123
a = 234
           
  1. 先在棧記憶體開拓一個空間,存放值 123
  2. 定義一個變量a,指向這個空間
  3. 然後在棧記憶體開拓一個空間,存放值 234
  4. 切斷 a的指向,讓a指向 234的空間

是以 123 這個空間的值,是不會改變的

01-javascript基礎----js資料類型一、js資料類型二、typeof傳回資料類型

3、引用資料類型

引用資料類型的存放方式,是存放在

堆記憶體

中,擁有以下特性:

  • 操作對象的屬性,不會讓指針指向發生改變:a.name = '123’
  • 操作對象本身,會導緻指向發生改變:a = {name:‘234’}

二、

typeof

傳回資料類型

1. 概念

typeof

傳回的資料類型有:

String

Number

Boolean

undefined

Object

function

一共6種

注意:

null 和 Array

傳回的是

Object

var a = function() {}

console.log(typeof '123')  // String
console.log(typeof 123)    // NUmber
console.log(typeof true)   // Boolean
console.log(typeof undefined) // undefined
console.log(typeof {})     // Object
console.log(typeof a)      // function

console.log(typeof null)   // object
console.log(typeof [1, 2, 3]) // Object
           

2. 筆試題

如何用 原生js 判斷 Array / Object / Function ?

方法一:使用

toString.call

var a = function(){}

console.log(Object.prototype.toString.call([1, 2, 3]))  // [object Array]

console.log(Object.prototype.toString.call({})) // [object Object]

console.log(Object.prototype.toString.call(a)) // [object Function]
           

方法二: 使用

instanceof

var a = function(){}

console.log([1, 2, 3] instanceof Array)  //true

console.log(a instanceof Function)  // true

console.log({} instanceof Object) // true
console.log({} instanceof Array) // false
           

繼續閱讀