运算符详解

1. 赋值运算符

赋值运算符 = 用于将右侧的值赋给左侧的变量。


// 示例:
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
    

2. 算术运算符

算术运算符用于执行数字之间的加、减、乘、除等操作。以下是常见的算术运算符及其详细解释:

JavaScript 运算符详解

算术运算符

算术运算符用于执行数字之间的加、减、乘、除等操作。以下是常见的算术运算符及其详细解释:

运算符 描述 例子 结果
+ 加法运算 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 会将另一个操作数转换为字符串进行拼接,而非加法运算。

3. 比较运算符

比较运算符用于判断两个值的关系,返回布尔值(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"类型不同
    

4. 逻辑运算符

逻辑运算符用于判断多个条件的真或假。

运算符 描述 例子 结果
&& 逻辑与:两个条件都为真时返回 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
    

5. 条件语句和三目运算符

条件语句用于根据条件的真假来执行不同的代码。

if语句示例


// 判断是否成年
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"。
*/

    

判断2020年是否为闰年


// 判断是否是闰年
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年是闰年,所以最终输出为 "是"。
*/