JS基本类型

193 阅读2分钟

JS的数据类型

  • 七种
    • 数字(number)
    • 字符串(string)
    • 布尔(bool)
    • 符号(symbol)
    • undefined(空的)
    • null(空的)
    • object(对象): 数组,函数,日期不属于数据类型,属于对象

number(数字)

  1. 正0和负0
  2. 无穷大:Infinity,+Infinity,-Infinity。
  3. 无法表示的数字:NaN(但是他是一个数字)

数字的储存形式:64位浮点数

  • 64位存一个number
    • 符号占一位(0表示正数,1表示负数)
    • 指数占11位(-1023~1024)
    • 有效数字占52位(开头的1省略)
    • (+-) 1.01100110 * 2^8

范围(忽略符号位)

  • 指数拉满,有效数字拉满,得到最大二进制数
  • Number.MAX-VALUE:1.7976931348623157e+308
  • Number.MIN-VALUE:5e-325

精度

  • 最多只能存52+1个二进制位有效数字
  • 2^53对应的十进制是9后面的15个0
  • 所以15为有效数字都能精确表示
  • 16位有效数字小于90开头也能精确表示

字符串(string)

  • 写法:引号不属于字符的一部分。
    • 单引号('')
    • 双引号("")
    • 反引号(``)

引号里加引号使用转义:

  1. 'it's ok'
  2. "it's ok" 3.反引号(多字符串想加回车用反引号)

转义

  1. '表示'
  2. "表示"
  3. \n表示换行
  4. \t表示table制作
  5. \表示\
  6. \UFFFF表示对应的Unicode字符
  7. \XFF表示前256个Unicode字符

属性

  • 字符串的长度

    • '123'.lenght
  • 通过下标读取字符

  • string【index】

  • let s ='hello'

  • s[0] //'h'

  • index从0开始

base64转码

  • window.btoa
  • window.atob

布尔(boolean) 真或假

  • falsy是相当于false但又不是false的值
  • undifined
  • null
  • 0
  • NaN
  • ''

除了以上五个都是真值


变量声明

  • 三种声明方式
    • var(过时,不好用的)
    • let
    • const(声明时必须赋值且不可更改)

let声明

  • 规则
    • 遵循块作用域
    • 不能重复声明
    • 可以赋值,也可以不赋值
    • 必须先声明在使用
    • 全局声明的let变量,不会变成window的属性

const声明

  • 规则
    • let基本一样
    • 声明时就要赋值且不可更改

name和'name'的区别:name是变量,'name'是常量


类型转换

  • number => string(var a = 1)

    • String(a)
    • a+''
  • string => number(var a = '12')

    • Number(a)
    • parseInt(a)|parseFloat(a)
    • a-0
  • x => bool

    • Boolen(x)

    • !!x