PHP/JavaScriptの記事一覧
JavaScriptのプロパティは、オブジェクトリテラルや. (ドット)表記などで簡単に定義することができます。しかし書き込みを制御したいときなどもっと細やかな設定が必要なときは、属性についての知識が必要になります。
【JavaScript】 JSにおけるprivate変数と定義のひな型パターンで従来のオブジェクトインスタンスでのprivate変数定義について紹介したので、ここではclass構文での定義をお伝えします。
thisは読み込み専用のため、上書きできません。しかしプロパティ追加はできます。『上書きでないのに、追加できるってどういうこと???』と思った方は、読んでください。
オブジェクト指向プログラミングにはカプセル化という概念があります。JavaScriptには他の言語のようなカプセル化に必要な構文がないのでクロージャの特徴を活かした手法でカプセル化を実現します。
自作のオブジェクトを共有ライブラリとして外部に公開するときなど、他者にオブジェクトを変更してほしくないときもあります。タイプミスが頻繁で、予定にない新規プロパティが増えていて困るという人(僕)もいます。そんなとき、Object.freeze()またはObject.seal()を使用します。
JavaScriptはオブジェクトにプロパティを追加する簡単な構文がありますが、それとは別にObject.defineProperty()というメソッドが用意されています。このメソッドの使用目的と特徴についてお伝えします。
JavaScriptでforループの解説をしているテキスト等カウンターの変数名にiを使っているのはどうしてなのかとforループ内でクロージャを定義するときに気にしておくこと
JavaScriptにはWeakMapというオブジェクトが標準で用意されています。これを使用しなくても他の方法で間に合ってしまうので、知らない人が多いと思います。WeakMapはオブジェクトをキーとして、データの格納や取得をおこないます。
プログラム言語の関数とは一連の処理をひとまとめにして、簡単な記述で何度でも呼び出せるようにしたもの。JavaScriptにもありますね。しかし似たような機能でメソッドというものがあり、こちらも前述のことができます。では関数とメソッドの違いは親オブジェクトをthis値として受け取るかどうかです。
プリミティブはメソッドを持っていない直接的なデータですが、プログラムコード上であたかもプロパティを参照しているように記述することができます。その理由はラッパーオブジェクトに変換しているからです。
リテラルとは、プログラムコード上でデータを表現する文字列の集まりです。プリミティブとはJavaScriptエンジンの内部で割り当てられたデータのうち、数値そのもののやテキストそのものといった、最小単位のデータを指します。オブジェクトは、プリミティブやオブジェクトを指し示すプロパティを持つデータ構造です。
JavaScriptにはwith構文というものがあります。あまり聞きなれない構文ですが、使用することでコードを簡潔に記述できます。ただし非推奨です。
JavaScriptは反復処理を非同期におこなう非同期イテレータという機能があります。そこで通常のイテレータとの違いを含めて非同期イテレータについてお伝えします。また発展形である非同期ジェネレーターについてもお伝えします。
for-await-ofはfor-ofと基本的には同じ動作をしますが、受け取ったデータがPromiseオブジェクトの場合は、履行されるのを待ち、結果をループの値として返します。