JavaScript基本运算
1.算术运算符
基本的运算符有
+ 加 console.log(1 + 1); //2
- 减 console.log(1 - 1); //0
* 乘 console.log(1 * 2); //2
/ 除 console.log(2 / 1); //2
% 取余 console.log(5 % 2); //1
表达式 是由数字、运算符、变量等能够求得数值
注意!!!
console.log(0.1 + 0.2); // 0.30000000000000004
因为在编程语言里面进行计算,是要先将0.1和0.2转化成 二进制 然后
进行二进制相加最后把二进制相加的结果转化为十进制然后输出。
流程: 0.1二进制 + 0.2二进制 = 结果二进制 => 结果十进制 = 0.30000000000000004
2.递增递减运算符
var num = 1
num++ 相当于 num = num+1
++num 相当于 num = num+1
num-- 相当于 num = num-1
--num 相当于 num = num-1
注意:
var num1 = 1
var num2 = num1++
console.log(num2) // 1
使用 num++ 时,会先进行复制,然后进行 ++
var num3 = 1
var num4 = ++num3
console.log(num4) // 2
使用 ++num, 先进行计算++,然后再赋值。
递减同理
3.比较运算符
比较运算符有:
>= <= > < ==(等于) !=(不等于) === !==
一般比较后输出是以布尔值输出的,如:
console.log( 5 > 4 ) // true
console.log( 3 < 1 ) // false
还有一些其他情况,如:
console.log(8 == "8")// true 前面是一个数字,后面是字符串
console.log(8 === "8")// false 前面是一个数字,后面是字符串
console.log(18 !== "18") //可以理解为 18 === "18"(!false)=>true
4.逻辑运算符
逻辑运算符有:
&& 有 “并且” “and” 的意思
|| 有 “或者” “or” 的意思
! 有 “非” “not” 的意思
例:
console.log(5 > 3 && 10 > 5) // true
console.log(3 > 5 && 3 > 2); // false
console.log(3 > 5 || 3 > 6); //false
console.log(3 > 5 || 3 < 10); // true
console.log(!(3 > 5)); //true
5.逻辑运算中(中断)
逻辑运算符两边不仅有数字,还会有字符串!!!
&&逻辑中:
如果表达式1结果为真,则返回表达式2
如果表达式1结果为假,则返回表达式1
console.log(110 && 120); // 120
console.log(0 && 456); // 0
console.log(0 && 1 + 2 && 456 * 56789); // 0
console.log( 1>2 && "dvdv")//false
console.log( 1<2 && "dvdv")//dvdv
||逻辑中:
如果表达式1为真,则直接返回表达式1
如果表达式1为假,则返回表达式2
console.log(123 || 456)//123
console.log(123 || 456 || 456 + 789)//123
console.log(0 || 456 || 456 + 789); //456
console.log( 1>2 || "dvdv")//dvdv
console.log( 1<2 || "dvdv")//true
6.赋值运算符
var num = 10;
num += 5; // num = num + 5;
num -= 1; // num = num -1;
num *= 5; // num = num * 5;
num /= 1; // num = num / 1;
num %= 2;
7.运算符优先级
// 运算优先级
// 算术运算符 > 比较运算 > 逻辑 > 赋值
// 1 -- 括号()
// 2.一元运算符 ++ -- !
// 3.算术运算符
// 4.关系运算符 > < =
// 5.相等运算符 == != === !==
// 6.逻辑运算符 && || 先 && 后 ||
// 7.赋值 =
8.按位运算符
按位运算符有:
<< 左移
>> 右移
&
|
这四个
例:
var num = 1
var num2 = num1 << 2;
这个代表将 1 转化为2进制之后的八位数的前两位去掉然后再在最后补两个0
var num3 = num2 >> 1;
这个代表将 num2的值转化为2进制之后的八位数的后一位去掉然后再在最前补一个0
console.log(num2)//4
console.log(num3)//2
var num4 = 10;
二进制为 00001010
var num5 = 20;
二进制为 00010100
var num6 = num4 & num5;
二进制为 00000000
// & 的意思就是如果都为1则为1,如果有一个不为1,则为0
var num7 = num4 | num5;
二进制为 00011110
// | 的意思就是如果都为0则为0,如果有一个为1,则为
9.if语句
if(条件表达式1) {
console.log(结果1)
}else if(条件表达式2) {
console.log(结果2)
}else if(条件表达式3) {
console.log(结果3)
}else {
console.log(结果4)
}
一般结构如上,大概的意思是,当满足条件1则输出结果1,当不满足条件1满足条件2时则输出结果2...
10.三元运算符
语法结构如下:
表达式1 ? 表达式2 : 表达式3
表达式1如果为true, 则返回表达式2,否则返回表达式3
var num = 10;
var num2 = num >= 20 ? 10: num;
console.log(num2)//10
11.
switch 和 if 语法不一样,执行性能更高,作用类似
var str = prompt("想搜索的东西");
注意: str和case 后面的数值不仅要一样,而且类型也要一样!!!
switch (str) {
case "苹果":
console.log("苹果7块一斤!!")
// break 断开!!! 每一个分支都要加上break
break;
case "香蕉":
console.log("香蕉10块钱一斤!!!")
break;
case "口罩":
console.log("口罩7块一个!!!!");
break;
case '10':
console.log("这是一个数字");
break;
default:
console.log("没有匹配到任何一个结果")
break;
}