Javascript は、ブラウザーによって動的に解析および実行できるインタープリタ型スクリプト言語です。 JavaScript 自体はブラウザーで直接認識できます。JavaScript インタープリターは JavaScript エンジンと呼ばれ、ブラウザーのデフォルトの部分です。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
JavaScript はインタプリタ型スクリプト言語です。Java や C# などのコンパイル済み言語とは異なります。ブラウザで認識される言語にコンパイルする必要はなく、動的に解析されて実行されます。ブラウザで。 (ブラウザ自体はこれを直接認識できます。JavaScript インタプリタは JavaScript エンジンと呼ばれ、ブラウザのデフォルトの部分です)
JavaScript の解析プロセスを紹介します。 JavaScript の解析プロセスを理解するには、まずいくつかの概念を理解します。
1. コード ブロック
JavaScript のコード ブロックは、<script> タグで区切られたコード セグメントを指します。 </script>
<script> console.log("这是代码块一"); </script> <script> console.log("这是代码块二"); </script>
JSはコードブロックごとにコンパイル、実行され、コードブロックはそれぞれ独立していますが、変数やメソッドは共有されます。
<script> console.log(str); //因为没有定义str,所以浏览器会出错,下面的不能运行 console.log("我是代码块一"); //没有运行到这里 var test = "我是代码块一变量"; </script> <script> console.log("我是代码块二"); //这里有运行到 console.log(test); //输出undefined,因为第一个代码块执行第一行代码的时候游览器报错,代码块中第一行下面的所有代码都没有执行。故test的定义了,但没有赋值。(为什么test定义了却没有赋值,因为变量申明的提升) </script>
上記のコードでは、コード ブロック 1 の実行時にエラーが報告されますが、コード ブロック 2 の実行には影響しません。これはコード ブロック間の独立性であり、コード ブロック 2 はコード 1 の変数 ブロック間の共有です
2. 宣言関数と代入関数
<script> function Fn(){ //声明式函数 console.log('我是声明式函数'); } var Fn = function{ //赋值式函数 console.log('我是赋值式函数'); } </script>
宣言関数と代入の違い関数は : JS のプリコンパイル期間中に、最初に宣言関数が抽出され、その後、JS コードが順番に実行されます。
コンパイル前期間と実行期間:
実際、JS 解析プロセスは 2 つの段階に分かれています。コンパイル前期間 (前処理)と実行期間。
プリコンパイル中に、JS はこのコード ブロック内で宣言されたすべての変数と関数を処理しますが、現時点では宣言関数のみが処理され、変数は宣言されるだけで処理されないことに注意してください。割り当て。
<script> Fn(); //执行结果:"执行了函数2",同名函数后者会覆盖前者 function Fn(){ //函数1 console.log("执行了函数1"); } function Fn(){ //函数2 console.log("执行了函数2"); } </script>
<script> Fn(); //执行结果:"执行了声明式函数",在预编译期声明函数及被处理了,所以即使Fn()调用函数放在声明函数前也能执行。 function Fn(){ //声明式函数 console.log("执行了声明式函数"); } var Fn = function(){ //赋值式函数 console.log("执行了赋值式函数"); } </script>
//代码块一 <script> console.log(str);//浏览器报错,但并没有输出信息 </script> //代码块二 <script> console.log(str);//控制台输出"undefined" var str = "aaa"; </script> //js在预处理期对变量进行了声明处理,但是并没有进行初始化与赋值,所以导致代码块二中的变量是unfiened的,而代码一中的变量是完全不存在的,所以浏览器报错。
次の例を見てみましょう
<script> Fn(); //浏览器报错:"undefined" </script> <script> function Fn(){ //函数1 console.log("执行了函数1"); } </script>#??????
概要:
ステップ 1. 最初のコード ブロックを読みます。 ステップ 2. 構文分析を実行します。エラーがある場合は、構文エラー (括弧の不一致など) が報告され、ステップ 5 に進みます。はいの場合は、ステップ 3 に進みます。 ステップ 3. var 変数と関数の定義に対して「コンパイル前処理」を実行します (正しい宣言のみが解析されるため、エラーは報告されません)。 ステップ 4. コード セグメントを実行し、エラーがある場合はエラーを報告します (変数が未定義であるなど)。 ステップ 5. 別のコード セグメントがある場合は、次のコード セグメントを読み取り、ステップ 2 を繰り返します。 ステップ 6. 終了。 [関連する推奨事項:以上がJavaScriptは何によって解析されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

去掉重复并排序的方法: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ヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

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

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック



