首頁 > web前端 > js教程 > 主體

JavaScript中如何宣告常數

醉折花枝作酒筹
發布: 2021-06-10 14:41:25
原創
5295 人瀏覽過

在js中,可以使用const關鍵字宣告常數,語法格式為「const 名稱=值;」。 const宣告會建立一個值的唯讀引用,但這並不表示它所持有的值是不可變的,只是變數識別碼不能重新指派。

JavaScript中如何宣告常數

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

const,用於宣告常數。

注意:定義的變數的時候,必須同時初始化,且其值之後不可以修改。

const number = 42;

try {
  number = 99;
} catch (err) {
  console.log(err);
  // expected output: TypeError: invalid assignment to const `number'
  // Note - error messages will vary depending on browser
}

console.log(number);
// expected output: 42
登入後複製

結果:

> TypeError: Assignment to constant variable.
> 42
登入後複製

語法

const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]];
登入後複製

nameN常數名稱,可以是任意合法的識別碼。 valueN常數值,可以是任意合法的表達式。

描述

此聲明建立一個常數,其作用域可以是全域或本機宣告的區塊。與var變數不同,全域常數不會變成 window 物件的屬性。需要一個常數的初始化器;也就是說,您必須在聲明的同一語句中指定它的值(這是有道理的,因為以後不能更改)。

const宣告建立一個值的唯讀參考。但這並不意味著它所持有的值是不可變的,只是變數標識符不能重新分配。例如,在引用內容是物件的情況下,這意味著可以改變物件的內容(例如,其參數)。

關於「暫存死區」的所有討論都適用於let和const。

一個常數不能和它所在作用域內的其他變數或函數擁有相同的名稱。

範例

const 基本用法

#常數在宣告的時候可以使用大小寫,但通常全部用大寫字母。

// 定义常量MY_FAV并赋值7
const MY_FAV = 7;

// 报错 - Uncaught TypeError: Assignment to constant variable.
MY_FAV = 20;

// MY_FAV is 7
console.log('my favorite number is: ' + MY_FAV);

// 尝试重新声明会报错
// Uncaught SyntaxError: Identifier 'MY_FAV' has already been declared
const MY_FAV = 20;

// MY_FAV 保留给上面的常量,这个操作会失败
var MY_FAV = 20;

// 也会报错
let MY_FAV = 20;
登入後複製

區塊作用域

注意區塊作用域的性質很重要

if (MY_FAV === 7) {
  // 没问题,并且创建了一个块作用域变量 MY_FAV
  // (works equally well with let to declare a block scoped non const variable)
  let MY_FAV = 20;

  // MY_FAV 现在为 20
  console.log('my favorite number is ' + MY_FAV);

  // 这被提升到全局上下文并引发错误
  var MY_FAV = 20;
}

// MY_FAV 依旧为7
console.log('my favorite number is ' + MY_FAV);
登入後複製

常數要求一個初始值

// 报错
// Uncaught SyntaxError: Missing initializer in const declaration

const FOO;
登入後複製

常數可以定義成物件和數組

const MY_OBJECT = {'key': 'value'};

// 重写对象和上面一样会失败
// Uncaught TypeError: Assignment to constant variable.
MY_OBJECT = {'OTHER_KEY': 'value'};

// 对象属性并不在保护的范围内
// 下面这个声明会成功执行
MY_OBJECT.key = 'otherValue'; // Use Object.freeze() to make object immutable

// 也可以用来定义数组
const MY_ARRAY = [];
// 可以向数组填充数据
MY_ARRAY.push('A'); // ["A"]
// 但是,将一个新数组赋给变量会引发错误
// Uncaught TypeError: Assignment to constant variable.
MY_ARRAY = ['B'];
登入後複製

【推薦學習:javascript進階教學

以上是JavaScript中如何宣告常數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板