JavaScript 语句类型,用於命令执行指定一系列操作,最大的特徵是不会回传结果,
因为陈述式不会回传结果,因此陈述式不能赋值到变数上
范例:
回传结果可以藉由 Chrome 浏览器开发人员工具的 Console 来查看
{var a}
var a
if (1 === 1) {}
上述结果只会显示 undefined
,而不会回传结果,因此视为陈述式
如果将陈述式赋值到变数上会产生错误
var a = if (1 === 1) {}
上方范例会显示 SyntaxError: Unexpected token 'if'
代表陈述式无法赋值到变数中
其他陈述式内容详 MDN 参考文件
又称为表示式、运算式,经常透过一些符号结合上下语句并运算及回传结果
范例:
回传结果可以藉由 Chrome 浏览器开发人员工具的 Console 来查看
1 + 1
name = 'weiwei'
1 === 1
{name: 'weiwei'}
上述范例都会回传对应的结果,因此会被视为表达式
其他表达式内容详 MDN 参考文件
函式陈述式中函式一定要赋予名称,而有名称的函式称为具名函式,
函式表达式中函式可以没有名称,而没名称的函式称为匿名函式,
两者的差异在於提升(Hoisting)的效果不同
范例:
// 函式陈述式、具名函式
function a() {}
a();
// 拆解
// 创造阶段
function a() {}
// 执行
a();
// 函式表达式、匿名函式
var a = function() {}
a();
// 拆解
// 创造阶段
var a;
// 执行
a = function() {}
a();
{}
在 JavaScript 中称为 block,block 也是陈述式的一种,
但它也有物件实字的用法,在当成物件实字使用时,可以赋值到变数中。
// block
{
var a = 'weiwei'
}
错误范例:
{
const a = 'weiwei'
}
console.log(a);
此时会显示 ReferenceError: a is not defined
,
因为 block 内使用 es6 定义变数时,作用域只在 {}
中
// 物件实字,此为定义物件的一种方式
{
a: 'weiwei'
}
var b = {
a: 'weiwei'
}
以上为陈述式与表达式内容,感谢观看。
>>: 部署 Google App Script 专案(2) & Line Bot 简单回应讯息
这里要来介绍如何优化 css 有时候我们因为要加前缀词(有的旧浏览器不支援,所以需要加) 但这会浪费...
09-04-2021 避免与component混淆的最小单位 在建立element时,与DOM el...
Express 利用 pm2 做管理(因为 docker 坑很深 加上来的话会写不完) Expres...
数组 array(): 生成一个数组 range(): 创建并返回一个包含指定范围的元素的数组 co...
接下来这几天,将会带领各位以GCP的架构的视角。 向各位阐述我们先前进行的DialogFLow F...