HI,感谢您抽出宝贵的时间。当您将函数添加为模块的可访问属性并通过return语句公开它时。换句话说,如果您有一个对象并添加一个属性,例如“ name:function(){return;}:”,然后通过模块或对象的return语句公开该属性。这是表达式还是声明?再次感谢
很抱歉,我今天过得不好,不,我没有参加考试,但我对此描述不正确。导出模块中声明的函数时,它们是声明还是表达式?感谢您的耐心等候
答案 0 :(得分:2)
对象文字的值部分,例如name: function(){return;}
属性中的值,是表达式。
答案 1 :(得分:1)
表达式是任何有效的文字,变量,运算符和表达式的集合,结果为单个值。我们将表达式区分为
x = 7
3 + 4
-通常写在大括号(x + y)
尽管这两个表达式的目标不同,但它们由3个字符组成还是40行代码*无关紧要,最后,它们全部取值都是一个决定性的值某些原始值(number
,string
,boolean
,null
,undefined
,symbol
)或object
与此同时,声明也很好..顾名思义..某种东西的声明
var x;
声明名称x的undefined
变量
function
s只是object
数据类型的子类型。所以这样做
function foo (){}
我们只需在模块顶部声明一个对象(函数)。
请紧记,声明和表达式不必是可能永远无法结合的某种单独的技术,实际上,在实际的JS世界中,情况恰恰相反:
var obj = {
foo: function bar() { console.log('baz'); }
};
包含object
obj的声明。将函数bar
的表达式和声明分配给属性foo
,以及函数bar
本身的表达式。
也许更容易理解这一点的方法是:
var x = 7;
我们首先声明一个变量x(var x
),该变量由编译器提升到我们的作用域顶部,然后我们将其分配为x = 7;
,但单独作为一行,同时包含声明和表达式