数据类型
- 数字 number:64位浮点数
- 字符串 String
- 布尔 bool Boolean
- 符号 symbol
- 空 undefined
- 空 null
- 内置对象 bigint:BigInt - JavaScript | MDN
- 对象 object
总结:四基两空一对象,前6种是简单类型,obj是唯一一个复杂类型 以下不是数据类型
数组、函数、日期,他们是属于 object
数字
1.写法
- 整数写法:1
- 小数写法:0.1
- 科学计数法:1.23e4
- 八进制写法(用的少):0123 或 00123 或0o123
- 十六进制写法:0x3F 或 0X3F
- 二进制写法:0b11 或 OB11 2.特殊值
- 正0 和 负0 是不同的,都等于0,要严谨
- 无穷大:lnfinity、+lnfinity、-lnfinity
- 无法表示的数字:NaN(Not a Number),但它是一个数字
3.64位浮点数
浮点就是浮动的点,意思就是小数点会乱动
123.456可以表示为1.23456e10^2
也可以表示为12345.6e10^2
4.64位存储一个number
符号占1位
指数占11位(-1023~1024)
有效数字占52位(开头的1省略)
5.范围(忽略符号位)
- 指数拉满、有效数字拉满,得到最大二进制数字
- Number.MAX_VALUE:1.7976931347623157e+308
- 指数负方向拉满、有效数字最小1,得到最小值
- Number.MIN_VALUE:5e-324 6.精度(有效数字)
- 最多只能到52+1个二进制位表示有效数字
- 2^53对应的十进制是9后面15个零
- 所有15位有效数字都能精确表示
- 16位有效数字如果小于90开头,也能精确表示
- 9110000000000001就存不下来
字符串
1.写法
- 单引号:‘你好’
- 双引号:“你好”
- 反引号:
你好注意: 引号不属于字符串的一部分,就像书名号不属于书名的一部分一样
2.转义
- \ '表示'
- \ "表示"
- \n 表示换行
- \r 表示回车
- \t 表示tab制表符
- \ 表示\
- \uFFFF 表示对应的unicode 字符
- \xFF 表示前256个Unicode字符
3.字符串的属性
只有对象才有属性,字符串、数字、布尔是没有属性这么一说的
- 字符串长度:string.length
- 下表读取字符:string[index] : let s = 'hello'; s[0
4.base64转码
- window.btoa:正常字符串转为Base64编码的字符串
- window.atob:Base64编码的字符串转为原来的字符串
- 一般用来隐藏招聘启事的简历:邮箱,Zm~~
- 有时候也用来自欺欺人:所谓的[加密],也就能骗过一部分外行
布尔值
否定运算、相等运算、比较运算
1. 规则
五个falsy值:falsy就是相当于false但又不是false的值分别是:undefined、null、0、NaN、'',间记就是两空两数一空字符串
undefined 和 null
其实他们都是空类型,为啥有两个空:因为是JS原创哦
区别
- 没有本质区别
- 细节一:如果一个变量声明了,但没有赋值,那么默认值就是undefined,而不是null
- 细节二:如果一个函数,没有写return,那么默认return undefined,而不是null
- 细节三:前端程序员习惯上,把非对象的空值写为undefined,把对象的空值写为null;但仅仅是习惯上而已
symbol
var、let、const
变量声明可指定值,也同时可修改类型
三种变量声明方式
var a = 1
let a = 1:我们的说法是变量声明
const a = 1:我们的说法是常量声明
a = 1:有的时候是声明全局变量,有的时候是赋值
区别
let
规则:
- 遵循块作用域,即使用范围不能超过{}
- 不能重复声明
- 可以赋值,也可以不赋值
- 必须先声明再使用,否则报错
- 全局声明的let变量,不会变成window的属性
- for 循环配合let有奇效
const
规则:
- 跟let 几乎一样
- 只有一条不一样:声明时就要赋值,赋值后不能改
转换类型
- number => string:String(n),n+''
- string => number:Number(s),parseInt(s) / parseFloat(s),s - 0
- x => bool:Boolean(x),!!x
- x => string:String(x),x.toString(),1.toString():不合法,(1).toString(),1..toString()