今天要介绍的是 陈述式与表达式
两者最大的不同就是在于 陈述式 并不会 回传一个结果,而是执行特定的程式码,例如使用 if/else、switch、try/catch,变数宣告 var、let、contst。
而表达式会进行运算之后,回传一个结果。
其中比较需要注意的就是,表达式只要是能够取到值的程式码,就可以称做表达式。
// statement 陈述式var a = 123;// expression 表达式console.log(a);
另外还有细分 函式陈述式 以及 函式表达式
两者的差别之前的章节有提到过,就是hoisting的顺序,在创造阶段跟执行阶段赋值的差别。
// 函式陈述式function fn () { ...}// 函式表达式var a = function () { ...}
Block 区块 {}
{ var ming = '小明';}
上述这样的结构,称作为Block,而在Block中,可以执行其他的陈述式或是表达式。
并且,使用ES6的变数宣告方式,let/const就只能在Block的範围中被取用。
还有经常看到的结构,就是 物件实字
{ ming: '小明'}
而这样的结构可以利用变数赋值,相反的Block的结构则不行。
// Xvar a = { var b = '小明';}// Ovar a = { ming: '小明'}
以上就是今天的分享~汪汪