表达式的简单定义是“解析为值的东西”。 语句的简单定义是“可执行的代码块”。
考虑到这一点,由于下面的这个函数解析为值为6,这是否也使它成为表达式,而不是语句,或两者兼而有之?
function ii () {
return 6;
}
ii();
答案 0 :(得分:2)
函数声明定义函数应该做什么,如下所示:
class GenreSerializer(serializers.ModelSerializer):
class Meta:
model = Genre
fields = ('GenreTitle', 'GenreDescription', 'GenreImage')
当调用该函数时,它变为函数表达式:
function ii () {
return 6;
}
您还可以根据声明获得函数表达式,如下所示:
if ( ii() ) {
console.log("true");
}
else
{
console.log("false");
}
以下表示另一种表达式,a的值是指示的函数声明:
(function iii () {
console.log(3);
}()
)
关于这个主题的有趣读物是here。
答案 1 :(得分:1)
根据您自己的推荐,否。函数本身不解析任何东西,它只返回一个已经解析的值。这只是一个声明。
您正在定义该功能。这使它成为一个声明。是的,你可以说调用函数“解析”它到输出,但它只触发输出。
值更像是表达式。它不是可执行的,只是是。
getter既是表达式又是声明:
Object.defineProperty(window, "ii", { get: function () { return 6 }});
// Returns '6'
ii;
ii = 7;
// Logs '6' because setting 'ii' does not change the resolution function.
console.log(ii);