繁体   English   中英

为什么在使用导入/导出时箭头功能不起作用

[英]Why arrow functions don't work when using import/export

此代码显示“显示未定义”。

import {a} from './dis.js';
show = () =>{
  console.log(a);
}
show();

但这有效

import {a} from './dis.js';
const show = () =>{
    console.log(a);
}
show();

这是为什么 ?

这与箭头功能无关。 这是严格代码的本质。 当我在strict模式下工作时,您可以看到一个示例。 ES6模块呢,它们会自动进入strict模式。

 'use strict'; show = 4; 

您试图将箭头功能的引用分配给未定义的变量show Defined表示您已使用关键字varletconst了变量。

在第一个代码部分中,您没有使用这些关键字进行声明,而是尝试查找变量,并且未找到使用该名称定义的任何内容。 因此会引发错误。

在第二个代码部分中,您定义了一个名为show的变量,然后为其分配了对箭头函数的引用。 所以一切都很好。

这不是由于箭头功能。 您正在尝试为show分配一个值,但尚未在任何地方定义该变量。 使用varletconst定义它

当在JS中分配但未定义作品时,不建议这样做,并且在strict模式下也不允许这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM