コンテンツにスキップ

JavaScript/文法

出典: フリー教科書『ウィキブックス(Wikibooks)』

JavaScriptの文法

[編集]

JavaScriptは、他のプログラミング言語と多くの類似点を持ちながらも、いくつか独自の特徴があります。ここでは、JavaScriptの文法の重要な特徴を紹介します。

類似点:

[編集]

C言語系の構文

[編集]

JavaScriptはC言語系の構文を採用しており、変数宣言、制御構造、演算子などがCやC++と類似しています。

// C言語風の変数宣言constnum=42;// 再代入しないので const を使用// C言語風のforループfor(leti=0;i<5;i++){console.log(i);}

関数

[編集]

関数も多くのプログラミング言語と似た方法で定義され、呼び出すことができます。ES6ではアロー関数(Arrow Functions)が導入され、より簡潔に関数を定義できます。

// 関数の定義(通常の関数)functiongreet(name){console.log("Hello, "+name+"!");}// アロー関数を使用した例constgreetArrow=(name)=>{console.log(`Hello, ${name}!`);};// 関数の呼び出しgreet("John");greetArrow("Jane");

条件分岐と繰り返し

[編集]

条件分岐(if-else)や繰り返し(for ループなど)も他の言語と同じように使用されます。

// 条件分岐constage=20;if(age>=18){console.log("成人です。");}else{console.log("未成年です。");}// forループfor(leti=0;i<5;i++){console.log(i);}

相違点:

[編集]

動的型付け

[編集]

JavaScriptは動的型付け言語であり、変数の型は実行時に決定されます。型を変更することもできるため、柔軟なコードを書くことができます。

constnum=42;// 数値型の値で初期化lettext="Hello";// 文字列型で初期化text=100;// 数値型の値を代入

オブジェクトとプロトタイプ

[編集]

JavaScriptはプロトタイプベースのオブジェクト指向言語であり、クラスの代わりにプロトタイプを使用してオブジェクトを拡張します。ES6以降はclass構文が導入され、より親しみやすくなりました。

// オブジェクトの作成constperson={name:"Alice",age:30,greet(){console.log(`Hello, ${this.name}!`);}};// オブジェクトのプロトタイプ拡張person.sayHello=function(){console.log("Hi there!");};

クロージャと無名関数

[編集]

JavaScriptではクロージャ(関数内から外部スコープの変数にアクセスする機能)や無名関数(匿名関数)がよく使われます。

// クロージャconstouterFunction=()=>{constx=10;constinnerFunction=()=>{console.log(x);};returninnerFunction;};constclosureFunc=outerFunction();closureFunc();// 10

非同期処理とコールバック

[編集]

JavaScriptは非同期処理を得意とし、Promiseasync/awaitを使用して非同期イベントをより直感的に扱うことができます。

// 非同期処理の例(Promise)setTimeout(()=>{console.log("Timeout completed.");},1000);// async/awaitの例constasyncFunc=async()=>{awaitnewPromise(resolve=>setTimeout(resolve,1000));console.log("Timeout completed.");};asyncFunc();

まとめ

[編集]

これらの相違点や特徴を理解することで、JavaScriptの強力な柔軟性と用途の広さが見えてきます。JavaScriptは、ウェブ開発、サーバーサイド開発、モバイルアプリケーション開発など、多様なコンテキストで活用されています。

close