ホームページ php教程 PHP开发 ES6のletコマンドとconstコマンドの詳細な説明

ES6のletコマンドとconstコマンドの詳細な説明

Dec 29, 2016 pm 01:20 PM

let と const で宣言された変数はコード ブロック内でのみ有効です

{
let a = 10;
var b = 1;
}
a // ReferenceError: a is not defined.
b // 1
ログイン後にコピー

変数の昇格はありません

変数は宣言後に使用する必要があります。そうでないとエラーが報告されます

var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}
ログイン後にコピー

重複した宣言は許可されません

// 报错
function () {
let a = 10;
var a = 1;
}
ログイン後にコピー

ブロックレベルのスコープ

function f() { console.log('I am outside!'); }
(function () {
if(false) {
// 重复声明一次函数f
function f() { console.log('I am inside!'); }
}
f();
}());
//I am inside! ES5 函数提升
//I am outside! ES6 块级作用域
ログイン後にコピー

constコマンド

一度宣言されると、定数の値は変更できません

。宣言された場合は、すぐに初期化する必要があり、将来

let コマンド、const コマンド、class コマンドで宣言されたグローバル変数はグローバル オブジェクトの属性ではありません

var a = 1;
// 如果在Node的REPL环境,可以写成global.a
// 或者采用通用方法,写成this.a
window.a // 1
let b = 1;
window.b // undefined
ログイン後にコピー

次に紹介しますES6 の const コマンドは別途必要です

これは常に ecma に基づいています。 js には定数の概念がありませんでしたが、es6 はこの欠陥を補いました

上記の例は、基本的な定数を宣言しています。初期値を変更しようとすると、エラーが報告されます。参照型の値の場合も同様ですが、次のような点に注意する必要があります。

普通にエラーを報告します。何も問題はありません。もう一度見てください:

const foo='foo';
foo='bar';//TypeError: Assignment to constant variable.
ログイン後にコピー

どうしてエラーが報告されないのでしょうか?そして改造は成功するのでしょうか? これら 2 つの例の違いは、前者ではポインターが変更され (js 参照型に精通している必要があります)、対応するコンテンツが変更されているのに対し、後者では同じものを指していませんが、オブジェクトのコンテンツが変更されていることです。 foo の場合、ポインタは対応するオブジェクトを指すだけです。オブジェクトの内容は関係ないため、内容を変更したくない場合は、別のメソッドを使用できます。

const foo=[];  
foo=[1];//Assignment to constant variable.
ログイン後にコピー

この方法では、変更されることを心配する必要はありません。

ES6 の let および const コマンドに関する詳細な記事については、PHP 中国語 Web サイトに注目してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)