ES6 const命令和import命令

2021-08-09 20:31:45 字數 1692 閱讀 2470

const用來宣告常量,一旦宣告,其值就不能更改,這就意味著const一旦宣告常量,就要立即初始化。

const命令的作用域與let命令相同:

- 只在宣告所在的塊級作用域內有效。

- const命令宣告的常量也不提公升。

- 同樣存在暫死區,只能在宣告後使用。

對於複合型的變數,變數名不指向資料,而指向資料所在的位址。const命令只需保證變數名指向的位址不變,並不保證該位址的資料不變

const foo={};

foo.prop=123;

foo.prop;//123

foo={};//報錯

//const命令定義的常量,不可變的只是這個位址,既不能把foo指向另乙個位址,但物件本身是可變的,所以依然可以為其新增新屬性。

const a=;

a.push("hello");//可執行

a.length=0;//可執行

a=["demo"];//不可執行

如果想凍結物件,應該使用object.freeze方法。

const foo =obiect.freeze({});

foo.prop=123;//不起作用

如果想把物件屬性凍結,下例是將物件徹底凍結的函式

var

constantize =(obj)=>

}}

跨模組常量

const命令只能宣告當前**塊內的常量,如果想設定跨模組常量:

export

const sa='abc';

export

const ss='hello';

import * from './test1.js';

console.log(sa);//abc

console.log(ss);//hello

全域性物件的屬性

瀏覽器環境下的全域性物件指window物件,node.js內指的是global物件。

window.a=1

;a //1

var a=1;

window.a;//

1let b=1;

window.b;//

undefined

import命令用於載入由export命令定義的模組的對外介面。

import命令接受乙個物件(用大括號表示),裡面指定要從其他模組匯入的變數名。大括號中的變數名必須與被匯入模組對外介面名稱相同。

import  from

'./test';

function setname(el)

//使用as關鍵字,將變數重新命名

import from

'./test';

//import命令具有提公升效果

foo();

import from

'./test';

到這裡,es6中宣告變數的方法僅剩下class,學習完了,再來總結

ES6學習 let和const命令

1.let命令 所宣告的變數命令所在 塊有效 a referenceerror a is not defined.b 1for迴圈的計數器,就很適合let命令 for let i 0 i arr.length i console.log i referenceerror i is not defin...

ES6 一 let和const命令

在js中是沒有塊級作用域的,var 宣告的變數作用域是整個函式體,而let可以起到這一作用 console.log b 2 console.log a a is not defind 而let可以起到這一作用啊在js中變數和函式的宣告會提公升到當前作用域最頂部執行。這樣就會出現問題。var a 函式...

ES6學習 let和const命令

說明 本文參考阮一峰的ecmascript 6 入門 console.log a 塊外使用會報錯 referenceerror a is not defined for迴圈內使用let和var產生的不同效果 下面 使用的是var,結果為10 var a for var i 0 i 10 i a 9 ...