簡體   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