以下两种js编写的条件语句的差别是什么,谢谢?

第一种方式是
if (stmt)
{
...
}
else if (stmt)
{
...
}
另一种是
if (stmt)
{
...
}
else
{
if (stmt)
{
...
}
}
区别在哪里?

6个回答

结果一样,不过第二种层次感强一些

是问执行效率吗?
功能上是一样的; 效率应该也没什么区别

第一种 等同 swich
第二种 1对1逻辑关系
用语文来说,第一种的意思是要么这样,要么那样,第二种则是如果是,否则,
举例来说+-* / 算法器,判断a?b,?是哪一种就用if elseif

先说第一种:
if (stmt)
{
...
}
else if (stmt)
{
...
}
举个例子来说,第一个if里面的stmt 这个表达式假设是 i == 2 else if 里面的为 i == 3 , 那么这个结构执行两次就结束了, i == 其它值 的情况都被忽略了,种情况要注意,是否将你只需要判断 i == 其它值 的情况做其他处理,如果不需要那就没问题,如果需要那程序会存在bug的

再说第二种,假设if 里面的语句是 i == 2 那么 i != 2 的时候都会执行 else 里面的代码, 就是在else里面,会再对 i 的值进行判断,如果 i 的值 有多少,那就是要执行多少次判断,相比第一种来说多执行了n多次判断,理论上来说是效率比较低,不过应该可以忽略不计

性习惯上来说第一种一般都会这么写:
if (stmt)
{
...
}
else if (stmt)
{
...
}
else
{
}
其实就相当于 switch 语句,一般都会加上一个default 默认处理

第一种 从表达式开始到为真的if 执行对应语句块 结束整个分之 否则 继续执行后续代码 每个if 是互斥关系
第二种 当某个条件满足时继续执行后续判断 采用分支嵌套

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问