JavaScript的数据类型(一)

347 阅读2分钟

JavaScript的数据类型

js的数据类型可以分为7类(四基两空一对象)

  1. number
  2. string
  3. boolean
  4. string
  5. undifined
  6. null
  7. object

1. number(64位浮点数)

特殊值:

  1. 0 +0 -0
  2. Infinity +Infinity -Infinity
  3. NaN

其中,NaN也是数字,只不过NaN暂时无法用已有的数字表达出来,所以用NaN表示。故,NaN !== NaN

JS中最大的数:Number.MAX_VALUE

JS中最小的数:Number.MIN_VALUE

由于JS中使用的是浮点数存储数字,所以有时会造成计算不准确的问题。


2. string

字符串的类型:

  1. "" 双引号
  2. '' 单引号
  3. `` 反引号

其中:反引号中支持回车换行

若想在引号内在打引号需要使用转义符 \

  • ' 表示 '
  • " 表示 "
  • \n 表示换行
  • \r 表示回车
  • \t 表示tab制表符
  • \\ 表示 \

字符串的属性

  1. string.length
'123'.length
  1. string[index]
'hello'[0]
"h"

base64 转码

  • 正常字符串转为base64编码的字符串
window.btoa("")
  • base64编码的字符串转换为正常的字符串
window.atob("")

3. boolean

bool值只有true或false

  • 否定运算
let a = 1
!a
false
!window.f1
true
  • 相等运算
1 === 2
false
  • 比较运算
1 > 2
false

五个falsy值

两空,两数字,一字符串

  1. null
  2. undifined
  3. 0
  4. NaN
  5. ''

4. null 和 undifined

null 与 undifined 并没有本质的区别,主要区别如下:

  1. 如果一个变量声明了,但没有赋值,那么默认值就是undifined
  2. 如果一个函数没有写return,那么默认return undifined
  3. 习惯上将非对象的空值写为undifined , 将对象的空值写为 null

5. 变量声明

结果ES6 更新之后,变量声明的方式最好使用 let 或 const

我们在声明时,可以同时指定类型,例如: var a = "1" ; 就指定了a的类型为字符串

let 声明 规则

  • 声明的使用范围不能超过{}
  • {} 中不能重复声明
  • 可以赋值,也可以不赋值
  • 必须先声明再使用
  • 全局声明的let, 不会变成window的属性
  • 配合for循环循环时有奇效

例如

for (let i = 0 ; i < 5 ; i++){
    setTimeout(() => {
        console.log(i)
    })
}

在使用 var 时,会返回 5 个 5

使用let时, 则会返回 0 1 2 3 4

const 声明 规则

与 let 相同,但 const 赋值时就必须声明


6. 类型转换

  • 数字转字符串
  1. String(n)
String(1)
"1"
  1. n + ''
2 + ''
"2"

需要注意的是,当数字足够大时,数字转换字符串会有bug,字符串会以科学计数法显示

let a = 11111111111111111111111
String(a)
"1.1111111111111111e+22"
  • 字符串转数字
  1. Number(n)
Number("2")
2
  1. parseInt(n) / parsFloat(n)
parseInt("2")
2
  1. n - 0 / +n
"2" - 0
2
  • 任意值转布尔
  1. Boolean(n)
Boolean("2")
true
  1. !!n
!!0
false
  • 任意值转换为字符串
  1. n.toString()
false.toString()
"false"

但是当我们使用此方法将数字转换为字符串时,需要写为

1..toString()
"1"