JS 数据类型 分为两大类:
1. number 数字型
数字类型就是我们在数学中学到的整数、正数、负数、小数,在 JS 中,将正数、负数、小数统称为 数字类型
JS 是 弱数据类型 ,意思是变量到底属于哪一种数据类型,赋值之后才能确认
<body>
<script>
let num1 = 10 // 正数
let num2 = -20 // 负数
let num3 = 5.6 // 小数
</script>
</body>
2. string 字符型
通过 双引号(“”) 、单引号(‘’) 或 反引号(`) 包裹的数据都是字符串,虽然单引号和双引号在本质上没有什么区别,但还是推荐使用单引号,无论使用哪一种引号,都必须是 成对使用
<body>
<script>
let name = "张三" // 双引号
let habit = '篮球' // 单引号
let str1 = '' // 空字符串
let str2 = '789' // 也是字符串,因为用单引号包裹了
</script>
</body>
有时会有 引号嵌套 的情况,但是不能自己嵌套自己,以下是错误情况:
<body>
<script>
console.log("引号"嵌套"")
</script>
</body>
这里有两种方式可以实现单引号与双引号互相嵌套:
- 单双交叉:如果外层使用单引号,那么里面就要使用双引号,反之亦然
<body>
<script>
console.log("引号'嵌套'") // 外双里单
console.log('引号"嵌套"') // 外单里双
</script>
</body>
- 使用转义符 "\" 输出单引号或双引号
<body>
<script>
console.log('引号\'嵌套\'')
</script>
</body>
字符串还可以拼接:
<body>
<script>
console.log('字符串' + '拼接')
let name = '张三'
let job = '学生'
console.log(name + '是一名' + job)
</script>
</body>
3. 模板字符串
模板字符串 也是一种字符串的拼接方式,也可以拼接字符串和变量,使用上例中的方式拼接字符串与变量比较麻烦,书写不便
模板字符串的 符号 就是之前说的 反引号 ,在英文模式下,按 ESC 键下面的按键就可以出现,在拼接字符串与变量时,变量需要用 ${} 包裹住
<body>
<script>
let name = '张三'
let job = '学生'
console.log(`${name}是一名${job}`)
</script>
</body>
模板字符串还可以解析 HTML 元素,在浏览器界面输出:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
span {
font-size: 28px;
color: coral;
}
</style>
</head>
<body>
<script>
let name = '张三'
let job = '学生'
document.write(`${name}是一名<span>${job}</span>`)
</script>
</body>
</html>
4. boolean 布尔型
布尔类型 的数据在计算机中表示的是 肯定 或 否定 ,它有两个固定的值 true 、false ,前者表示 真 ,后者表示 假
<body>
<script>
let isActive = false
isActive = true
</script>
</body>
5. undefined 未定义类型
未定义类型 是一个比较特殊的类型,它只有一个值 undefined ,在声明变量后,不给它进行赋值的情况下,该变量的默认值就是 undefined 。
一般情况下,不会直接为某个变量直接赋值 undefined
<body>
<script>
let name // 声明变量,未赋初始值
document.write(name)
</script>
</body>
在开发中,经常会声明变量来接收传递过来的数据,当我们不知道这个数据是否传递过来时,可以通过检测该变量是否为 undefined 来判断接口是否有数据传递过来。
6. null 空类型
null 表示 值为空 ,我们可以把还没有创建好的对象,赋值 null
<body>
<script>
let obj = null
console.log(obj);
</script>
</body>
null 和 undefined 区别:
检测数据类型
console.log()
控制台输出语句经常用来检测输出结果,在控制台输出的结果中:数字型和布尔型为蓝色,字符串为黑色,undefined 和 null 为灰色
<body>
<script>
let str = '张三'
let num = 123
let bool = true
let und
let age = null
console.log(str)
console.log(num)
console.log(bool)
console.log(und)
console.log(age)
</script>
</body>
可以通过 typeof 关键字检测数据类型
<body>
<script>
let str = '张三'
let num = 123
let bool = true
let und
let age = null
console.log(typeof str)
console.log(typeof num)
console.log(typeof bool)
console.log(typeof und)
console.log(typeof age)
</script>
</body>