- 7 种数据类型
- 数字 number
- 字符串 string
- 布尔 bool
- 符号 symbol(几乎不用) 详情见方方老师的文章
- 空 undefined
- 空 null
- 对象 object
- 总结:四基两空一对象 8. 2020 年 6 月新增:bigint(太新了很少用)
详情见MDN 以下不是数据
64 位浮点数
- 最大 Number.MAX_VALUE
- 最小 Number.MIN_VALUE
- 写法
- 整数
- 小数
- 科学计数法
- 8 进制
- 2 进制
- 16 进制
特殊情况
写法
- 单引号 ‘’
- 双引号 “”
- 反引号 ``
- 引号不属于字符串的一部分
- 不同引号可以互相包含,相同引号的包含需要转移
- 转义
- ‘it’s ok’
- 转义:用另一种写法表示你想要的东西(背)
- ‘ 表示 ‘
- “ 表示 “
- \n 表示 换行
- \r 表示 回车
- \t 表示 tab 制表符
- \ 表示 \
- \uFFFF 表示对应的 Unicode 字符
- \xFF 表示前 256 个 Unicode 字符
字符串的属性(字符串本没有属性)
5 个 falsy 值:相当于 false 但又不是 false 的值
- undefined
- null
- 0
- NaN
- ‘’
- 其他值都是真
四、undefined 和 null
- 本质没有区别
- 如果一个变量声明了,但没有赋值,默认是 undefined
- 如果一个函数没有写 return,默认 return undefined
前端程序员习惯上,把非对象空值写为 undefined,把对象的空值写为 null。但仅仅是习惯上而已。
五、变量声明
三种声明方式
- var a = 1
过时的,不好用,不用 - let a = 1
新的,更合理的方式,变量声明 - const a = 1
const 是声明时必须赋值,且不能再改的方式,常量声明 - a = 1 不要这么写
- var a = 1
-
1.let
遵循块作用域,即使用范围不能超出本身所在块{}
- 同一作用域,不能重复声明
- 可以赋值,也可以不赋值
- 必须先声明再使用,否则报错(指的是代码顺序)
- 全局声明的 let 变量,不会变成 window 的属性
-
2.const
几乎和 let 一样
-
六、类型转换
number < — > string
let n = 1; String(n); n + “”; let s = “123”; Number(s); s - 0; +s; parseInt(“123”);
转 bool
Boolean(1); !!1; !!0;
转 string
true.toString; (1).toString; 1..toString; 1 .toString;
1.toString 这个会报错,因为 JS 默认 1.后面要加数字,JS 的 bug
- 看 JS 的奇葩 bug 及解决方法:JavaScript 秘密花园