JavaScript 数据类型、类型转换
数据类型
计算机程序可以处理大量的数据,为了方便数据的管理,将数据分成了不同的类型。JavaScript的数据类型整体分为两大类:
- 基本数据类型:
- number 数值型
- string 字符串型
- boolean 布尔型
- undefined 未定义型
- null 空类型
- 引用数据类型:
- object 对象
通过 typeof 关键字检测数据类型。
1. 数值类型(number)
JavaScript 中的数值类型与数学中的数字是一样的,分为正数、负数、小数等。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript 数据类型</title>
</head>
<body>
<script>
let score = 100 // 正整数
let price = 12.345 // 小数
let temperature = -40 // 负数
</script>
</body>
</html>
数字可以有很多操作,比如,乘法 * 、除法 / 、加法 + 、减法 - 等等,所以经常和算术运算符一起。数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。
- +:求和
- -:求差
- *:求积
- /:求商
- %:取模(取余数):开发中经常作为某个数字是否被整除
同时使用多个运算符编写程序时,会按着某种顺序先后执行,我们称为优先级。JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。
- 乘、除、取余优先级相同
- 加、减优先级相同
- 乘、除、取余优先级大于加、减
- 使用 () 可以提升优先级
2. 字符串类型(string)
通过单引号( '') 、双引号( "")或反引号包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
- 无论单引号或是双引号必须成对使用
- 单引号/双引号可以互相嵌套,但是不以自已嵌套自已
- 必要时可以使用转义符
\,输出单引号或双引号
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript - 数据类型</title>
</head>
<body>
<script>
let user_name = '小明' // 使用单引号
let gender = "男" // 使用双引号
let str = '123' // 看上去是数字,但是用引号包裹了就成了字符串了
let str1 = '' // 空字符串
</script>
</body>
</html>
-
字符串拼接
+ 运算符可以实现字符串的拼接,数字相加,字符相连。
-
模板字符串
内容拼接变量时,用 ${ } 包住变量。
3. 布尔类型(boolean)
表示肯定或否定时在计算机中对应的是布尔类型数据,它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript - 数据类型</title>
</head>
<body>
<script>
let isRed = true // 是
isRed = false // 否
</script>
</body>
</html>
4. 未定义类型(undefined)
未定义是比较特殊的类型,只有一个值 undefined,只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少直接为某个变量赋值为 undefined。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript - 数据类型</title>
</head>
<body>
<script>
let tmp;
</script>
</body>
</html>
5. 空类型(unll)
JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值。
null 和 undefined 区别:
- undefined 表示没有赋值
- null 表示赋值了,但是内容为空
注:JavaScript 中变量的值决定了变量的数据类型。
类型转换
在 JavaScript 中数据被分成了不同的类型,如数值、字符串、布尔值、undefined,在实际编程的过程中,不同数据类型之间存在着转换的关系。
隐式转换
某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
+号两边只要有一个是字符串,都会把另外一个转成字符串- 除了
+以外的算术运算符 比如- * /等都会把数据转成数字类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript 基础 - 隐式转换</title>
</head>
<body>
<script>
let num = 13 // 数值
let num2 = '2' // 字符串
console.log(num + num2)
// 结果为 132
console.log(num - num2)
// 结果为 11
</script>
</body>
</html>
显式转换
编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。
转换为数字型
Number(数据)- 转成数字类型
- 如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字
- NaN也是number类型的数据,代表非数字
parseInt(数据)- 只保留整数
parseFloat(数据)- 可以保留小数
转换为字符型
String(数据)- 变量.toString(进制)