1-JS中的数据类型
7种
- 数字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:但它是一个数字
64位浮点数
JS数字的存储形式
- 浮点就是浮动的点,意思是小数点会乱动
- 123.456可以表示为1.23456e10^2
- 也可以表示为12345.6e10^-2
-
64位存储一个number
符号占1位
指数占11位
有效数字占52位
字符串String
写法
- 单引号:'你好'
- 双引号:"你好"
- 反引号:`你好`
-
注意 :
引号不属于字符串的一部分,就像书名号不属于书名的一部分一样
转义
-
错误写法
- 'it's ok'
-
正确写法
- 'it\'s ok' //这就是转义
- \'表示'
- \"表示"
-
\n表示表示换行
- \r 表示回车
- \t表示tab制表符
- \\ 表示 \
字符串
字符串的长度
'123'.length //3
'\n\r\t'.length //3
''.length //0
''.length //1
通过下标读取字符
string[index]
let s='hello';
s[0] //'h'
注意index从0开始
s[0]是第一个字符
注意index到length
let s='hello';
s[5] //undefined
s[4] //'0'
布尔bool
五个falsy值
- falsy就是相当于false但不又是false的值,分别是undefined null 0 NaN ''
undefined和null两种空类型
区别
- 细节一:如果一个变量声明了,但没有赋值,那么默认值就是undefined,而不是null
- 细节二:如果一个函数,没有写return,那么默认return undefined,而不是null
-
细节三:前端程序员习惯上,把非对象的空值写为undefined,把对象的空值写为null
但仅仅是习惯上而已
变量声明
var a =1
let a =1
const a =1
a = 1
区别
- var是过时得到,不好用的方式
- let是新的,更合理的方式
- const是声明时必须赋值,且不能再改的方式
- 最后这种方式是错误的,不能这样声明
let声明
规则
- 遵循块作用域,即使用范围不能超出{}
- 不能重复申明
- 可以赋值,也可以不赋值
- 必须先声明再使用,否则报错
- 全局声明的let变量,不会变成window的属性
- for循环配合let有奇效
name和'name'的区别
- name是变量
- 值可变,可能是'name',也可能是'hello'
- 'name'是字符串常量
- 常量就是不变量
- 'name'只能是'name',不能是其他值
类型转换
number=>string
- Stirng(n)
- n +''

string=>number
- Number(s)
- parselnt(s) / parseFloat(s)
- s-0

x=>bool
- Boolean(x)
- !!x

x=>string
- String(x)
- x.toString()
