赋值运算符 =
用于将右侧的值赋给左侧的变量。
// 示例:
var x = 5; // 将5赋值给变量x
alert("x = " + x); // 输出 x = 5
赋值运算符会将右侧的值计算后,赋给左侧的变量。比如:
// 示例:
var a = 10;
var b = 5;
a = b + 2; // 先计算b + 2,结果为7,然后将7赋值给a
alert("a = " + a); // 输出 a = 7
算术运算符用于执行数字之间的加、减、乘、除等操作。以下是常见的算术运算符及其详细解释:
算术运算符用于执行数字之间的加、减、乘、除等操作。以下是常见的算术运算符及其详细解释:
运算符 | 描述 | 例子 | 结果 |
---|---|---|---|
+ | 加法运算 | x = y + 2 | 假设 y = 5,计算结果 x = 7 |
- | 减法运算 | x = y - 2 | 假设 y = 5,计算结果 x = 3 |
* | 乘法运算 | x = y * 2 | 假设 y = 5,计算结果 x = 10 |
/ | 除法运算 | x = y / 2 | 假设 y = 5,计算结果 x = 2.5 |
% | 取余运算(求余数) | x = y % 2 | 假设 y = 5,计算结果 x = 1 |
++ | 自增运算(先加1) | x = ++y | 假设 y = 5,先自增 y,结果 x = 6,y = 6 |
-- | 自减运算(先减1) | x = --y | 假设 y = 5,先自减 y,结果 x = 4,y = 4 |
算术运算符要求操作数是数字类型。如果操作数是非数字类型,JavaScript 会尝试进行类型转换。例如:
// 非数字参与运算:
var x = "5" + 2;
alert("x = " + x); // 结果为 "52"(字符串拼接),而不是数字7
在加法运算中,如果其中一个操作数是字符串,JavaScript 会将另一个操作数转换为字符串进行拼接,而非加法运算。
比较运算符用于判断两个值的关系,返回布尔值(true 或 false)。
运算符 | 描述 | 例子 | 结果 |
---|---|---|---|
== | 判断两个值是否相等(类型可以不同) | x == 8 | 假设 x = 5,结果为 false |
=== | 判断两个值及其类型是否全等 | x === 5 | 假设 x = 5,结果为 true |
!= | 判断两个值是否不等 | x != 8 | 假设 x = 5,结果为 true |
> | 判断左侧值是否大于右侧值 | x > 8 | 假设 x = 5,结果为 false |
< | 判断左侧值是否小于右侧值 | x < 8 | 假设 x = 5,结果为 true |
>= | 判断左侧值是否大于或等于右侧值 | x >= 8 | 假设 x = 5,结果为 false |
<= | 判断左侧值是否小于或等于右侧值 | x <= 8 | 假设 x = 5,结果为 true |
比较运算符的返回值是布尔类型。运算符 ==
会进行类型转换,而 ===
则不会:
// == 会将类型转换后比较
var x = 5;
alert(x == "5"); // true,数字5和字符串"5"相等
// === 不会进行类型转换
alert(x === "5"); // false,数字5和字符串"5"类型不同
逻辑运算符用于判断多个条件的真或假。
运算符 | 描述 | 例子 | 结果 |
---|---|---|---|
&& | 逻辑与:两个条件都为真时返回 true | (x < 10 && y > 1) | 假设 x = 6,y = 3,结果为 true |
|| | 逻辑或:其中一个条件为真时返回 true | (x == 5 || y == 5) | 假设 x = 6,y = 3,结果为 false |
! | 逻辑非:对条件取反 | !(x == y) | 假设 x = 6,y = 3,结果为 true |
逻辑运算符会根据条件的真假返回结果:
// &&:两个条件都为真时,结果才为 true
var x = 6;
var y = 3;
alert(x < 10 && y > 1); // true
// ||:其中一个条件为真时,结果为 true
alert(x == 5 || y == 3); // true
// !:对结果取反
alert(!(x == 6)); // false
条件语句用于根据条件的真假来执行不同的代码。
// 判断是否成年
var age = 17;
if (age < 18) {
alert("Too young"); // 如果 age 小于 18,输出"Too young"
} else {
alert("Welcome!"); // 否则输出"Welcome!"
}
// 三目运算符示例
var age = 20;
var message = (age >= 18) ? "Adult" : "Minor";
alert(message); // 如果 age >= 18,message 是 "Adult",否则是 "Minor"
// 定义变量 age,并将其值设置为 20
var age = 20;
// 使用三目运算符进行条件判断
var message = (age >= 18) ? "Adult" : "Minor";
// 根据条件判断的结果,弹出提示框,显示 "Adult" 或 "Minor"
alert(message);
/*
详细解释:
1. 变量 age 的定义:
var age = 20;
定义了一个变量 age,并将它的值设置为 20。这个值可以是用户输入的年龄,也可以是程序中预定义的值。
2. 三目运算符的结构:
var message = (age >= 18) ? "Adult" : "Minor";
三目运算符的结构如下:
(condition) ? expression_if_true : expression_if_false;
三目运算符用于简化条件判断。它会根据 condition 条件的真假来决定返回哪个表达式:
- condition:条件部分 (此例中是 age >= 18)。
- expression_if_true:如果条件为 true,返回 "Adult"。
- expression_if_false:如果条件为 false,返回 "Minor"。
3. 判断条件:
(age >= 18)
条件是检查 age 是否大于或等于 18。在本例中,age 的值为 20,条件为 true。
4. 表达式的选择:
- 如果条件为 true(即 age >= 18),则返回 "Adult"。
- 如果条件为 false(即 age < 18),则返回 "Minor"。
因为 age 的值为 20,条件为 true,所以 message 的值是 "Adult"。
5. 结果输出:
alert(message);
这行代码会弹出一个提示框,显示 message 的值。因为条件为 true,message 的值是 "Adult",所以提示框会显示 "Adult"。
等价的 if-else 语句写法:
var age = 20;
var message;
if (age >= 18) {
message = "Adult";
} else {
message = "Minor";
}
alert(message);
总结:
- 三目运算符用于简化 if-else 语句,适合处理简单的条件判断。
- 在此示例中,age 的值为 20,age >= 18 的条件为 true,因此 message 被赋值为 "Adult"。
- 最后通过 alert(message) 输出结果为 "Adult"。
*/
// 判断是否是闰年
var year = 2020;
var isLeapYear = (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
alert("2020年是否为闰年:" + (isLeapYear ? "是" : "否")); // 输出 "是"
// 定义变量 year,并将其值设置为 2020
var year = 2020;
// 使用三目运算符和逻辑运算符进行闰年判断
var isLeapYear = (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
// 根据条件判断结果,弹出提示框,显示 2020年是否为闰年
alert("2020年是否为闰年:" + (isLeapYear ? "是" : "否")); // 输出 "是"
/*
详细解释:
1. 变量 year 的定义:
var year = 2020;
这里定义了一个变量 year,并将其值设置为 2020。这个值可以是用户输入的年份,也可以是程序中预定义的年份。
2. 闰年判断的条件解释:
闰年判断的条件有两个,使用逻辑运算符组合起来:
- 条件1:year % 4 === 0 && year % 100 !== 0
这个条件表示年份必须是4的倍数,但不能是100的倍数(比如1900年不是闰年)。
- 条件2:year % 400 === 0
这个条件表示年份如果是400的倍数,即使是100的倍数,也是闰年(比如2000年是闰年)。
逻辑表达式:
(year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)
这个条件整体判断:如果年份满足条件1或条件2中的任何一个,则年份为闰年。
3. 三目运算符:
var isLeapYear = (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
使用三目运算符判断年份是否为闰年。如果 isLeapYear 的值为 true,则返回 "是",否则返回 "否"。
4. 结果输出:
alert("2020年是否为闰年:" + (isLeapYear ? "是" : "否"));
这行代码会弹出一个提示框,显示 2020 年是否为闰年。如果 isLeapYear 的值为 true,提示框会显示 "是"。在此例中,2020 年是闰年,所以输出 "是"。
等价的 if-else 语句写法:
var year = 2020;
var isLeapYear;
if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) {
isLeapYear = true;
} else {
isLeapYear = false;
}
alert("2020年是否为闰年:" + (isLeapYear ? "是" : "否"));
总结:
- 闰年计算有两个条件:年份必须是4的倍数但不是100的倍数,或者是400的倍数。
- 三目运算符简化了条件判断,返回 "是" 或 "否"。
- 在此示例中,2020年是闰年,所以最终输出为 "是"。
*/