数据为什么需要类型
数字与字符串
都是一,为什么要分 1 和 '1'
- 功能不同
- 数字是数字,字符串是字符串,要严谨
- 数字能加减乘除,字符串不行
- 字符串能表示电话号码,数字不行
- 存储形式不同
- JS 中,数字是用 64 位浮点数的形式存储的
- JS 中,字符串是用类似 UTF8 形式存储的(UCS-2)
JS 中七种的数据类型
数字 number、字符串 string、布尔 bool、符号 symbol、空 undefined、空 null、对象 object
总结:四基两空一对象
- 注意:这些不是数据类型:数组、函数、日期(它们都属于 object )
数字 number
写法
整数写法
1
小数写法
0.1
科学计数法
1.23e4
八进制写法(用得少)
0123 或 00123 或 0o123
十六进制写法
0x3F 或 0X3F
二进制写法
0b11 或 0B11
特殊值
正0 和 负0
都等于 0,要严谨
无穷大
Infinity 、+Infinity 、-Infinity
无法表示的数字
NaN (Not a Number)
但它是一个数字
字符串 string
写法
单引号:'你好'
双引号:"你好"
反引号:你好
注意:引号不属于字符串的一部分,就像书名号不属于书名的一部分一样
转义
'it\'s ok' // 这就是转义
"it's ok"
`it's ok`
用另一种写法表示你想要的东西:
\' 表示 '
\" 表示 "
\n 表示换行
\r 表示回车
\t 表示 tab 制表符
\\ 表示 \
\uFFFF 表示对应的 Unicode 字符
\xFF 表示前 256 个 Unicode 字符
如果你想要在字符串里回车
let s = `这样是
可以的
用反引号很容易做到`
布尔 boolean(true或false)
下列运算符会得到 bool 值
否定运算
!value
相等运算
1 == 2、1 != 2、3 === 4、3 !== 4
比较运算
1 > 2、1 >= 2、3 < 4、3 <= 4
五个 falsy 值
falsy 就是相当于 false 但又不是 false 的值
分别是 undefined null 0 NaN ''
变量声明
三种声明方式
var a = 1
let a = 1
const a = 1
- 区别:
var 是过时的、不好用的方式
let 是新的,更合理的方式
const 是声明时必须赋值,且不能再改的方式
指定值
var a = 1
同时也指定了类型
var a = 1
但是值和类型都可以随意变化
a = 2
a = '字符串'