陈述式与表达式的差异
if...else
、switch
、try...catch
,变数宣告 var
、let
、const
。表达式:进行运算之后,回传结果。只要是能够取到值的程式码就可以称做表达式。// statement 陈述式let a = 123;// expression 表达式console.log(a);
函式陈述式 以及 函式表达式
两者的差别就是 hoisting 的顺序,在 创造阶段 跟 执行阶段 赋值的差别。
// 函式陈述式function fn () { ...}// 函式表达式let a = function () { ...}
Block 区块 {}
这样的结构,称作为 Block,而在 Block 中,可以执行其他的 陈述式 或是 表达式。
//陈述式{ let ming = '小明';}
还有经常看到的结构,就是 物件实字
//陈述式{ ming: '小明'}
这样的结构可以利用变数赋值,相反的 Block 的结构则不行。
// Xlet a = { var b = '小明';}// Olet a = { ming: '小明'}
参考文章