上面代码中,块级作用域将两个语句封装在一起。但是,在块级作用域以外,没有办法得到的值,因为块级作用域不返回值,除非t是全局变量。

    现在有一个,使得块级作用域可以变为表达式,也就是说可以返回值,办法就是在块级作用域之前加上do,使它变为do表达式,然后就会返回内部最后执行的表达式的值。

    do表达式的逻辑非常简单:封装的是什么,就会返回什么。

    do表达式的好处是可以封装多个语句,让程序更加模块化,就像乐高积木那样一块块拼装起来。

    值得一提的是,do表达式在 JSX 语法中非常好用。

    上面代码中,如果不用do表达式,就只能用三元判断运算符(?:)。那样的话,一旦判断逻辑复杂,代码就会变得很不易读。