Js數(shù)據(jù)類型

Js數(shù)據(jù)類型

Js的七種數(shù)據(jù)類型:number string boolean symbol undefined null object

  • 基本類型 number string boolean symbol undefined null

  • 復雜類型 object

array 和 function 都屬于object 類型

數(shù)字 number

  • 概括:用來表示整數(shù)和小數(shù)等

  • 十進制寫法:1 0.1 .1 1.25e2 1.25E2

  • 二進制,寫法:0b11

  • 八進制,寫法:011

    在存儲以"0"開頭的電話號碼時需要用字符串類型而不是數(shù)字類型,否則容易被計算機認為是八進制數(shù)字類型

  • 16進制,寫法:0x11

字符串 string

  • 概括:用來表示文本內(nèi)容

  • 寫法:'你號' "你號" '' "" ' ' " "

    注意事項:空字符串長度為0,空格字符串長度由空格個數(shù)決定

  • 轉(zhuǎn)義符:反斜杠 \在字符串中用來表示一些特殊字符,又叫轉(zhuǎn)義符。

    常用的轉(zhuǎn)義符:

    • \0 :null(\u0000
    • \b :后退鍵(\u0008
    • \f :換頁符(\u000C
    • \n :換行符(\u000A
    • \r :回車鍵(\u000D
    • \t :制表符(\u0009
    • \v :垂直制表符(\u000B
    • \' :單引號(\u0027
    • \" :雙引號(\u0022
    • \\ :反斜杠(\u005C
  • 多行字符串:

    1. 提前輸入 \,類似命令行的換行 (不推薦此寫法)。案例:

      var a = '123\
      456'
      //結(jié)果是"123456"
      

      此種方法如果在 \ 后先添加了空格,會只轉(zhuǎn)義空格造成報錯

    2. 在要換行的地方結(jié)束當前字符串并加一個 + 號。案例:

      var a = '123'+
             '456'
      //結(jié)果是123456
      
  1. 將需要換行的字符串用兩個反引號 " ` " (鍵盤上 1 前面的那個符號) 括起來。案例:

    var a = `123
    456`
    //結(jié)果是"123?456"
    

布爾 boolean

  • 概括:只有兩個特殊的值,表示真?zhèn)?/p>

  • 來源:一個叫喬治·布爾(英語:George Boole)的人

  • 值:true false

  • a && b 只有 a b 同時為真(true) 其結(jié)果才會為真

    b\a
    true true
    true false
  • a || b 只要 a b 中有一個為真(true) 其結(jié)果就為真

    b\a
    true true
    true false

null 類型 和 undefined 類型

  • 概括:值就是它本身,它們的意思都是空。

  • 兩者區(qū)別

    1. undefined 表示"未定義"或不存在,null表示空值,即此處的值為空。

    2. 如果一個變量沒有賦值 結(jié)果就是 undefined

  • 用法:

    • 如果想創(chuàng)建一個對象但不想賦值,可以給它 null,如: var obj = null 空對象。
    • 如果想創(chuàng)建一個非對象不想賦值,可以給它 undefined 。var 變量默認本身的值就是 undefined。如:var a 。undefined通常用來表示空,非對象。

對象 object

  • 概括:各種值組成的集合

  • 語法:

    var obj = {
        key1 : value1,
        key2 : value2,
        key3 : value3
    }
    
  • 注意事項:

    • 對象中的 key 永遠是字符串的 key 。

    • 一般情況下獲取某個value的值必須用:person['name'] 的寫法。只有在 key 符合標識符的命名規(guī)范的情況下才可以使用:person.name 的寫法。

    • IE8 以下的瀏覽器不支持{ key1: value1, key2: value2 } 中間用逗號分割,只有 IE8 及其以上的瀏覽器支持

    • 如果 key 的名字不加引號就要遵循標識符的命名規(guī)則。

  • 用法案例:

    var pereon = {
        name : 'name',
        age : 18,
        maried : true,
        children : null,
    }
    
  • 特殊的寫法:

    var obj = {
        '' : 'frank',
        'a b' : 'second',
    }
    

    key 可以是一個空的字符串,也可以在兩個字符之間加空格

  • 錯誤寫法:

    var obj = {
        2k : 'frank',
    }
    

    此處的 key 不可以以數(shù)字開頭,因為不加引號要遵循標識符的命名規(guī)則。

  • 刪除

    • 刪除value后再去獲取value,瀏覽器會報錯

      var pereon = {
          name : 'name'
      }
      delete person['name']
      person.name  // 值是 undefined 瀏覽器會報錯
      
      'name' in person // false
      
    • 當給key的賦值為undefined時它的值也是 undefined ,但是 使用 in 判斷它是存在的

      var pereon = {
          name : 'name'
      }
      person.name = undefined  // undefined 
      
      'name' in person // true
      
  • 對象遍歷:

    var person = {
        name : 'frank',
        age : 18
    }
    for(var key in person) {
      console.log(key)
    } 
    /* 輸出:
    name
    age
    name age 的順序是隨機的 */
    
    for(var key in person) {
        console.log(key,person[key])
    }
    /*
    輸出:
    name frank
    age 18
    注意person[key]只能通過[]方式,不能通過 person.key 因為 person.key是一個字符串,但for in 中的key不是
    */
    

typeof 運算符

  • 用法案例:

    var a = 1
    typeof a //返回的值是number
    
  • 特殊案例:

    在Js中,大部分數(shù)據(jù)類型 typeof 就會顯示它的數(shù)據(jù)類型,但以下兩種比較特殊:

    1. typeof null 時,null 所顯示的類型是 object

    2. 當 typeof 一個函數(shù)時,它的返回值是 function 但 function 不是一種數(shù)據(jù)類型。例:

      function a() {}
      typeof a //返回的值是'function'
      

注:本文為原創(chuàng)文章,著作權(quán)歸本人和饑人谷所有,轉(zhuǎn)載務(wù)必注明來源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容