中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React中const指的是什么

發布時間:2020-11-30 12:50:03 來源:億速云 閱讀:278 作者:小新 欄目:web開發

這篇文章主要介紹了React中const指的是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

React中const是:1、const聲明的變量是不得改變的值;2、const的作用域與let命令相同;3、const命令聲明的常量也是不提升;4、const聲明的常量,也與let一樣不可重復聲明;5、const聲明一個只讀的常量。

React中const是:

1、const聲明一個只讀的常量。一旦聲明,常量的值就不能改變。

const PI = 3.1415;
PI // 3.1415
PI = 3;
// TypeError: Assignment to constant variable.

上面代碼表明改變常量的值會報錯。

2、const聲明的變量是不得改變的值,這意味著,const一旦聲明變量,就必須立即初始化,不能留到以后賦值。

const foo;
// SyntaxError: Missing initializer in const declaration

上面代碼表示,對于const來說,只聲明不賦值,就會報錯。

3、const的作用域與let命令相同:只在聲明所在的塊級作用域內有效。

if (true) {
const MAX = 5;
}
MAX // Uncaught ReferenceError: MAX is not defined

4、const命令聲明的常量也是不提升,同樣存在暫時性死區,只能在聲明的位置后面使用。

if (true) {
console.log(MAX); // ReferenceError
const MAX = 5;
}

上面代碼在常量MAX聲明之前就調用,結果報錯。

5、const聲明的常量,也與let一樣不可重復聲明。

var message = "Hello!";
let age = 25;
// 以下兩行都會報錯
const message = "Goodbye!";
const age = 30;

6、對于復合類型的變量,變量名不指向數據,而是指向數據所在的地址。const命令只是保證變量名指向的地址不變,并不保證該地址的數據不變,所以將一個對象聲明為常量必須非常小心。

const foo = {};
foo.prop = 123;
foo.prop
// 123
foo = {}; // TypeError: "foo" is read-only

上面代碼中,常量foo儲存的是一個地址,這個地址指向一個對象。不可變的只是這個地址,即不能把foo指向另一個地址,但對象本身是可變的,所以依然可以為其添加新屬性。

下面是另一個例子。

const a = [];
a.push('Hello'); // 可執行
a.length = 0; // 可執行
a = ['Dave']; // 報錯

上面代碼中,常量a是一個數組,這個數組本身是可寫的,但是如果將另一個數組賦值給a,就會報錯。

7、如果真的想將對象凍結,應該使用Object.freeze方法。

const foo = Object.freeze({});
// 常規模式時,下面一行不起作用;
// 嚴格模式時,該行會報錯
foo.prop = 123;

上面代碼中,常量foo指向一個凍結的對象,所以添加新屬性不起作用,嚴格模式時還會報錯。

8、除了將對象本身凍結,對象的屬性也應該凍結。下面是一個將對象徹底凍結的函數。

var constantize = (obj) => {
Object.freeze(obj);
Object.keys(obj).forEach( (key, value) => {
if ( typeof obj[key] === 'object' ) {
constantize( obj[key] );
}
});
};

ES5只有兩種聲明變量的方法:var命令和function命令。ES6除了添加let和const命令,還有另外兩種聲明變量的方法:import命令和class命令。所以,ES6一共有6種聲明變量的方法。

感謝你能夠認真閱讀完這篇文章,希望小編分享React中const指的是什么內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

旬邑县| 平舆县| 衡东县| 建昌县| 湘乡市| 舒兰市| 肃北| 封开县| 镇雄县| 大石桥市| 汉中市| 杨浦区| 定西市| 库伦旗| 江达县| 竹北市| 武宁县| 大埔县| 元阳县| 商南县| 当雄县| 都江堰市| 福泉市| 蓬安县| 时尚| 闸北区| 乌审旗| 大洼县| 麟游县| 恭城| 简阳市| 扎鲁特旗| 镇平县| 高碑店市| 镇安县| 赤壁市| 偃师市| 朝阳县| 壶关县| 周口市| 仁布县|