สมมติว่าฉันมีตัวแปรที่ฉันต้องการส่งออก ความแตกต่างระหว่างอะไร
export const a = 1;
VS
export let a = 1;
ฉันเข้าใจความแตกต่างระหว่างconst
และlet
แต่เมื่อคุณส่งออกสิ่งที่แตกต่างกันคืออะไร
สมมติว่าฉันมีตัวแปรที่ฉันต้องการส่งออก ความแตกต่างระหว่างอะไร
export const a = 1;
VS
export let a = 1;
ฉันเข้าใจความแตกต่างระหว่างconst
และlet
แต่เมื่อคุณส่งออกสิ่งที่แตกต่างกันคืออะไร
คำตอบ:
ใน ES6 import
s คือมุมมองแบบอ่านอย่างเดียวที่ใช้งานได้จริงบนค่าที่ส่งออก ดังนั้นเมื่อคุณทำเช่นimport a from "somemodule";
นั้นคุณจะไม่สามารถกำหนดได้a
ไม่ว่าคุณจะประกาศอย่างไรa
ในโมดูลอย่างไร
อย่างไรก็ตามเนื่องจากตัวแปรที่นำเข้ามาเป็นมุมมองสดพวกเขาจึงเปลี่ยนไปตามตัวแปรที่ส่งออก "ดิบ" ในการส่งออก พิจารณารหัสต่อไปนี้ (ยืมมาจากบทความอ้างอิงด้านล่าง):
//------ lib.js ------
export let counter = 3;
export function incCounter() {
counter++;
}
//------ main1.js ------
import { counter, incCounter } from './lib';
// The imported value `counter` is live
console.log(counter); // 3
incCounter();
console.log(counter); // 4
// The imported value can’t be changed
counter++; // TypeError
ในขณะที่คุณสามารถมองเห็นความแตกต่างมันอยู่ในความไม่lib.js
main1.js
เพื่อสรุป:
import
ตัวแปรให้กับคุณได้ไม่ว่าคุณจะประกาศตัวแปรที่เกี่ยวข้องในโมดูลอย่างไรlet
-vs- const
ความหมายนำไปใช้กับตัวแปรที่ประกาศในโมดูล
const
ไม่สามารถกำหนดหรือย้อนกลับได้ทุกที่let
นั้นสามารถกำหนดใหม่ได้ในโมดูลเท่านั้น (แต่ไม่ใช่ผู้ใช้) หากมีการเปลี่ยนแปลงimport
ตัวแปร -ed จะเปลี่ยนไปตามนั้นฉันคิดว่าเมื่อคุณนำเข้าแล้วพฤติกรรมจะเหมือนกัน (ในที่ที่ตัวแปรของคุณจะถูกใช้นอกไฟล์ต้นฉบับ)
ความแตกต่างเพียงอย่างเดียวคือถ้าคุณพยายามกำหนดใหม่ก่อนที่ไฟล์จะจบ
export
รายละเอียดคำหลักที่นี่ ขณะนี้ไม่ได้รับการสนับสนุนจากเว็บเบราว์เซอร์ใด ๆ