ECMAScriptのはCONSTせ、コマンドの6

コマンドとのconstましょう

ES6は、追加letコマンドとconst宣言変数に使用され、コマンドを。

1. letコマンド

letコマンドは、declare変数に使用されています。変数は、それを宣言したletブロックコマンドが配置されている有効範囲内。

{
  let a = 10;
  var b = 1;
}

a; // ReferenceError: a is not defined.
b; // 1

let変数は表示されません、声明を指揮"变量提升"現象。

// var声明的变量会出现变量提升
console.log(foo); // 'undefined'
var foo = 2;

// let声明的变量不会出现变量提升
console.log(bar); // 报错ReferenceError
let bar = 2;

ES6ブロックを提供letし、const変数宣言コマンド、閉じた範囲を形成します。エラーが報告される前に、文の中でこれらの変数を使用しようとする者たち。

{
  // 变量未声明就使用,报错。
  x= 'abc'; // Uncaught ReferenceError: Cannot access 'mm' before initialization
  let x; 
}

letコマンドは、文が同じ変数を繰り返し、同じスコープを許可していません。

function func() {
  let a = 10;
  let a = 1; // Uncaught SyntaxError: Identifier 'a' has already been declared
}

2. constのコマンド

const読み取り専用の定数を宣言します。宣言すると、定数の値を変更することはできません。

const PI = 3.1415926;
PI // 3.1415926

// 不能再次赋值
PI = 3; // VM1846:4 Uncaught TypeError: Assignment to constant variable

const変数宣言があること、値を変更することはできませんconstあなたは変数を宣言したら、あなたはすぐに初期化する必要があります。

// 声明时必须立即初始化
const size; // Uncaught SyntaxError: Missing initializer in const declaration

constスコープとletコマンドと同じ:のみ、それが効果的に宣言された領域内のブロック・レベルの役割。

if (true) {
  // 只在本作用域内有效
  const MAX = 5;
}
MAX // Uncaught ReferenceError: MAX is not defined

const定数宣言するだけでなく、とlet同じ文を繰り返しません。

const yyy = 12;
// 不能重复声明变量
const yyy = 36; // Uncaught SyntaxError: Identifier 'yyy' has already been declared

const変数宣言コマンドの値が保存されたデータのアドレスメモリ可変ポイントが変更されなくてもよいことは、実際には、変更することができません。データの単純なタイプの、そのメモリアドレスに格納された値は変数によって指さ、したがって定数に等しいです。しかし、複雑なデータ型のため、メモリアドレスへの可変ポイントは、ポインタは、実際のデータだけを保存するconstことは、データ構造を指すように、このポインタは固定されていることを確認することができることは変数ではなく、影響を受けません。

// 声明一个变量并赋值
const example = {};

// 为 example 添加一个属性,可以成功
example.x = 123;

// 将 example 指向另一个对象,就会报错
example= []; // Uncaught TypeError: Assignment to constant variable

3.説明

私は初心者です、これが自分の研究ノート、どんな質問である、と指摘してください!Eメール:[email protected]

公開された15元の記事 ウォンの賞賛3 ビュー3658

おすすめ

転載: blog.csdn.net/qq_41863849/article/details/104424127