PHP/JavaScriptの記事一覧
個人的なプロジェクトでよくあることだが、機能を付け足していくうちにファイルが増えていき、関数が行方不明になることがあります。IDEを使っているので探すのは簡単なはずだけど、なぜか見つからなかったりします。そんなとき、関数の定義されているファイルをプログラムの実行中に特定できたら、場合によっては便利な気がするので調べてみました。
複数の数値を区切り記号なしで文字列として出力したい。そんなときはどうすればいいのでしょうか。今回は、一般化可変長整数という考え方で実現してみます。
日本語が混ざった文字列をドメインとして使用する場合、Punycodeという規格で変換され文字をドメインとして登録します。今回僕は、Punycode変換ツールを作成するためにPunycodeについて調査してみました。
JavaScriptのオブジェクトにプライベートなプロパティが実装されることを待ち望んでいる人が多く存在していました。その声に押されたのか、プライベートプロパティが実装されるようです。そこでプライベートプロパティについて解説してみます。
ブラウザのtextarea要素でテキストが選択されたとき、何らかの処理をおこないたいケースが時々あります。今回は、その方法についてお伝えします。
二つの文字列の相違点を知りたいときUNIX系ならdiffなどのコマンドが使用できます。しかしWindowsにはそんなコマンドありません。そこでブラウザでの文字列比較ツールの作成を最終目的として、JavaScriptでのテキスト差分検出を実装してみます。
JavaScriptには標準でProxyオブジェクトが定義されています。「これって何だ?」ということで、Proxyオブジェクトの使い方について調べたので解説してみます。また、普通とは異なる動きをするProxyオブジェクトの仕組みについてもお伝えします。
JavaScriptにはReflectというオブジェクトがあります。このオブジェクトはECMAScriptで標準組み込みオブジェクトとして定義されているのに、非常にマイナーです。そこで今回はReflectオブジェクトの使い方と存在意義についてお伝えします。
JavaScriptでプログラムをしていると非同期処理を頻繁に使用します。そのため非同期処理の知識が必要なのですが、知らなくてもコードは組めます。だからあまり気にしていなかったのですが、同じような言葉に並列処理というものがあることに最近気が付きました。そうなると違いが気になってきます。そこで並列処理と非同期処理および同期処理の違いについて、調べてみました。
JavaScriptを学んでいるとコールバックとイベントリスナーという言葉を耳にします。どちらも関数で、メソッドの引数として用いられているので違いが判らず、戸惑ってしまいます。そこで両者の違いを調べてみました。
SharedArrayBufferを使用すると異なるスレッド間で同じメモリ領域を共有することができます。使い方によっては効率の良いアプリケーションを作成できます。しかし脆弱性を指摘されていることから、ブラウザでの使用に制限がかかっています。
仕様書(ECMAScript)上では、JavaScriptは同期/非同期に関係なく、一つのスレッドで動作することになっていて、並列処理を行う機能は定義されていません。しかし現行のブラウザの多くは、Web WorkerというAPIが組み込まれていて、これを利用することで並行処理を実現することができます。この記事は、実際使ってみたら、とても簡単に並列処理できたよというお話です。
ブラウザなら入れ子となったタグをDOMで簡単に取得できます。しかしNode.jsなどのブラウザ以外のJavaScriptや、わざわざDOMに展開するまでもない場合などは、正規表現などでテキストのまま処理したいケースがあります。今回は、その方法を考えてみました。
JavaScriptのreplaceメソッドを使用すると、文字列の一部を置換することができます。このreplaceメソッド内で外部ファイルを参照するなど、非同期メソッドをawaitキーワードで使用したいことがあります。しかしエラーが出て処理が止まってしまいます。どうしてでしょうか?対処方法はあるのでしょうか?
JavaScriptには NaNという値があります。数値に関する値のようですが、少しわかり難い面があります。そこでここでは NaNについて少し掘り下げてみます。
JavaScriptでは計算をするときなど、状況によってはオブジェクトをプリミティブ値に変換します。その際、[Symbol.toPrimitive]を参照します。通常のオブジェクトには[Symbol.toPrimitive]が定義されていません。このようなケースでは、toStringメソッドとvalueOfメソッドが順番に呼び出されます。呼び出される順番は状況により変化しますが、概ね、文字列が必要なときはtoStringが、数値が必要な時はvalueOfが先に呼び出されます。