欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          React中const是什么

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

          React中const是什么

          本教程操作環(huán)境:windows7系統(tǒng)、React17版,該方法適用于所有品牌電腦。

          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命令相同:只在聲明所在的塊級作用域內(nèi)有效。

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

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

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

          上面代碼在常量MAX聲明之前就調(diào)用,結(jié)果報錯。

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

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

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

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

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

          下面是另一個例子。

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

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

          7、如果真的想將對象凍結(jié),應(yīng)該使用Object.freeze方法。

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

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

          8、除了將對象本身凍結(jié),對象的屬性也應(yīng)該凍結(jié)。下面是一個將對象徹底凍結(jié)的函數(shù)。

          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種聲明變量的方法。

          相關(guān)免費(fèi)學(xué)習(xí)推薦:javascript(視頻)

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號