JS 中的7种数据类型

11.3 - JavaScript 数据类型和运算符 - 图1

数组、函数、日期都属于 object 对象

false 就是相当于 false 但又不是 false 的值,分别是:
11.3 - JavaScript 数据类型和运算符 - 图2

''' '不是一个玩意,请保持严谨

数字 number

  • 64位浮点数

    写法:

  • 整数写法 1

  • 小数写法 0.1
  • 科学计数法 1.23e4
  • 八进制写法 (用得少)
    • 0123 或 00123 或0o123
  • 十六进制写法

    特殊值

    1. 正0 和 负0

  • 0 分三种:0、正0、负0,要严谨

    2. 无穷大

  • Infinity、+Infinity、-Infinity

    3. 无法表示的数字

  • NaN(Not a Number)

字符串 string

每个字符两个字节(阉割版 UTF8)

写法:

  • 单引号 ‘你好’
  • 双引号 “你好”
  • 反引号 你好

    引号不属于字符串的一部分,就像书名号不属于书名的一部分一样。 如果要在单引号里包含单引号怎么作?

    • 转义
      • 错误写法
        • 'it's ok' JS 引擎会认为 it's 就结束了
      • 正确写法
        • 'it\'s ok' // 这就是转义
        • "it's ok"
        • it's ok

转义(背)

  • 用另一种写法表示你想要的东西 | \\' | 表示 ‘ | | —- | —- | | \\" | 表示 “ | | \\n | 表示换行 | | \\r | 表示回车 | | \\t | 表示 tab 制表符 | | \\\\ | 表示 \ | | \\uFFFF | 表示对应的 Unicode 字符 | | \\xFF | 表示前 256 个 Unicode 字符 |

字符串的长度

string.length

  • '123'.length // 3
  • '\n\r\t'.length // 3
  • ".length //0
  • ''.length // 1

    字符串的下标

    通过下标读取字符

string[index]

  1. let s = 'hello';
  2. s[0] // "h"

注意 index 从 0 开始

  • s[0] 是第一个字符

    注意 index 到 length

    1. let s = 'hello';
    2. s[4] // '0'
    3. s[5] // undefined,居然不报错

    base64 转码

    window.btoa 编码

  • 正常字符串转为 Base64 编码的字符串

    window.atob 反编码

  • Base64 编码的字符串转为原来的字符串

    一般用来隐藏招聘启事里的简历

布尔 Boolean

真或假

只有两个值

  • turefalse,注意大小写

    下列运算符会得到 bool 值

    否定运算

  • !value

    相等运算

  • 1 === 2、1 != 2、3 === 4、3 !== 4

    比较运算

  • 1 > 2、1 >= 2、3 < 4、3 <= 4

    undefined 和 null 两种空类型

    区别

    没有本质区别

  • undefined 是默认的空

  • null 是主动的空

    细节一

  • 如果一个变量声明了,但没有赋值,那么默认值就是 undefined ,而不是 null

    细节二

  • 如果一个函数,没有写 return ,那么默认 return undefined ,而不是 null

    细节三

  • 前端程序员习惯上,把非对象的空值写为 undefined ,把对象的空值写为 null

  • 但仅仅是习惯上而已。

symbool 符号

  • 不怎么常用的数据类型
  • 相关文章

    变量声明

    |

    三种声明方式

    |

    区别

    | | —- | —- | | var a = 1 | var 是过时的、不好用的方式。 | | let a = 1 | let 是新的,更合理的方式。 | | const a = 1 | const 是声明时必须赋值,且不能再改的方式。 | | a = 1 | 这种是赋值,不是声明 |

var 声明(现在不用)

var 变量提升(网道教程

let 声明

规则:

  • 遵循块作用域,即 使用范围不能超出 { }
  • 同一作用域不能重复申明
  • 可以赋值,也可以不赋值
  • 必须先声明再使用,否则报错
  • 全局声明的 let 变量,不会变成 window 的属性。
  • for 循环配合 let 有奇效。

image.png

const 声明

规则:

  • let 几乎一样
  • 只有一条不一样:声明时就要赋值,赋值后不能改。有且仅有一次赋值。

变量声明指定值,同时也指定了类型,但是值和类型都可以随意变化。

  1. // 指定值,同时指定了类型
  2. var a = 1
  3. // 值和类型都可以随意变化
  4. a = 2
  5. a = '字符串'

name'name' 的区别

**name** 是变量,值和类型皆可变
**'name'** 是字符串常量不可变

  • 常量就是不变量
  • ‘name’ 只能是 ‘name’,不能是其他值。

类型转换

number => string

  • String(n)
    • 大写的String 专门用来把不是String 的东西变成 String。
  • **n + ''** 常用写法

    1. var n = 1 // undefined
    2. String(n) // '1'
    3. n + '' // '1'

    string => number

  • Number(s)

  • parseInt(s) 会把任何东西变成整数
  • parseFloat(s)
  • **s - 0** 常用写法
    • 减法会把数字转成字符串再减0
  • +s
    • 正号会把后面的东西尝试变成Number ```javascript var s = ‘123’ // undefined Number(s) // 123 s - 0 // 123
  • s // 123 parseInt(‘123’) // 123 ```

    x => bool

  • Boolean(x)
  • **!!x ** 常用写法

    • 一个 ! 为取反,!! 为取反再取反,也就是取原始布尔值
      1. Boolean(1) // true
      2. Boolean(0) // false,0是false 值
      3. !!1 // true
      4. !!0 // false

      x => string(把任何东西变成string)

  • String(x)

  • x.toSring()

对象 Object 详情链接