JS if...else

🌙
手机阅读
本文目录结构

功能

当指定条件为真,if 语句会执行一段语句。如果条件为假,则执行另一段语句。

演示

  1. function testNum(a) {
  2. if (a > 0) {
  3. return "positive";
  4. } else {
  5. return "NOT positive";
  6. }
  7. }
  8. console.log(testNum(-5));
  9. // expected output: "NOT positive"

语法

  1. if (condition){
  2. statement1
  3. }[else{
  4. statement2
  5. }]

condition

值为真或假的表达式

statement1

当 condition 为真时执行的语句。可为任意语句,包括更深层的内部 if 语句。

要执行多条语句,使用块语句({ … })将这些语句分组;若不想执行语句,则使用空语句。

statement2

如果 condition 为假且 else 从句存在时执行的语句。可为任意语句,包括块语句和嵌套的 if 语句。

说明

多层 if…else 语句可使用 else if 从句。注意:在 Javascript 中没有 elseif (一个单词)关键字。

  1. if (condition1)
  2. statement1
  3. else if (condition2)
  4. statement2
  5. else if (condition3)
  6. statement3
  7. ...
  8. else
  9. statementN

要看看它如何工作,可以调整下嵌套的缩进:

  1. if (condition1)
  2. statement1
  3. else
  4. if (condition2)
  5. statement2
  6. else
  7. if (condition3)
  8. ...

要在一个从句中执行多条语句,可使用语句块({ … })。

通常情况下,一直使用语句块是个好习惯,特别是在涉及嵌套 if 语句的代码中:

  1. if (condition) {
  2. statements1
  3. } else {
  4. statements2
  5. }

不要将原始布尔值的 true 和 false 与 Boolean 对象的真或假混淆。

任何一个值,只要它不是 undefined、null、 0、NaN 或空字符串(""),那么无论是任何对象,

即使是值为假的 Boolean 对象,在条件语句中都为真。例如:

  1. var b = new Boolean(false);
  2. if (b) //表达式的值为true

示例

使用 if…else

  1. if (cipher_char === from_char) {
  2. result = result + to_char;
  3. x++;
  4. } else {
  5. result = result + clear_char;
  6. }

使用 else if

注意,Javascript 中没有 elseif 语句。但可以使用 else 和 if 中间有空格的语句:

  1. if (x > 5) {
  2. /* do the right thing */
  3. } else if (x > 50) {
  4. /* do the right thing */
  5. } else {
  6. /* do the right thing */
  7. }

条件表达式中的赋值运算

建议不要在条件表达式中单纯的使用赋值运算,因为粗看下赋值运算的代码很容易让人误认为是等性比较。比如,不要使用下面示例的代码:

  1. if (x = y) {
  2. /* do the right thing */
  3. }

如果你需要在条件表达式中使用赋值运算,用圆括号包裹赋值运算。例如:

  1. if ((x = y)) {
  2. /* do the right thing */
  3. }

规范

Specification Status Comment
ECMAScript Latest Draft (ECMA-262)
if statement
Draft
ECMAScript 2015 (6th Edition, ECMA-262)
if statement
Standard
ECMAScript 5.1 (ECMA-262)
if statement
Standard
ECMAScript 3rd Edition (ECMA-262)
if statement
Standard
ECMAScript 1st Edition (ECMA-262)
if statement
Standard Initial definition

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了