首页 > 解决方案 > 箭头函数分配给没有变量声明关键字的变量?

问题描述

我对箭头函数不是很熟悉,并且遇到了我不明白的用法。在浏览了几篇关于箭头函数的文章后,变量声明关键字似乎应该在变量名之前。如果不是,那为什么不是这样呢?(代码有效。)

例如,为什么不是var,letconstbefore getParameterByName

getParameterByName = (name, url) => {
 ...
}

标签: javascriptecmascript-6

解决方案


在 sloppy-mode JavaScript 中,分配给未声明的变量将在全局对象上设置该属性。这(正如您所知道的,因为存在这个问题)是令人困惑的行为。

一般来说,您应该始终使用严格模式。许多令人困惑的行为在严格模式下得到修复,包括您在此处询问的情况。

'use strict';

a = () => {};

如您所见,运行此代码段会给出 ReferenceError 因为a未声明。


推荐阅读