返回
巧妙利用类型转换,提升JavaScript代码可读性
前端
2023-10-30 19:10:06
上篇文章主要介绍了一下各种数据类型转换成布尔值、数字和字符串的规则。刻意没有去谈到与运算符相关类型转换。这篇就重点讲一下这方面的知识。
一元运算符 +
一元运算符遵从以下规则:
- 如果操作数是数字,则返回其正值。
- 如果操作数是字符串,则返回数字0。
- 如果操作数是布尔值,则返回其数值,即 true 返回 1,false 返回 0。
- 如果操作数是 null 或 undefined,则返回 NaN。
示例:
console.log(+1); // 1
console.log(+"abc"); // 0
console.log(+true); // 1
console.log(+false); // 0
console.log(+null); // NaN
console.log(+undefined); // NaN
二元运算符 +
二元运算符 + 遵从以下规则:
- 如果两个操作数都是数字,则返回其和。
- 如果两个操作数都是字符串,则返回其连接后的字符串。
- 如果一个操作数是数字,另一个操作数是字符串,则将数字转换为字符串,然后返回两个字符串的连接。
- 如果一个操作数是布尔值,另一个操作数是数字或字符串,则将布尔值转换为数字,然后进行相应的运算。
- 如果两个操作数都是 null 或 undefined,则返回 NaN。
示例:
console.log(1 + 2); // 3
console.log("abc" + "def"); // "abcdef"
console.log(1 + "abc"); // "1abc"
console.log(true + 1); // 2
console.log(false + 1); // 1
console.log(null + 1); // NaN
console.log(undefined + 1); // NaN
位运算符
位运算符是对二进制位进行操作的运算符。JavaScript中的位运算符包括:
- &:按位与
- |:按位或
- ^:按位异或
- <<:左移
-
:右移
-
:无符号右移
示例:
console.log(1 & 2); // 0
console.log(1 | 2); // 3
console.log(1 ^ 2); // 3
console.log(1 << 2); // 4
console.log(1 >> 2); // 0
console.log(1 >>> 2); // 0
算术运算符
算术运算符是对数字进行操作的运算符。JavaScript中的算术运算符包括:
- +:加法
- -:减法
- *:乘法
- /:除法
- %:取余
示例:
console.log(1 + 2); // 3
console.log(1 - 2); // -1
console.log(1 * 2); // 2
console.log(1 / 2); // 0.5
console.log(1 % 2); // 1
比较运算符
比较运算符是对两个值进行比较的运算符。JavaScript中的比较运算符包括:
- ==:等于
- !=:不等于
-
:大于
- <:小于
-
=:大于等于
- <=:小于等于
示例:
console.log(1 == 2); // false
console.log(1 != 2); // true
console.log(1 > 2); // false
console.log(1 < 2); // true
console.log(1 >= 2); // false
console.log(1 <= 2); // true
逻辑运算符
逻辑运算符是对布尔值进行操作的运算符。JavaScript中的逻辑运算符包括:
- &&:与
- ||:或
- !:非
示例:
console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false
console.log(true || true); // true
console.log(true || false); // true
console.log(false || true); // true
console.log(false || false); // false
console.log(!true); // false
console.log(!false); // true
条件运算符
条件运算符是一个三元运算符,用于根据条件表达式来选择两个值中的一个。条件运算符的语法如下:
condition ? value1 : value2
示例:
const age = 18;
const message = age >= 18 ? "你已经成年了" : "你还没有成年";
console.log(message); // "你已经成年了"
类型推断
JavaScript是一种动态类型语言,这意味着变量的类型不是在编译时确定的,而是在运行时确定的。JavaScript中的类型推断是指根据变量的值来推断其类型。
示例:
let x = 1;
console.log(typeof x); // "number"
x = "abc";
console.log(typeof x); // "string"
应用场景
类型转换在JavaScript中有很多应用场景,其中包括:
- 数据类型转换:将一种数据类型转换为另一种数据类型。
- 比较运算:比较两个不同类型的值。
- 逻辑运算:对布尔值进行操作。
- 条件判断:根据条件表达式来选择两个值中的一个。
- 类型推断:根据变量的值来推断其类型。
总结
类型转换是JavaScript中一项重要的知识,掌握了类型转换,可以编写出更加健壮、可读性更高的代码。