在我的一個NodeJS應用程序中,我注意到了下面的代碼;使用const來請求一個模塊
const { Function } = require('./modules/helpers.js')
這有效嗎?還需要使用const的任何好處?
在我的一個NodeJS應用程序中,我注意到了下面的代碼;使用const來請求一個模塊
const { Function } = require('./modules/helpers.js')
這有效嗎?還需要使用const的任何好處?
是,destructuring assignment
是一個有效的語法:
的解構賦值語法是JavaScript表達式,使得它可以從對象解包從數組值或屬性,爲不同的變量。
({a, b} = {a: 10, b: 20});
console.log(a); // 10
console.log(b); // 20
參見:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
編輯:
至於好處,它是在大多數的情況下的語法糖。它允許您直接將導入功能稱爲Function
而不是Helper.Function
。
使用const
有一些大的改進爲你自己。所以你不能再改變你的導入模塊了。這個導入的模塊被稱爲 immutable,這對於某些點來說確實很好。欲瞭解更多看看在這裏:Short Introduction into immutable data structures
編輯:const
並不真正意味着一個值是不能改變了,但它意味着,在這一點上的對象不能被重新分配。 (感謝@馬克Stosberg再次指出了這一點)
(簡單的代碼更容易推理,這是對良好的代碼風格)
而且語法是有效ES6自毀語法。確保你的模塊輸出一個名爲Function
的變量。欲瞭解更多,請看這裏:MDN Destruction Syntax
導入的模塊保持可變。從[const的官方文檔](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const):* const聲明創建對值的只讀引用。這並不意味着它所擁有的價值是不可變的,只是變量標識符不能被重新分配。* –
非常感謝...這是ES6的特定語法/代碼嗎? – testndtv
這裏還有使用「const」的意義嗎? – testndtv
向下滾動鏈接中的關鍵字以查找該答案....是的。 – user3732793