js基本数据类型定义以及转换
编码相关
ASCⅡ 码表
0 表示结束字符
10 表示换行
13 表示回车
32 表示空格
33 到 47 表示标点
48 到 57 表示数字符号
65 到 90 表示大写字母
97 到 122 表示小写字母
127 表示删除键
详细码表可以搜索得到,需要记住的是数字从 48 开始,大写字母在小写字母前面
unicode 编码
- UTF-8 中的 8 是指最少可以用 8 位存一个字符
JS 数据类型
8 种数据类型
7 种基本(原始)数据类型
Number
- 64 位浮点数
- 0 +0 -0 都等于零
- infinite 、+ infinite 、- infinite
- NaN 表示不能表示的数字,但是NaN 是数字类型
- 0/0 等于 NaN
- NaN 不等于 NaN
- 范围
- Number.MAX_VALUE: 1.7976931348623157e+308
- Number.MIN_VALUE: 5e-324
- 精度
- 最多只能到 52+1 个二进制位表示有效数字
- 2^53 对应的十进制是 9 后面 15 个零
- 所以 15 位有效数字都能精确表示
- 16 位有效数字如果小于 90 开头,也能精确表示
- 9110000000000001 就存不下来
String
每个字符只用两个字节(阉割版 utf8)
写法
“”
‘’
`` (模版字符串)
注意转义字符
属性
- .length
base64 转码
- window.btoa() 加密
- window.atob()解密
- 太简单了要少用
Boolean
- 5 个 falsy
- Null
- undefinde
- 0
- NaN
- ‘’
- 5 个 falsy
Null
Undefined
Sybol
Bigint(2020 年 6 月新加入)
复杂数据类型:Object
类型转换
- Number=>string
- String(n)
- n+’’
- String=>Number
- Number(s)
- ParsInt(s)/ParsFloat(s)
- s - 0 / + s
- x =>boolean
- Bolean(x)
- !!x
- x =>string
- String(x);
- x.toString();
- Number=>string
变量提升
var
let
- 块作用域
- 没有变量提升,不可重复赋值,必须先声明再使用,否则报错
- 可以赋值,也可以不赋值
- 全局声明的 let,不会变成 window 的属性
- for 里面使用 let 有奇效
const
- 块作用域
- 没有变量提升,有且仅有一次赋值,必须先声明再使用,否则报错
- 声明时必须赋值,而且不可改
- 全局声明的 const,不会变成 window 的属性
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!