js回忆录(2) -- 逻辑表达式,条件语句

2 篇文章 0 订阅
文章详细介绍了JavaScript中的逻辑运算符,包括逻辑与(&&),逻辑或(||)以及逻辑非(!),并阐述了它们在条件语句如if,else,switch中的应用。同时提到了逻辑运算符在函数参数默认值、DOMAPI兼容性等场景下的使用,以及三元运算符的简洁表达方式。文章还提醒了读者注意!运算符的高优先级以及在编写条件语句时避免潜在的bug。
摘要由CSDN通过智能技术生成

之所以要把逻辑表达式和条件语句放一块写一下,完全是因为二者的联系太过紧密,逻辑运算产生布尔值的结果,而条件语句则根据布尔值决定走那个分支。

逻辑与: &&,

首先逻辑与有逻辑与运算功能,即对由它连接的两端做逻辑运算,只要有一端结果为假,整个表达式的结果为假。

其次逻辑与 两边连接两个值的时候,只要有一个值为假值,整个表达式的结果是这个假值。

最后是开关作用,可以代替简单的if语句,eg:

a && c();

假定a是某个变量,c为某一函数,当且仅当a可以转换为true的时候c才会执行;

逻辑或: ||,

首先是逻辑或运算,被连接的两端如果一端为真,整个表达式结果为真,

然后逻辑或链接两个值得时候,只要有一个值为真值,整个表达式的结果就是这个真值,

最后也是开关作用, 同上 a || c();a为假的时候,c才会执行。

应用:es6之前函数参数的默认值设置,dom api兼容,比如: 时间参数,样式计算函数,太多了。

逻辑非: !,

对操作数的布尔值求反,单目运算符,具体运算过程是先将操作值转换为布尔值之后对这个布尔值求反,

应用:

可以很方便的检测一个值转换为布尔值是真是假:

eg. !!s ,即为s转换为布尔值之后的值;

坑:!的优先级是非常高的,所以尤其注意一些逻辑运算符连接在一起的时候运算顺序。

条件语句:

if(expression):

if通过计算expression的值得结果是否为true,决定是否执行后边的语句,有大括号的时候执行整个代码段,没有大括号的时候只执行接下来的一句代码;

else:

执行if里expression计算为假的时候的语句,

else if

多分支的解决方案之一,关于if和else多提一句就是如果判断条件很多的时候尽量搞清楚逻辑运算之间的关系,否则很容易产生bug。

switch:

多分支的解决方案之一,基本语法:

switch ( expression ){
case n :
      expression;
        break;
default:
break;
}

根据expression的计算结果决定走哪条case语句,break不是必须得,但是是非写不可的,有可能会产生bug,因为当你的case语句已经匹配之后,他肯定会执行他的这块代码,但假设此时没有break的话,他就会执行下面case里边的语句,so,bug就这么产生了;但是也有一个好处!就是switch里expression有多个分支,但是某几个要执行的操作一样的话,你就可以连续写几个case之后再写操作语句了,的确很方便。

switch最后一般会跟一个default语句,用来处理,当所有的case都不匹配时的缺省操作,非必须,不写的话代码不怎么严谨。

简洁玩法:

可以用 && 运算符模拟简单的if语句
比方:

c && c++; or typeof(c) == 'number' && c ++

当然还有一个条件运算符叫三元运算符,示例:

条件?为真执行我:为假执行我;

并且三元运算符是可以嵌套的噢!当然写的时候就注意换个行什么的了,不然代码不美观。

附录:

js的假值:

  • 数值类型里边0,NaN,

  • 还有布尔类型里边的false,

  • 字符串:‘’,

  • null,undefined,

除此之外其他值都为真值了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值