JS の中括弧には 4 つの意味関数があります
セマンティクス 1、複合ステートメントを整理します。これは最も一般的なものです
if( 条件 ) {
//...
}else {
//...
}
for() {
//...
}
セマンティック 2、オブジェクト リテラル宣言
var obj = {
名前 : 'jack',
年齢 : 23
}; >
セマンティック 3、関数または関数リテラルを宣言
}
var f2 = function(){
//...
}
f1 と非 f2 の違いは、前者が構文解釈期間にあり、後者が実行時にあることです。違いは、関数を呼び出すコードが関数定義の後にある場合は違いがありませんが、関数を呼び出すコードが関数定義の前にある場合は f1 を呼び出すことはできますが、f2 はエラーを報告して、その旨を通知します。 f2は定義されていません。
セマンティクス 4、構造化例外処理の構文シンボル
}catch( ex ){
//...
}やっと{
//...
}
ここの中括弧と一致するステートメント (意味 1) の間に違いがあります。中括弧内のステートメントが 1 つだけの場合は、if/else/ で中括弧を省略できます。 for など。ただし、try/catch/finally は省略できません。
私は長い間次のコードに苦労していました
不可解なのは、なぜ [].constructor がこのように書かれているのにエラーを報告しないのかということです。 1 つは、 の直接の値を取得したいコンストラクターです。 1 つはオブジェクトで、もう 1 つは配列の直接値を取得したい単なるコンストラクターです。
もちろん、受信する変数を追加してもエラーは発生しません
var c = {}.constructor;
と同じ状況var fn = function(){}()、エラーは報告されません。
実際に問題を引き起こしているのは js の「ステートメントの優先順位」です。つまり、{} はオブジェクト リテラル (セマンティック 2) や宣言された関数のセマンティックではなく、複合ステートメント ブロック (セマンティック 1) として理解されます。 (意味3)。
function(){}()、中括弧は複合文として理解されます。当然、前の function() 宣言関数の構文は不完全であるため、構文解析中にエラーが発生します。
{}.constructor では、中括弧は複合ステートメントとして理解され、中括弧の後にドット演算子が続きます。ドット演算子の前に適切なオブジェクトがない場合は、当然エラーが報告されます。
(function(){})(), (function(){});//強制的に関数として理解される (意味論 3)、「Function ()」は関数の実行を意味します。つまり、関数は宣言の直後に実行されます。
({}).constructor //({}) は、中括弧をオブジェクト リテラルとして強制的に解釈します (意味 2)。「Object.xx」は、当然のことながら、オブジェクトのメンバーを取得することを意味します。以下のドット演算子は正常に実行できます。

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

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

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

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

ホットトピック



