1. 运算符(操作符)
「运算符」是用于实现赋值、比较和执行算数运算等功能的符号。常用运算符分类如下
- 算数运算符
- 递增和递减运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
1.1 算数运算符
运算符 | 描述 | 案例 |
---|---|---|
+ | 加 | 10+20=30 |
- | 减 | 10-20=-10 |
* | 乘 | 10*20=200 |
/ | 除 | 10/20=0.5 |
% | 取余(取模) | 返回除法的余数9%2=1 |
//alert(1 + 1); console.log(1 + 1); //运算符的左右两侧都要敲空格 //alert(1 - 1); //0 //alert(1 * 1); //1 //alert(1 / 1); //1
1. % 取余(取模)
//alert(4 % 2); //0 //alert(5 % 3); //2 //alert(3 % 5); //3 注意!!!!!!!!!!
2.浮点数 算数运算里面会有问题
var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004 console.log(0.07 * 100); // 结果不是 7, 而是:7.000000000000001
浮点数值的最高精度是17位小数,但是在进行算数运算时其精确度远远不如整数,所以不要直接判断两个浮点数是否相等!
3. 我们不能直接拿浮点数来进行相比较 是否相等
var num = 0.1 + 0.2; alert(num == 0.3); //false 要转化为2进制,精确度会有误差
- 表达式与返回值
- 表达式:由数字、运算符和变量组成的式子。
- 返回值:每一个表达式经过相应的运算之后,会有一个最终结果,称为表达式的返回值
// 是由数字、运算符、变量等组成的式子 我们称为表达式 1+1 // alert(1 + 1); //2 就是返回值 //写法 //1 + 1=2 // 在我们程序里面 2 = 1 + 1 把我们右边表达式计算完毕把返回值给左边 var num = 1 + 1; // alert(num); //2
1.2 递增和递减运算符
如果需要反复给数字变量添加或减去1,可以使用递增( + + )和递减( - - )运算符来完成。
在javascript 中,递增( + + )和递减( - - )运算符既可以放在变量前面,也可以放在变量后面。放在变量前面时,称为前置递增( 递减 )运算符,放在后面是后置递增( 递减 )运算符
注意:递增和递减运算符必须配合变量使用。
前置递增运算符使用口诀:先自加,后返回值
前置递增运算符使用口诀:先返回值原值 后自加1
案例:
1.3 比较运算符
比较运算符是两个数据进行比较时所使用的运算符,比较运算符,会返回一个布尔值(true/false)作为比较运算的结果。
运算符 | 描述 | 案例 |
---|---|---|
+ | 加 | 10+20=30 |
- | 减 | 10-20=-10 |
* | 乘 | 10*20=200 |
/ | 除 | 10/20=0.5 |
% | 取余(取模) | 返回除法的余数9%2=1 |
符号 | 作用 | 用法 |
= | 赋值 | 把右边给左边 |
== | 判断 | 判断两边值是否相等(注意此时有隐式转换) |
=== | 全等 | 判断两边的值和数据类型是否完全相等 |
1.4 逻辑运算符
概念:逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。后面开发中经常用于多个条件的判断
练习:
短路运算(逻辑中断):(js API)
当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;
3. 逻辑与短路运算 如果表达式1 结果为真 则返回表达式2 如果表达式1为假 那么返回表达式1 alert(123 && 456); //456 除了0之外,所有的数字都为真 alert(0 && 456); // 0 alert(0 && 1 + 2 && 456 * 56789); // 0 alert('' && 1 + 2 && 456 * 56789); // '' 如果有空的或者否定的为假 其余是真的 : 0 '' null undefined NaN
4. 逻辑或短路运算 如果表达式1 结果为真 则返回的是表达式1 如果表达式1 结果为假 则返回表达式2 alert(123 || 456); // 123 alert(123 || 456 || 456 + 123); // 123 alert(0 || 456 || 456 + 123); // 456
逻辑中断很重要 它会影响我们程序运行结果 var num = 0; //alert(123 || num++); //123 num++不会运行 //alert(num); // 0
1.5 赋值运算符
运算符 | 描述 | 案例 |
---|---|---|
= | 直接赋值 | var userName = 'fan' |
+= -= | 加减一个数后 再赋值 | var age=5; age+=5 |
*= /= %= | 乘、除、取模后再赋值 | var age=5; age*=5 |
1.6 运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ! ++ -- |
3 | 算数运算符 | 先* / % 后+ - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !== |
6 | 逻辑运算符 | 先&& 后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
2. 流程控制
「流程控制」在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能。流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,代表三种代码执行的顺序。
分支流程控制:
2.1 if 的语法结构
if (条件表达式) { //执行语句 } 2. 执行思路 如果 if 里面的条件表达式结果为真 true 则执行大括号里面的 执行语句 如果if 条件表达式结果为假 则不执行大括号里面的语句 则执行if 语句后面的代码 3. 体验代码: if (3 < 5) { alert('沙漠骆驼'); }
案例:
2.2 if else双分支语句
案例:闰年
// 算法:能被4整除且不能整除100的为闰年(如2004年就是闰年,1901年不是闰年)或者能够被 400 整除的就是闰年 // 弹出prompt 输入框,让用户输入年份,把这个值取过来保存到变量中 // 使用 if 语句来判断是否是闰年,如果是闰年,就执行 if 大括号里面的输出语句,否则就执行 else里面的输出语句 // 一定要注意里面的且 && 还有或者 || 的写法,同时注意判断整除的方法是取余为 0 var year = prompt("请输入要检测的年份:") if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { alert(year + '是闰年') } else { alert(year + '是平年') }
2.3 if else if语句(多选1)
案例:成绩
2.4 三元表达式
案例 : 数字补0
2.5 switch分支流程控制
switch 语句也是多分支语句,它用于基于不同的条件来执行不同的代码。当要针对变量设置一系列的特定值的选项时,就可以使用 switch。
注意事项:
var num=1; switch(num){ case 1: console.log(1);break; //1 case 2: console.log(2);break; case 3: console.log(3);break; } // 1. 我们开发里面 表达式我们经常写成变量 // 2. 我们num 的值 和 case 里面的值相匹配的时候是 全等 必须是值和数据类型一致才可以 num === 1
break 如果当前的case里面没有break 则不会退出switch 是继续执行下一个case
var num=1; switch(num){ case 1: console.log(1);//1 case 2: console.log(2);//2 case 3: console.log(3);//3 }
案例:查询水果案例
switch 语句和 if else if区别:
1. 一般情况下,它们两个语句可以相互替换
2. switch...case 语句通常处理case为比较确定值的情况,而if...else...语句更加灵活,常用于范围判断(大于、等于某个范围)
3. switch 语句进行条件判断后直接执行到程序的条件语句,效率更高。而if..else 语句有几种条件,就得判断多少次。
4. 当分支比较少时,if...else语句的执行效率比switch语句高。
5. 当分支比较多时,switch语句的执行效率比较高,而且结构更清晰。
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!