1.运算符
运算符又称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号
JavaScript中常用的运算符有:
- 算数运算符
- 递增和递减运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
1.算数运算符
浮点数 算数运算里面会有问题
console.log(0.07+100);//100.07
console.log(0.1+0.2);//0.300000000000004
console.log(0.07*100);//7.0000000000000012.递增递减运算符
前置递增或递减运算符(++、—放在变量名前面),如++a
后置递增或递减运算符(++、—放在变量名后面),如a++
前置:先加1,后返回值(先己后人)
后置:先返回原值,后自加1(先人后己)
var num=10;
console.log(++num +10);//21
console.log(num);//11
var age=10;
console.log(age++ +10);//20
console.log(age);//11
3.比较运算符
符号 | 作用 | 用法 |
---|---|---|
= | 赋值 | 把左边给右边 |
== | 判断 | 判断两边是否相等(注意此时有隐式转换) |
=== | 全等 | 判断两边的值和数据类型是否完全相同 |
4.逻辑运算符
逻辑运算符 | 说明 | 案例 |
---|---|---|
&& | ‘逻辑与’,简称’与’ and | true&&false |
|| | ‘逻辑或’,简称’或’ or | true||false |
! | ‘逻辑非’,简称’非’ not | !true |
短路运算(逻辑中断)
短路运算原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式值了。
1.逻辑与
- 语法:表达式1&&表达式2
- 如果第一个表达式的值为真,则返回表达式2
- 如果第一个表达式的值为假,则返回表达式1
- 代表空、否定的值会被转换为false,如’’、0、NaN、null、undefined
- 其余值都会被转换成true
console.log(123 && 456);//456
console.log(0 && 456);//0
console.log(0 && 1+2 &&456 +56789);//0
console.log(‘’ && 1+2 &&456 +56789);//
2.逻辑非
- 语法:表达式1&&表达式2
- 如果第一个表达式的值为真,则返回表达式1
- 如果第一个表达式的值为假,则返回表达式2
5.赋值运算符
| 赋值运算符 | 说明 | 案例 | | —- | —- | —- | | = | 直接赋值 | var age=10; | | +=、-= | 加、减一个数 后再赋值 | var num=10;num+=6;//16 | | =、/=、%= | 乘除 取模 后再赋值 | var sum=2;sum=5;//10 |
6.运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | ( ) |
2 | 一元运算符 | ++、—、! |
3 | 算数运算符 | 先*、/、%后+、- |
4 | 关系运算符 | >、>=、<、<= |
5 | 相等运算符 | ==、!=、===、!== |
6 | 逻辑运算符 | 先&&后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
- 一元运算符里的逻辑非!优先级很高
-
2.流程控制分支结构
1.流程控制
简单来说,就是控制我们的代码按照什么结构顺序来执行。
流程控制主要有三种结构:顺序结构、分支结构和循环结构。2.分支结构
JS语言提供了两种分支结构语句
if语句
- switch语句
1.if的语法结构
if(条件表达式){
条件成立时执行的语句;
}else{
条件不成立执行的语句;
}
3.三元表达式
由三元运算符组成的式子称为三元表达式
语法结构:
条件表达式 ? 表达式1:表达式2
执行思路:如果条件表达式结果为真,则返回表达式1的值,如果为假,则返回表达式2的值
//数字补0案例,0~9不成01~09,大于9不变
var time= prompt('输入一个数');
var result=time>9 ? time : '0'+time;
console.log(result);
if(time<10){
console.log('0'+time);
}else{
console.log(time);
}
4.switch语句
switch语句也是多分支语句,它用于基于不同的条件来执行不同的代码,当要针对变量设置一系列的特定值的选项时,就可以使用switch。
switch语句也是多分支语句,也可以实现多选1
语法结构switch转换、开关 case小例子或者选项的意思
switch(表达式){//表达式即特定的值或变量
case value1:
执行语句1;
break;
case value2:
执行语句2;
break;
……
default:
以前的条件都不满足,执行最后的语句;
}
注意:
- 我们在开发时,表达式经常写成变量
- 我们value的值和case里面的值必须相匹配的时候才能执行,即全等:值和数据类型一致
- 如果当前的case里面没有break,则不会退出switch,继续执行下一个case里面的语句不管满不满足条件,若还不满足则继续执行
//查询不同水果的价格
var fruit=prompt('请输入你要查询的水果');
switch (fruit){
case '苹果':
alert('苹果的价格是2.5/斤');
break;
case '橘子':
alert("橘子的价格是3/斤");
break;
case "桃子":
alert("桃子的价格是3.5/斤");
break;
default:
alert(fruit+'已售罄');
}
3.流程控制-循环
1.断点调试
浏览器中按F12—>sources—>找到需要调试的文件—>在程序的某一行设置断点—>刷新页面
Watch:监视,通过watch可以监视变量的值的变化。
F11:程序单步执行,让程序一行一行的执行,这个时候,观察watch中变量的值得变化
代码调试的能力很重要,只要学会代码调试,才能学会自己解决bug的能力。2.for循环
```javascript //打印五行五列的*
//打印5x5的倒三角var str='';
for(var i=0;i<5;i++){
for(var j=0;j<5;j++){
str=str+'*';
}
str=str+'\n';
}
console.log(str);
//打印9x9乘法表var str1='';
for(var i=0;i<5;i++){
for(var j=4;j>=i;j--){
str1+='*';
}
str1=str1+'\n';
}
console.log(str1);
var num='';
for(var i=1;i<10;i++){
for(var j=1;j<=i;j++){
num+=i+'*'+j+'='+i*j+'\t';
}
num=num+'\n';
}
console.log(num);
//while循环,输出”好”停止循环 var result=prompt(‘你好吗’); while(result!=’好’){ result=prompt(‘你好吗’); }
<a name="RY6k0"></a>
### 3.continue、break关键字
1.continue关键字用于立即跳出本次循环,继续下一次循环(本次循环体中continue之后的代码就会少执行一次)
```javascript
for(var i=1;i<5;i++){
if(i==3){
continue;
}
console.log('这是第'+i+'个');
}
输出结果:
这是第1个
这是第2个
这是第4个
2.break关键字用于立即跳出整个循环(循环结束)
for(var i=1;i<5;i++){
if(i==3){
break;
}
console.log('这是第'+i+'个');
}
输出结果:
这是第1个
这是第2个
4.循环案例
//输入用户名和密码正确,否则一直循环
var adm= prompt("用户名");
var pwd= prompt("密码");
while(adm !== 'admin'&&pwd !== 123456){
adm= prompt("用户名");
pwd= prompt("密码");
}
//1~100除了个位是3的累加。
var i=0;
for(var num=1;num<=100;num++) {
if (num % 10 === 3) {
continue;
}
i+=num;
console.log(i);
}