前端学习记录23-JavaScript-(运算符、分支结构)

运算符(操作符)

算数运算符

+ - * / %

浮点数计算会有精度问题
console.log(0.1 + 0.2); //0.30000000000000004
console.log(0.07 * 100); //7.000000000000001

	var num = 0.1 + 0.2;
	console.log(num == 0.3);

返回值为false
不能直接对浮点数进行数值判断 大多数都为false

取余大多数用在判断一个数是否能被整除

算术运算符 优先级为先乘除后加减有括号先括号

递增递减运算符

递增++,递减--

在变量前 称为前置运算符
在变量后 称后置运算符

使用时必须配合变量使用
++num 相当于 num=num+1;
num++ 相当于 num=num+1;

前置自增和后置自增如果单独使用 效果是相同的
前置自增 先自加后返回值
后置自增 先返回原值后自加

与其他代码连用 结果不同

例如

	var num=1;
	console.log(num++ + 10);

输出结果为10
但在下一行输出 console.log(num); 结果为11

在开发中 大多数用后置递增,并且让代码单独占一行

比较运算符(关系运算符)

比较运算后会返回一个布尔值 作为结果

	<小于
	>大于
	>=大于等于
	<=小于等于 
	==是否相等(会转型)  默认会把字符串型转换为数字型 例如 18=='18' 返回结果为 true
	!=不等
    ===全等 !==不全等 数值和数据类型都相同 console.log(18 === '18'); 返回结果为false 

逻辑运算符(布尔运算符)

对布尔值进行运算 返回值也是布尔值 在开发中经常用于多个条件判断

	&& 与 有一侧为false 结果就为false
	|| 或 两侧同为false时结果才为false
	!

短路运算(逻辑中断)

如果左边表达式可确定结果 就不再继续运算右边表达式的值
很重要 会影响程序的运行结果

与:
如果第一个表达式为真 则返回表达式2
如果第一个表达式为假 则返回表达式1

	console.log(123 && 356); //356
	console.log(0 && 123); //0

或:
如果表达式1为真 返回表达式1
如果表达式1为假 返回表达式2

	console.log(123 || 456); // 123
	console.log(0 || 456); //456
	var num = 0;
	console.log(123 || num++);
	console.log(num); //0

赋值运算符

把数据赋值给变量的运算符

	= 直接赋值
    += -= 加、减一个数后再赋值
    *= /= %= 乘、除、取余后再赋值

num=num+2;和 num+=2;是相同的

三元表达式

由三元运算符组成的式子 称为三元表达式

++num 为 一元表达式
3+5 为 二运表达式
? : 三元表达式

	条件表达式 ? 表达式1 : 表达式2
	
	执行思路 
	如果条件表达式结果为真 则返回表达式1的值
    如果条件表达式结果为假 则返回表达式2的值
比如:
	var num = 10;
    console.log(num > 5 ? '是的' : '不是的');
    //返回值为是的

运算符优先级

1 小括号
2 一元运算符(只要一个操作数) ++ -- !
3 算数运算符 先* /+ -
4 关系运算符 > >= =< <
5 相等运算符 == != === !==
6 逻辑运算符 先&&||
7 赋值运算符 =
8 逗号运算符 ,

流程控制

流程控制就是来控制我们代码按照什么结构顺序来执行

流程控制有三种结构 分别是顺序结构、分支结构和循环结构

顺序结构 是程序中最简单、最基本的流程控制,没有特定的语法结构,程序会按照代码的先后顺序、依次执行

分支结构

根据不同的条件,执行不同的路径代码,得到不同的结果(多选一)

if分支结构

	if(条件表达式){
    	执行语句;
	}
	执行思路 如果条件表达式为真 则执行大括号内语句
	如果条件表达式为假 则不执行大括号内语句 执行if语句后的代码

	多分支语句
	if(){
	}else{
	}
	
	if(){
	}else if(){
	}else{
	}

switch分支结构

语法结构
        switch(表达式){
            case value1:执行语句1;break;
            case value2:执行语句2;break;
            (均未找到)default:执行语句;
        }

在开发时 表达式经常写为变量
表达式在和case数据 匹配时必须是全等 数值和数据类型必须一致

break可以不写 但是提倡写
如果case value1 没有break 则在输出时会 输出 case value2 的内容
所以为了减少错误 就别不写

    switch (4) {
        case 1:
            console.log('这是1');
            break;
        case 2:
            console.log('这是2');
            break;
        case 3:
            console.log('这是3');
            break;
        default:
            console.log('没有匹配结果');
    }

switch和if的区别

一般情况这俩可以互换

但是
switch一般用于确定值的变量
if一般用于范围判断的变量

switch在执行语句时,是直接跳转到执行语句
if是逐条进行判断

switch的执行效率更高,if如果条件过多会造成卡顿的问题要注意

判断闰年

	死循环
    var a = 1;
    while (a != 0) {
        var years = parseInt(prompt('请输入需要判断的年份'));
        if (years % 4 == 0 && years % 100 != 0 || years % 400 == 0) {
            alert(years + '是闰年');
        } else {
            alert(years + '不是闰年');
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值