使用es6中的let或const命名函数表达式?

时间:2017-08-23 17:33:13

标签: function ecmascript-6

我正在将我的es5代码更改为我的Angular 1.6文件中的es6,所以开始使用letconst而不是var但是对命名函数表达式相当混淆它是否应该是const还是let

ES5

var foo = function () { ... }

ES6

let foo = () => { ... }

const foo = () => { ... }

letconst混合在命名函数的同一个js文件中是否会影响性能,或者我们应该坚持使用var

根据我的理解,函数是一个JS文件中总是不可更改的东西,因此我们可以使用const

请提供一些有用的解释。

1 个答案:

答案 0 :(得分:4)

无论您是分配函数还是任何其他值,//Provide / change the name of the test step of Step2 def nextStep = 'Step2' assert context.response, 'Response is null or empty' def ids = new XmlSlurper().parseText(context.response).​'**'.findAll{it.name() == 'long'}*.text() log.info ids assert ids, 'Did not get any values from this response' def stepToRun = context.testCase.testSteps[nextStep] ids.each { id -> log.info "Running $nextStep step for value $id" context.testCase.setPropertyValue('REF_ID', id.toString()) def runner = stepToRun.run(context.testRunner, context) } const的规则都是相同的。如果您不打算或想要更改该值(几乎总是函数的情况),请使用let。但是,请注意提升行为存在差异,但不太可能对您产生影响。

任何表现差异都可以忽略不计。