02 运算符 if if-else switch
运算符
算数运算符
±*/%
和其他语言一样,不过需要注意都是浮点数的计算容易出问题,这一点java有时候也会
console.log(0.1 + 0.2); // 0.30000000000000004
console.log(0.07 * 100); // 7.000000000000001
所以也导致我们不能直接拿浮点数来进行相比较是否相等
var num = 0.1 + 0.2;
console.log(num == 0.3); // false
表达式与返回值
和其他语言一样,是由数字、运算符、变量等组成的式子 我们称为表达式
例子
console.log(1 + 1);
// 1 + 1 就是表达式 2 就是返回值
// 在我们程序里面 2 = 1 + 1 把我们的右边表达式计算完毕把返回值给左边
var num = 1 + 1;
前置后置递增运算符
和其他语言一样,前置后置只是改变返回值和改变值的顺序
前置自增 先变量自加1 后面表达式返回自增后的值
后置自增 先表达式返回原值 后面变量再自加1
比较运算符
<、>、>=、<=
和其他语言一样,比较两边变量或者值的大小,需要注意的是>=、<=,都和==一样有着一样的特性
==
我们程序里面的等于符号 是 == 默认转换数据类型 会把字符串型的数据转换为数字型 只要求值相等就可以
例子
console.log(3 >= 5); // false
console.log(2 <= '4'); // true
console.log(3 == 5); // false
console.log('pink老师' == '刘德华'); // false
console.log(18 == 18); // true
console.log(18 == '18'); // true
console.log(18 != 18); // false
===
我们程序里面有全等 一模一样 要求 两侧的值 还有 数据类型完全一致才可以 true
例子
console.log(18 === 18); // true
console.log(18 === '18'); // false
逻辑运算符
&&、||、!
和其它语言一样,
逻辑与 && and 两侧都为true 结果才是 true 只要有一侧为false 结果就为false
逻辑或 || or 两侧都为false 结果才是假 false 只要有一侧为true 结果就是true
逻辑非 not !
它们也可以嵌套使用
短路中断运算
逻辑与短路运算
如果表达式1 结果为真 则返回表达式2 如果表达式1为假 那么返回表达式1,当遇到假时结束判断
例子
console.log(123 && 456); // 456
console.log(0 && 456); // 0
console.log(0 && 1 + 2 && 456 * 56789); // 0
console.log('' && 1 + 2 && 456 * 56789); // ''
逻辑或短路运算
如果表达式1 结果为真 则返回表达式2 如果表达式1为假 那么返回表达式1,当遇到真时结束判断
例子
console.log(123 || 456); // 123
console.log(123 || 456 || 456 + 123); // 123
console.log(0 || 0 + 456 || 456 + 123); // 456
补充
逻辑中断很重要 它会影响我们程序运行结果
赋值运算符
和其它语言一样,这个倒是没什么好展开了
运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ++ 、–、 ! |
3 | 算数运算符 | 先*/% 后± |
4 | 关系运算符 | >、>=、<、<= |
5 | 相等运算符 | 、!=、=、!== |
6 | 逻辑运算符 | 先&& 后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
if
和其他语言一样,没有什么特别的
语法
if(条件表达式){
// 执行语句
}
if-else
和其他语言一样,没有什么特别的
语法
if (条件表达式) {
// 执行语句1
} else {
// 执行语句2
}
嵌套
和其他语言一样,没有什么特别的
if (条件表达式1) {
// 语句1;
} else if (条件表达式2) {
// 语句2;
} else if (条件表达式3) {
// 语句3;
} else {
// 最后的语句;
}
三元表达式
和其他语言一样,没有什么特别的
语法
条件表达式 ? 表达式1 : 表达式2
例子
用户输入0~59之间的一个数字
如果数字小于10,则在这个数字前面补0,(加0 拼接) 否则 不做操作
用一个变量接受这个返回值,输出
var time = prompt('请您输入一个 0 ~ 59 之间的一个数字');
// 三元表达式 表达式 ? 表达式1 :表达式2
var result = time < 10 ? '0' + time : time; // 把返回值赋值给一个变量
alert(result);
switch
和其他语言一样,没有什么特别的
语法
switch (表达式) {
case value1:
执行语句1;
[break;]
case value2:
执行语句2;
[break;]
...
default:
执行最后的语句;
}