次のステップは BOM と HTML5 になるはずですが、ECMAScript5 には ECMAScript3 と比較して多くの新しい変更点があり、これらの変更点も非常に興味深いため、この記事では私が考える興味深い変更点 (すべての変更点ではありません) をまとめます。詳細には触れずにリストを示します。
1. 構文の変更
1. キーワードと予約語
ES3 では、キーワードを識別子として使用すると「Identifier Expected」エラーが発生します。一方、識別子に予約語を使用すると、特定のエンジンに応じて同じエラーが発生する場合とそうでない場合があります。 ES5 では、キーワードや予約語を識別子として使用することはできませんが、オブジェクトのプロパティ名として使用することができます。 ES5のキーワード・予約語のうち、letとyieldが新たに追加されました。最大限の互換性を確保するには、ES3 または ES5 のキーワードと予約語を識別子として使用しないでください。
2. 属性の特性
ES5 では、ユーザー定義の属性の説明を使用して、特定の属性の列挙可能、構成可能、書き込み可能、取得、設定などの属性をオーバーライドできます。具体的な方法は、Object オブジェクトに定義された静的関数を使用することです。
3. Strict モード
最大の文法上の変更は、"use strict" ステートメントを使用してスクリプト全体を追加することです。厳密モードを有効にするコードを関数内に追加すると、その関数に対してのみ厳密モードが有効になります。厳密モードの主な変更点は次のとおりです。
(1) 変数は使用する前に定義する必要があります。つまり、暗黙的なグローバル変数は許可されません
(2) 8 進データは使用されません
(3) with 文は使用しないでください
(4) eval
A. eval を識別子として使用できないため、変数や関数に名前を付けることはできません eval
B. eval()関数で定義した変数は外部からアクセスできません
(5) 引数
A. 引数を識別子として使用することはできません
B.関数としての内部オブジェクトは引数を変更できないため、仮パラメータと引数
の間で同期的な変更は行われなくなりました。 C. argument.callee にアクセスできません
D. argument.caller 属性は次のように定義されます。 ES5 であり、その値は常に未定義であり、主に argument.caller と関数呼び出し元を区別するために使用されますが、厳密モードではアクセスできません
(6) 関数
A.関数
内に同じ名前を使用することはできません。 B. 関数
の caller 属性に値を割り当てることはできません。 C. 環境オブジェクトを指定せずに関数を呼び出す場合、この値は代入されません。ウィンドウを指しますが、未定義の
を指します (7) オブジェクト
A. 同じ名前の 2 つのプロパティをオブジェクト
に含めることはできません B. 属性を変更する場合プロパティ [[writable]] が false の場合、サイレントに失敗する代わりに例外がスローされます。同様に、属性 [[configurable]] が false の属性を削除するために delete を使用する場合も、例外がスローされます
(8) delete
delete を使用して明示的に宣言された変数および関数を削除することはできません
2. 組み込みオブジェクトの変更
1.オブジェクト オブジェクト
(1) 継承関連メソッド: create()、getPrototypeOf()
(2) 属性関連メソッド:defineProperty()、defineProperties()、getOwnPropertyDescriptor()、getOwnPropertyNames() 、keys()
(3) 改ざん防止メソッド:preventExtensions()、isExtensible()、seal()、isSealed()、freeze()、isFrozen()
2.オブジェクト
(1) binding() メソッドを追加しました。
(2) 関数オブジェクトの属性呼び出し元を正規化します。これは、現在の関数を呼び出す関数への参照を指すために使用されます。
(3) プロトタイプが列挙不可能である
3. 配列オブジェクト
(1) 判定方法: obj かどうかを判定する静的メソッド Array.isArray(obj) を追加Array オブジェクトのインスタンス。
(2) Index メソッド: 指定した項目のインデックスを検索するための 2 つのメソッド、indexOf() と lastIndexOf() を追加しました。検索時の一致には一致 (===) を使用します。
(3) 反復メソッド: Every()、some()、forEach()、map()、filter() メソッドを追加しました。
(4) Reduce メソッド:reduce() メソッドとreduceRight() メソッドを追加しました。
4. 文字列オブジェクト
Trim() メソッドを追加しました。
5. JSON オブジェクト
ネイティブ JSON 組み込みオブジェクトを追加しました。
6. Date オブジェクト
Date.now()、Date.prototype.toJSON() などのメソッドを追加しました。
7. RegExp オブジェクト
ES3 では正規表現リテラルを使用する際に RegExp インスタンスを共有しますが、ES5 では正規表現リテラルを使用するたびに新しいインスタンスを作成する必要があります。 RegExp コンストラクターを使用するのと同じように、RegExp インスタンス。

PHP8.3发布:新特性一览随着技术的不断发展和需求的不断变化,编程语言也在不断更新和改进。作为一种广泛应用于网络开发的脚本语言,PHP一直在不断进步,为开发者提供更强大和高效的工具。最近发布的PHP8.3版本带来了许多期待已久的新特性和改进,下面让我们来看一下这些新特性的一览。非空属性的初始化在过去的PHP版本中,如果一个类的属性没有被明确赋值,它的值

深入解析PHP8的新特性,助您掌握最新技术随着时间的推移,PHP编程语言一直在不断演进和改进。最近发布的PHP8版本为开发者提供了许多令人兴奋的新特性和改进,为我们的开发工作带来了更多便利和效率。在本文中,我们将深入解析PHP8的新特性,并提供具体的代码示例,旨在帮助您更好地掌握这些最新的技术。JIT编译器PHP8引入了JIT(Just-In-Time)编

PHP8.1引入的新的Redis扩展随着互联网的快速发展,大量的数据需要进行存储和处理。为了提高数据处理的效率和性能,缓存成为了一个不可或缺的部分。而在PHP开发中,Redis作为一种高性能的键值对存储系统,被广泛应用于缓存和数据存储的场景。为了进一步提升Redis在PHP中的使用体验,PHP8.1引入了新的Redis扩展,本文将介绍这一扩展的新增功能,并给

php8新特性有JIT 编译器、类型推导、命名参数、联合类型、属性、错误处理改进、异步编程支持、新的标准库函数和匿名类的扩展等。详细介绍:1、JIT编译器,PHP8引入了JIT编译器,这是一个重要的性能改进,JIT编译器可以对一些高频执行的代码进行实时编译和优化,从而提高运行速度;2、类型推导,PHP8引入了类型推导功能,允许开发者在声明变量时自动推导出变量的类型等等。

CSS3的新特性一览:如何使用CSS3实现过渡效果CSS3作为CSS的最新版本,在众多新特性中,最有趣和实用的应该是过渡效果(transition)。过渡效果可以让我们的页面在交互时更加平滑、漂亮,给用户带来良好的视觉体验。本文将介绍CSS3过渡效果的基本用法,并附带相应的代码示例。transition-property属性:指定需要过渡的CSS属性过渡效果

go语言的新特性有:1、Go模块,用于管理Go语言项目的依赖关系;2、错误处理,增加了一个新的错误类型error,使得错误处理更加灵活和简洁;3、上下文包,用于在goroutine之间传递请求范围的值;4、嵌入,即一个结构体可以嵌入到另一个结构体中;5、同步包,更好地控制goroutine之间的同步和通信;6、错误值,更好地区分不同类型的错误;7、泛型,让开发者编写更灵活。

CSS3的新特性一览:如何使用CSS3实现水平居中布局在网页设计和布局中,水平居中布局是一项常见的需求。过去,我们经常使用复杂的JavaScript或CSS技巧实现此目的。然而,CSS3引入了一些新的特性,使得水平居中布局更加简单和灵活。本文将介绍一些CSS3的新特性,并提供一些代码示例,演示如何使用CSS3实现水平居中布局。一、使用flexbox布局fle

PHP8作为最新版本的PHP编程语言,引入了许多新的特性和改进,在底层开发原理方面做了一些重要的改变。本文将深入探讨PHP8的底层开发原理,并分析如何利用新特性提高代码性能和可靠性。首先,我们来了解一下PHP8的一些重要的底层开发原理。PHP8引入了JIT(Just-In-Time)编译器,这是一个动态编译器,可以将PHP代码即时转换为本地机器码,并在执行时


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック



