jvaascript学习第二天
1总结
javascript中运算符
运算符(operator)也被称作操作符,是用于实现赋值,比较或者执行算术等等功能的符号。
(1).算术运算符
+ - * / %
++ --
var num = 10;
num++ + 10 = 20; 优先级冲突!!!
var i; i = num = 10; num = num+1; i + 10 = 20
(2)关系运算符
>= <= == != === !==
(3)逻辑运算符
&& || !
逻辑运算符两边都是 true或者false
true && true = true
false && true = false
false && false = false
true || true = true;
false || true = true;
false || false = false;
逻辑运算符两边不是true或者false
如果第一个值为true, 就是表达式2
110 && 120 = 120
0 && 120 = 0
110 || 120 = 110 110已经算是true,如果第一值为true,则就是表达式1
0 || 0 || 0 || 120 = 120 如果第一值为false
(4)赋值运算符
*=
+=
-=
/=
%=
2内容
1)算术运算符(加减乘除,取余)
console.log(1 + 1);
console.log(1 - 1);
console.log(1 * 1);
console.log(1 / 1);
// 1.% 取余
console.log(4 % 2); // 0
console.log(5 % 2); // 1
console.log(3 % 5); // 3
2)表达式
// 表达式 是由数字、运算符、变量等能够求得数值
console.log(1+1)
var num = 1 + 1;
3)递增递减运算符
var num = 1;
num = num + 1;
num = num + 1;
var age = 10;
age++; // age = age + 1; // 先计算
console.log(age) // 11
//
++age;
console.log(age) // 12
var age = 30;
age--; // age = age - 1;
console.log(age)
--age;
console.log(age)
4)比较运算符
console.log(3 >= 5); // 布尔值true
console.log(10 >= 5); // true
// >= <= > < ==(等于) !=(不等于) === !==
console.log(3 == 5); // false
console.log("林志玲" == "凤姐")// false
console.log(18 == 18); //
console.log(18 == "18")// true 前面是一个数字,后面是字符串!!!
console.log(15 != 18)// false
// === 三个等于号,不仅要判断数值,而且要判断数据类型!!!
console.log(18 === "18") // false
console.log(18 !== "18") // 18 === "18"(!false)=>true
5)逻辑运算符(与或非)
// && || !
// 1.&& 并且 and
// 如果想要整体打印出true,&& 两边都要为true,如果有一边为false,那么打印出来就是false
console.log(5 > 3 && 10 > 5) // true
console.log(3 < 5 && 3 > 2); // true
// 2. || 或者 or , 如果想要整体打印出true,|| 两边只要有一个为true就打印true,如果两个都为false,
// false
console.log(3 > 5 || 3 > 6); //false
console.log(3 > 5 || 3 < 10); // true
// 3. ! 非 not
console.log(!(3 > 5));
6)逻辑中断
// 1.true && false
// 2. 数字 && 数字 数字 && 字符串
// 3. 数字 || 数字
// 1)逻辑与 如果表达式1结果为真,则返回表达式2
// 如果表达式1结果为假,则返回表达式1
console.log(110 && 120); // 120
console.log(0 && 456); // 0
console.log(0 && 1 + 2 && 456 * 56789); // 0
// 2)逻辑或的短路运算
// 如果表达式1为真,则直接返回表达式1
// 如果表达式1为假,则返回表达式2
console.log(123 || 456)//123
console.log(123 || 456 || 456 + 789)//123
console.log(0 || 456 || 456 + 789); //456
7)运算符优先级
// 算术运算符 、 比较运算、逻辑、赋值
// 1 -- 括号()
// 2.一元运算符 ++ -- !
// 3.算术运算符
// 4.关系运算符 > < =
// 5.相等运算符 == != === !==
// 6.逻辑运算符 && || 先 && 后 ||
// 7.赋值 =
8)按位运算符
// 1.左移 右移
// 2.& |
var num1 = 1;
// << 左移两位
var num2 = num1 << 2;
var num3 = num2 >> 1;
console.log(num2)
console.log(num3)
var num4 = 10;
// 00001010
var num5 = 20;
// 00010100
// 00011110
// & 的意思就是如果都为1则为1,如果有一个不为1,则为0
var num6 = num4 | num5;
console.log(num6)
9)if语句
var age = prompt("请输入你的年龄");
if(age >= 18) {
console.log("带你去KTV唱一首好听的歌曲")
}else {
console.log("滚回家学习去!!!")
}
10)else if语句
if(条件表达式1) {
console.log()
}else if(条件表达式2) {
console.log("")
}else if(条件表达式3) {
console.log("...")
}else {
//
}
11)三元运算符
// 语法结构
// 表达式1 ? 表达式2: 表达式3
// 表达式1如果为true, 则返回表达式2,否则返回表达式3
var num = 10;
var num2 = num >= 20 ? 10: num;
console.log(num2)
12)switch语句
// switch 语法不一样,执行性能更高
var str = 10;
// 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;
}
13)案例
// 非常重要的面试题!!!
// 在编程语言里面进行计算,是要先将0.1 二进制 0.2 二进制
// 二进制 + 二进制 = 二进制 => 十进制!!!
console.log(0.1 + 0.2); // 0.30000000000000004
var num1 = 0.1;
var num2 = 0.2;
var str1 = num1.toString(2)
// console.log(str1) // 0.0001100110011001100110011001100110011001100110011001101
var str2 = num2.toString(2);
// console.log(str2) // 0.001100110011001100110011001100110011001100110011001101
// 在javascript中最大值的存储位数为53位,
// 需要将多余的位数进行截取,截取之后才能进行二进制相加
// 溢出!!!
// 小数和二进制的转换 2^ 10^-x
// 0.30000000000000004
console.log(str1.length)//57位
console.log(str2.length)//56位