1.运算符

运算符又称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号
JavaScript中常用的运算符有:

  • 算数运算符
  • 递增和递减运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符

    1.算数运算符

    浮点数 算数运算里面会有问题
    console.log(0.07+100);//100.07
    console.log(0.1+0.2);//0.300000000000004
    console.log(0.07*100);//7.000000000000001

    2.递增递减运算符

前置递增或递减运算符(++、—放在变量名前面),如++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的值

  1. //数字补0案例,0~9不成01~09,大于9不变
  2. var time= prompt('输入一个数');
  3. var result=time>9 ? time : '0'+time;
  4. console.log(result);
  5. if(time<10){
  6. console.log('0'+time);
  7. }else{
  8. console.log(time);
  9. }

4.switch语句

switch语句也是多分支语句,它用于基于不同的条件来执行不同的代码,当要针对变量设置一系列的特定值的选项时,就可以使用switch。
switch语句也是多分支语句,也可以实现多选1
语法结构switch转换、开关 case小例子或者选项的意思
switch(表达式){//表达式即特定的值或变量
case value1:
执行语句1;
break;
case value2:
执行语句2;
break;
……
default:
以前的条件都不满足,执行最后的语句;
}
注意:

  • 我们在开发时,表达式经常写成变量
  • 我们value的值和case里面的值必须相匹配的时候才能执行,即全等:值和数据类型一致
  • 如果当前的case里面没有break,则不会退出switch,继续执行下一个case里面的语句不管满不满足条件,若还不满足则继续执行
    1. //查询不同水果的价格
    2. var fruit=prompt('请输入你要查询的水果');
    3. switch (fruit){
    4. case '苹果':
    5. alert('苹果的价格是2.5/斤');
    6. break;
    7. case '橘子':
    8. alert("橘子的价格是3/斤");
    9. break;
    10. case "桃子":
    11. alert("桃子的价格是3.5/斤");
    12. break;
    13. default:
    14. alert(fruit+'已售罄');
    15. }

    3.流程控制-循环

    1.断点调试

    浏览器中按F12—>sources—>找到需要调试的文件—>在程序的某一行设置断点—>刷新页面
    Watch:监视,通过watch可以监视变量的值的变化。
    F11:程序单步执行,让程序一行一行的执行,这个时候,观察watch中变量的值得变化
    代码调试的能力很重要,只要学会代码调试,才能学会自己解决bug的能力。

    2.for循环

    ```javascript //打印五行五列的*
    1. var str='';
    2. for(var i=0;i<5;i++){
    3. for(var j=0;j<5;j++){
    4. str=str+'*';
    5. }
    6. str=str+'\n';
    7. }
    8. console.log(str);
    //打印5x5的倒三角
    1. var str1='';
    2. for(var i=0;i<5;i++){
    3. for(var j=4;j>=i;j--){
    4. str1+='*';
    5. }
    6. str1=str1+'\n';
    7. }
    8. console.log(str1);
    //打印9x9乘法表
    1. var num='';
    2. for(var i=1;i<10;i++){
    3. for(var j=1;j<=i;j++){
    4. num+=i+'*'+j+'='+i*j+'\t';
    5. }
    6. num=num+'\n';
    7. }
    8. console.log(num);

//while循环,输出”好”停止循环 var result=prompt(‘你好吗’); while(result!=’好’){ result=prompt(‘你好吗’); }

  1. <a name="RY6k0"></a>
  2. ### 3.continue、break关键字
  3. 1.continue关键字用于立即跳出本次循环,继续下一次循环(本次循环体中continue之后的代码就会少执行一次)
  4. ```javascript
  5. for(var i=1;i<5;i++){
  6. if(i==3){
  7. continue;
  8. }
  9. console.log('这是第'+i+'个');
  10. }
  11. 输出结果:
  12. 这是第1个
  13. 这是第2个
  14. 这是第4个

2.break关键字用于立即跳出整个循环(循环结束)

  1. for(var i=1;i<5;i++){
  2. if(i==3){
  3. break;
  4. }
  5. console.log('这是第'+i+'个');
  6. }
  7. 输出结果:
  8. 这是第1
  9. 这是第2

4.循环案例

  1. //输入用户名和密码正确,否则一直循环
  2. var adm= prompt("用户名");
  3. var pwd= prompt("密码");
  4. while(adm !== 'admin'&&pwd !== 123456){
  5. adm= prompt("用户名");
  6. pwd= prompt("密码");
  7. }
  8. //1~100除了个位是3的累加。
  9. var i=0;
  10. for(var num=1;num<=100;num++) {
  11. if (num % 10 === 3) {
  12. continue;
  13. }
  14. i+=num;
  15. console.log(i);
  16. }