1.运算符和表达式

运算符:用于执行程序代码运算,会针对一个以上操作数项目来进行运算+-*/

表达式:由一个或多个操作数通过运算符连接起来的式子 1+2 1>2

1.1 运算符的分类

  • 算数运算符

  • 赋值运算符

  • 比较运算符

  • 逻辑运算符

  • 三目运算符

1.2 算数运算符

// + - * / %(取余 取模) ++(自加) --(自减)

// 1.%(取余 取模)

console.log(10%3); // 1

varn=123;

console.log(n%10); // 个位

console.log(parseInt( (n/10) %10 ));

console.log(parseInt( (n/100) %10 ));

// 2.++自加 自加1

varm=10;

m++;

m++;

console.log(m);

// ++在前,先自加再参与运算

// ++在后,先参与运算再自加

// 先看到什么,就先做什么

varn=10;

varm=n++;

console.log(m, n); // 10 11

varn=10;

varm=++n;

console.log(m, n); // 11 11

varx=1; // 4

vary=++x; // 3

varz=x+++y+++++x;

// 2 2 4

console.log(x, y, z); // 4 3 8

// 3.--自减1

varn=10;

n--;

n--;

console.log(n); // 8

// --在前,先自减再参与运算

// --在后,先参与运算再自减

varx=1, // 2

y=1; // -1

varz=x+++--y+y--;

// 1 0 0

console.log(x, y, z); // 2 -1 1

// 4.隐式类型转换: 在运算过程中会自动把数据转换为对应类型,再参与运算

// 在算数运算中,会尽可能的转换为数字,再参与运算

console.log( '5'-1); // 5-1 -> 4

console.log( true+2 );// 1+2 -> 3

console.log( false+true ); // 0+1 -> 1

console.log( '10a'-3 ); // NaN

console.log( NaN-5 ); // NaN 所有涉及到NaN的运算结果都是NaN

// 4.1 +的隐式转换:+遇到字符串的时候成为拼接

console.log( '5'+1 ); // 成为拼接 '51'

console.log( 1+2+'3'+4+5); // '33'+4+5 -> 3345

1.3 赋值运算符

// = += -= *= /= %=

// 1.= 赋值号 把右边的值,给左边的变量

vara=10;

varb=a; // 10

b++;

console.log(a, b); // 10 11

// 2.+= 累加

varn=10;

n+=5; // 在原来的基础上累加

// n = n + 5;

console.log(n);

// 3.-+ 累减

varn=10;

n-=5;

console.log(n);

// 4.*= 累乘

varn=10;

n*=5; // n = n*5

console.log(n); // 50

// 5./= 累除

varn=10;

n/=5;

console.log(n);// 2

// 6.%=

varn=12;

n%=5;

console.log(n);// 2

1.4 比较运算符

//比较运算符:> < >= <= ==等于 !=不等于 ===全等 !==不全等

//==和===的区别:==会进行隐式转换,===不会进行隐式转换,要求一模一样

console.log( 100>2 ); // true

// 隐式类型转换: 在运算过程中会自动把数据转换为对应类型,再参与运算

console.log( '100'>2 ); // 100>2 true

// 字符串和字符串比较: 按位进行比较,一位一位比,比较的是ASCII值 0-48 A-65 a-97

console.log('100'>'2'); // false

console.log(1=='1'); // true 会进行隐式转换

console.log(1!='1'); // false

console.log(1==='1'); // false 全等不会进行隐式转换,要求一模一样

console.log(1!=='1'); // true

// ECMA规定null和undefined相等

console.log(null==undefined); // true

console.log(NaN==NaN); // false NaN不和任何值相等,不等于自身

1.5 逻辑运算符

varn=75;

// 判读分数是否在60-80之间

console.log(80>n>60); // 80>75 -> true>60 1>60 不成立false

// 多个表达式的链接需要使用逻辑运算符:&&逻辑与 ||逻辑或 !逻辑非

// 1.&&逻辑与:每一个表达式都为真时,结果才为真,一假为假

console.log( 1>2&&2<5 ); // false && true -> false

console.log( 1<2&&2<5 ); // true && true -> true

// 2.||逻辑或:有一个表达式的值为真,结果就为真,一真为真

console.log( 1>2||2<5 ); // false || true -> true

console.log( 1>2||2>5 ); // false || false -> false

// 3.!逻辑非: 取反,结果是布尔值

// 假值:0 NaN null undefined '' false

console.log(!true); // false

console.log(!10); // false

console.log(!NaN); // true

// 4.逻辑与短路运算:第一个表达式为假,结果已经确定为假,后续的表达式不会再执行

vara=1, b=1;

varc=--a&&b++;

// 0 && b++(不会执行)

console.log(a, b, c); // 0 1 0

// 5.逻辑或短路运算:第一个表达式为真,结果已经确定为真,后续的表达式不会再执行

vara=1, b=1;

a++||b++;

// 1 || b++(不会执行)

console.log(a, b); // 2 1

// 第一个表达式已经决定结果了,后续的表达式就没有意义了,不会再执行了

1.6 三目运算符

  • 三目运算符:条件 ? 条件成立时执行的代码 : 条件不成立时执行的代码

varmoney=150;

money>100?console.log('出去玩了') : console.log('买彩票');

1.7 优先级

// 运算符的优先级:算数运算符>比较运算符>逻辑运算符

console.log( 2+3*5 ); // 先乘除后加减 17

console.log( 2+3>8&&1+2>0 );

// 5 > 8 && 3 > 0

// false && true

2.流程控制语句


流程控制语句分类

  • 顺序结构:代码从上到下去执行

  • 分支结构:if switch if-else

  • 循环结构:for while do-while

  • 其他:break continue

2.1 分支语句

  • if语句

  • 语法:if(条件){ 条件成立时执行代码 }

  • 双分支:if(条件){ 条件成立时执行代码 }else{ 条件不成立时执行代码 }

  • if语句如果不加{},只能控制紧跟着的第一条

  • if中的条件也可以是值,是真值就可以执行

varmoney=500;

// 1.如果有200,买个气球,买束鲜花

if(money>=200){

// 条件成立时执行的代码

console.log('买个气球');

console.log('买束鲜花');

}

// 2.if语句如果不加{},只能控制紧跟着的第一条

varmoney=10;

if(money>=200)

// 条件成立时执行的代码

console.log('买个气球');

console.log('买束鲜花');

console.log('1111111');

console.log('2222222');

// 3.if中的条件也可以是值,是真值就可以执行

// 假值:0 null undefined '' NaN false

if(100){

console.log('吃饭');

console.log('睡觉');

console.log('学习');

}

// 4.if(条件){ 条件成立时执行的代码 }else{ 条件不成立时执行的代码 }

varmoney=100;

if(money>=200){

console.log('过情人节');

console.log('出去吃饭');

}else{

// 条件不成立时执行的代码

console.log('好好学习');

console.log('努力赚钱');

}

  • if的多分支

  • 语法:if(条件1){ 条件1成立时执行的代码 }else if(条件2){ 条件2成立时执行的代码 } else if(条件3){ ...}

  • 把不容易实现的条件放在上边,可以减少判断次数

分数:

90以上你真优秀

80-90有上升空间

70-80还可以

60-70加油

否则60以下去重修把

// if语句的嵌套

// 分数在0-100之间时,区间判断

varn=85;

if(n>=0&&n<=100){

if(n>=90){

console.log('你真优秀');

}elseif(n>=80&&n<90){

console.log('上升空间');

}elseif(n>=70&&n<80){

console.log('还可以');

}elseif(n>=60&&n<70){

console.log('加油');

}else{

console.log('去重修把');

}

}

  • switch语句

swith(匹配项){

case值1: 匹配到值1时执行的代码; break;

case值2: 匹配到值2时执行的代码; break;

...

default: 以上都没有匹配到所执行的代码

}

break作用:防止穿透,不加就会从匹配到的那一项开始,后续代码不再判断,直接执行

varstu='结婚';

switch(stu){

case'结婚': console.log('成家立业'); break;

case'丧偶': console.log('独自生活'); break;

case'单身': console.log('自己真快活'); break;

case'离异': console.log('离婚带俩娃'); break;

case'有对象': console.log('过情人节'); break;

default: console.log('年龄太小');

}

2.2循环语句

2.2.1 for循环
  • 语法:for(表达式一;表达式二;表达式三){ 循环体 }

for(初始化循环变量;循环条件;更新循环变量){ 循环体 }

  • 注意:循环条件一定要保证能让循环结束,否则陷入死循环

  • 重复性的内容,有规律的重复,可以使用循环

  • 执行过程

1.初始化循环变量 i=1 2

2.判断循环条件 i<=5

条件成立,执行下一步

条件不成立,循环结束

3.执行循环体

4.更新循环变量

5.执行步骤2

for(vari=1; i<=5; i++){

// 循环体

console.log('吃饭');

console.log(i); // 1 2 3 4 5

}

// 求1-100的和

varsum=0; // 存放和

for(vari=1; i<=100; i++){

sum+=i; // 累加 在和的基础上进行添加 1 2 ..100

}

console.log(sum); // 5050

  • for使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值