数据类型
数字
number
字符串string
布尔bool
符号symbol
空undefined
空null
对象object
number
特殊值: 正0和负0、无穷大 、NaN
![](https://img.haomeiwen.com/i16155751/dd20f3d44df6f6b0.png)
string
用法:单引号、双引号、反引号
![](https://img.haomeiwen.com/i16155751/cbf881c300c7521a.png)
![](https://img.haomeiwen.com/i16155751/677391e3ac0ca960.png)
属性:
获取长度
String.length
通过下标读取字符String[index]
![]()
'\n\r\t'.length //3
''.length //0
' '.length //1
//index是从0开始
base64转码
window.btoa:正常字符转为Base64编码的字符串
window.atob:Base64编码的字符串转为原来的字符串
![](https://img.haomeiwen.com/i16155751/8c69cdc8f061a268.png)
boolean
值:true
/ false
if 语句与bool
if (value) {...}
如何判断value值?
- value值是bool值,则按相应值处理
- value值不是bool值,除了五个falsy值被转为false,其他值都视为true。
- falsy值:
undefined
、null
、0
、NaN
、''
if ('') {
console.log(true);
}
// 没有任何输出
上面代码的if命令后面的判断条件,预期应该是一个布尔值,所以JavaScript自动将空字符串,转为布尔值false,导致程序不会进入代码块,所以没有任何输出。
需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true
if ([]) {
console.log(true);
}
// true
if ({}) {
console.log(true);
}
// true
undefined、null
![](https://img.haomeiwen.com/i16155751/fc57beddfdab5807.png)
变量声明
- let声明
1.遵循块作用域,即使用范围不能超出{}
2.不能重复声明
3.可以赋值,也可以不赋值
4.必须先声明后使用,否则报错
5.全局声明的let变量,不会变成window的属性
6.for循环与let配合
![](https://img.haomeiwen.com/i16155751/c25010c6a8780cdc.png)
![](https://img.haomeiwen.com/i16155751/28b54698eb83353a.png)
- const声明
1.遵循块作用域,即使用范围不能超出{}
2.不能重复声明
3.必须先声明后使用,否则报错
4.声明时需赋值,赋值后不能修改
5.全局声明的const变量,不会变成window的属性
![](https://img.haomeiwen.com/i16155751/7815a4ffe0b5b22b.png)
![](https://img.haomeiwen.com/i16155751/4987f3127601021a.png)
类型转换
- number => string
String(n)
n + ''
![](https://img.haomeiwen.com/i16155751/f42810fa1f827c47.png)
- string => number
Number(s)
parseInt(s)
/parseFloat(s)
s - 0
![](https://img.haomeiwen.com/i16155751/f7eada4981f1b748.png)
- x => bool
Boolean(x)
!!x
![](https://img.haomeiwen.com/i16155751/9ad60cd0492b33a6.png)
- x => string
String(x)
x.toString()
![](https://img.haomeiwen.com/i16155751/cbf719bed284cd58.png)
网友评论