Javascript是模块中的函数,被视为表达式或声明

时间:2018-09-03 13:15:21

标签: javascript

HI,感谢您抽出宝贵的时间。当您将函数添加为模块的可访问属性并通过return语句公开它时。换句话说,如果您有一个对象并添加一个属性,例如“ name:function(){return;}:”,然后通过模块或对象的return语句公开该属性。这是表达式还是声明?再次感谢

很抱歉,我今天过得不好,不,我没有参加考试,但我对此描述不正确。导出模块中声明的函数时,它们是声明还是表达式?感谢您的耐心等候

2 个答案:

答案 0 :(得分:2)

对象文字的值部分,例如name: function(){return;}属性中的值,是表达式。

答案 1 :(得分:1)

表达式是任何有效的文字,变量,运算符和表达式的集合,结果为单个值。我们将表达式区分为

  • 分配表达式-x = 7
  • 求值表达式-3 + 4-通常写在大括号(x + y)

尽管这两个表达式的目标不同,但它们由3个字符组成还是40行代码*无关紧要,最后,它们全部取值都是一个决定性的值某些原始值(numberstringbooleannullundefinedsymbol)或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;,但单独作为一行,同时包含声明和表达式