[英]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表示您已使用關鍵字var
, let
或const
了變量。
在第一個代碼部分中,您沒有使用這些關鍵字進行聲明,而是嘗試查找變量,並且未找到使用該名稱定義的任何內容。 因此會引發錯誤。
在第二個代碼部分中,您定義了一個名為show的變量,然后為其分配了對箭頭函數的引用。 所以一切都很好。
這不是由於箭頭功能。 您正在嘗試為show
分配一個值,但尚未在任何地方定義該變量。 使用var
, let
或const
定義它
當在JS中分配但未定義作品時,不建議這樣做,並且在strict
模式下也不允許這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.