簡體   English   中英

在javascript中我應該盡可能使用const而不是var嗎?

[英]In javascript should I use const instead of var whenever possible?

如果創建對象的引用,並且引用不會改變(即使對象會),那么使用const而不是var更好嗎?

例如:

const moment = require('moment')

exports.getQuotation = function(value) {

    const quotation = {};
    quotation.value = value;
    quotation.expiryDate = moment().add(7, 'days');

    // Do some other stuff with quotation perhaps

    return quotation;

};

您可以使用const,但必須在--harmony上運行節點

node app.js --harmony

您還必須設置"use strict" ,否則您將遇到運行時執行問題:

exports.getQuotation = function(value) {
    "use strict";

    const I_AM_CONSTANT = {};
    let quotation = {};
    ...

除此之外,是的,如果你在--harmony上運行節點,從語義上來說,使用const作為常量會更有意義。 對於實際變量,您應該使用let而不是var,因為let只定義范圍中的變量(避免提升問題)

如果您查看MDN,作為參考,您可以發現它是ES6提案的一部分實驗技術。 它的瀏覽器支持有限。

來自MDN的const的參考

這是一項實驗技術,是Harmony(ECMAScript 6)提案的一部分。 由於此技術的規范尚未穩定,請檢查兼容性表以了解各種瀏覽器的用法。 另請注意,隨着規范的變化,實驗技術的語法和行為可能會在未來版本的瀏覽器中發生變化。

所以這回答了你是否應該隨處使用。 :)

此外,如果要在不允許更改的對象中創建屬性,則應檢查Object.defineProperties()writable屬性的使用。

const用於變量常量,即一旦聲明,它的值不應該改變,而var可以按照意願改變。

使用constvar完全取決於您的意願。 對我而言如下

  • 如果我100%確定變量的值不會改變並且不會重新聲明,我將其定義為const。
  • 在所有其他情況下,我將使用var。

記住它,重新聲明const會立即拋出錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM