const userObject = { userName: 'John', age: 20, city: 'New York' } const userObjectCopy = { ...userObject } console.log(userObjectCopy)
はじめに 下記画像のように、「Aボタン」をクリックすると「A画面」が、 「Bボタン」をクリックすると「B画面」が表示されるような 画面切り替えをJavaScript、HTML、CSS を使って作成していきます。 JavaScript、HTML、CSS ファイルの作成 ますはJavaScript、HTML、CSS のファイルを同じ階層に作成します。 HTML の作成 ヘッダーの作成 次に index.html のヘッダーを作成していきます。ヘッダーの内容については今回詳しくお伝えしませんが、先程作成したCSSファイルとJavaScriptファイルに連携できるようにしています。 <link rel="stylesheet" href="./style.css" /> で style.css に連携。 <script src="./script.js" defer></script> で scr
はじめに おはようございます、しなもんです。 jQuery、使われていらっしゃいますでしょうか。 最近では、Vue.jsやReactなどが登場したことにより やれ「jQueryは時代遅れだ」だの「いや、まだ使えるから学ぶべき」だの、 様々な意見があるライブラリだと思います。 なのでこの記事では、結局jQueryは時代遅れなのか?という問に沿って様々な視点でまとめていこうと思います。 今一度jQueryについて知る jQueryとは、JavaScriptを簡単に扱えるライブラリとして2006年にリリースされました。 当時は使いにくかったJavaScriptのAPIを簡略化するだけでなく、短いコード量で動くこと、当時バラバラだったブラウザによる挙動の違いを吸収できることとして人気を博しました。 現代ではどうか? 先程述べた通り、jQueryは2006年にリリースされています。 当時はまだJav
JavaScriptにはだいぶ前からSetオブジェクトがありましたが、何故か集合演算は全く定義されておらず自力で実装しなければなりませんでした。 その後、まあ不便だねってことでSet Methods for JavaScriptというproposalが提出されました。 実装は珍しくSafariが最も早く、2023/09/18のSafari17から対応しました。 その後2024/02/21にChrome122、そして2024/06/11にFirefox127で実装されたことにより、主要全ブラウザで集合演算が使用可能になりました。 複数環境で実装されたことから、無事ES2025としてStage4、つまり上がりになりました。 ということで使い方を紹介するよ。 Set.prototype.intersection() 要素と引数の、両方に含まれる値を返します。 new Set([1, 2, 3,
ウェブブラウザのバージョン間の違いを無効化するJavaScriptライブラリ「Polyfill.io」が、2024年2月のプロジェクトオーナー変更後、マルウェアが混入されてサプライチェーン攻撃に利用され、10万以上のサイトに影響が出ています。 Polyfill supply chain attack hits 100K+ sites https://sansec.io/research/polyfill-supply-chain-attack 「Polyfill.io(polyfill.js)」はアンドリュー・ベッツ氏が開発したJavaScriptライブラリです。ウェブブラウザのバージョン間で機能の違いがあると開発時に苦労しますが、Polyfill.ioを利用すれば、新しいバージョンにしかない機能を古いバージョンで利用できるようになるため、バージョンの違いを気にすることなく開発を進めること
はじめに 皆さんはプログラミング言語を作ったことがあるでしょうか? おそらく大抵の方は「ない」というのが正直なところなのではないかと思います。背景には、おそらく「プログラミング言語を作るって難しそう」という先入観があるのではと筆者は踏んでいます。 プログラミング言語とは、コンピューターに指示を与えるための特別な言語です。私たちが日常で使う言語と同じように、プログラミング言語にも文法やルールがあります。そして、この言語を理解し実行するのが「処理系」と呼ばれるプログラムです。 しかし、実はプログラミング言語の処理系(インタプリタ)を作ることは非常に簡単なことです。小さなOSを作ることに比べても、ちゃんと動くWebサービスを作ることに比べても本当に簡単です。 というわけで、この記事では「プログラミング言語」を作るための導入として「数式言語」のインタプリタを作ってみます。数式言語とは、数学の式を扱
前回の記事では、JavaScript の実行エンジン V8 の JIT 出力コードを読んでみました。記事は M1 Mac 上で動かした結果でしたので、ARM アーキテクチャのアセンブラを読むことになりました。 さてそんな ARM アーキテクチャですが、最近の ARM には FJCVTZS という JavaScript 専用の機械語命令があるのをご存知でしょうか?CPU に、特定の言語(それもコンパイラを持たない JavaScript)専用の命令があると知ったとき、私は大いに驚きました(過去にも Jazelle みたいなものはありましたが) 今回は、この FJCVTZS 命令について、実際にどれだけ効果があるのか、V8 をビルドしながら調べてみましょう。 FJCVTZS 命令とは? FJCVTZS 命令は、Arm v8.3 から導入された JSCVT 命令の一つで、JavaScript の言
はじめに JavaScript初学者を抜けたあたりの方にむけて、便利な記法や関数、その注意点について紹介します。 初歩的な文法やデータ型などの知識は前提として解説を省きます。 JavaScriptの巨大なテーマとしては非同期処理などもあるのですが、巨大すぎるために本稿では割愛させていただきます。 let/constの使い分けについて 変数は不変なconstおよび可変なletを利用することができます。原則的にはconstを使い、再代入が必要な個所のみletを使うのが標準的です。 letを利用している時点で 「処理のどこかで再代入される」 と処理内容の推論を働かせてコードを読む人が多いと思います。このようなコードの読み方をするという前提を踏まえてコードの可読性を高めるうえでも、再代入されるかされないかを意識してconst/letを使い分けることが重要です。
はじめに 参考記事を読みながらjqueryで作成された「もっと見るボタン」を実装したのですが、理解のために自分でJavaScriptのコードに置き換えてみました。 以下のコードを読んで、「nth-child以外でわかりやすく書けないか?」と考えたことがきっかけでした。 (comment-listの6番目以降の要素に対してclass属性is-hiddenを追加するっていうのはわかったけど...) 仕様 イベントアプリの詳細ページ内でユーザーから送信されたコメントを表示する コメントが6件以上の場合に「もっと見るボタン」を表示する 「もっと見るボタン」がクリックされるか、コメントが5件以内の場合にボタンを非表示にする。 コメントはページ内に直近で投稿された10件まで表示する。 View 今回説明の関係上、Railsのビューに関する説明は省略させて頂きます🙏 <div class="comme
map 配列を新しく作るとは 記事を書いたきっかけ Javascriptでmapを使ったループをさせる方法の書き方を勉強しているときに新しく配列を 作るという言葉の意味がしっくりとイメージをつかめていなかったので記事を作ることにしました! 挙動を確かめるためのコード const numbers = [1,2,3,4]; const double = numbers.map(( (value) =>{ return (value * 2); })) console.log(numbers); console.log(double); ここから分かったこと mapで配列を生成したときにはmapを使う際のもとになった配列とは参照している先が違うこと mapで配列を新しく生成したときに(ここではdouble)元の配列(ここではnumbers)の配列の中身に影響を及ぼさないこと ⇒今回は配列をループ
Chrome の JavaScript はとても高速なことでも有名ですが、その実行エンジンは V8 と呼ばれます。V8 自体は独立したモジュールであり、Node.js 等にも使われております。 V8 が JavaScript を高速に実行する技術の一つが JIT (Just In Time) コンパイルです(一般的に JIT と呼ばれます)。これは、そのまま実行すると遅い JavaScript を実行中にリアルタイムに直接マシンコードに変換し(これが Just In Time と呼ばれる所以です)、途中からそのコードに入れ替えて実行することで高速化を達成しています。特に何度も実行される関数で効力を発揮します。 JIT という名前は聞いたことがあろうとも、実際に JIT がどのようなコードを実行しているのかを確認する機会は滅多にないでしょう。この記事では、実際に V8 の JIT の出力を確
数値や日付をさまざまな形式の文字列に! toLocaleString()を使ってスマートに変換しよう ウェブアプリケーションなどでは外部のAPIからデータを取得して表示することがあるでしょう。しかしながら、APIの値を必ずしもそのまま表示せず、ユーザーにとって分かりやすい文字列に加工することもあります。たとえば、数値をカンマ区切りにしたり、日付データを特定のフォーマットに変換したりといったことはみなさんも経験があるのではないでしょうか? そのような数字や日付を変換するのに便利なのが、JavaScriptのtoLocaleString()メソッドです。このメソッドを使うことで、数値や日付をさまざまな形式に変換できます。この記事では、toLocaleString()メソッドの使い方と、その応用例を紹介します。 サンプルを別ウインドウで開く コードを確認する toLocaleString()メソ
今回は、Ajaxとそれに伴って学んだ同一オリジンポリシー(SOP)についてアウトプットしていきます。 Ajaxとは JavaScriptからHTTP通信ができるオブジェクト XMLHttpRequest を利用し、サーバ通信を行う技術のこと。 非同期でサーバとデータの通信を行うのでユーザビリティが向上するらしいです。 また、ページの遷移や再読み込みをしないで、DOMを書き換えて表示を変化させるため、処理スピードも早くなります。 Ajax通信の準備 htmlファイル 実装させたい機能に応じて作っておきます。 JSONファイル データフォーマットの一つ。Ajaxを用いたデータの送受信に使われており、今回もこちらを使用していきます。 昔はXMLHttpRequestオブジェクトの名前にもあるXMLが主流だったらしいけれど、最近はJSONに代わってきたとのこと。 この中に、オブジェクトなどの引っ張
はじめに 仕事で作成しているBlazorのアプリケーションで、Handsontableを使用して一覧表を表示しています。 検証作業を実施している同僚から、2台のPCで同じ画面を表示した際に一覧表を表示する処理を実施すると、後から起動したPC側に一覧表が表示され、本来表示されるPC側には何も表示されないとの報告を受けました。 土日の休日を使って解決策を見つけることが出来たので、備忘録として記事に残しておきます。 問題1 現象 会社では複数PCが使用できますが、自宅ではPC1台です。 そこで、違うブラウザChromeとEdgeで同じ現象が出るか試してみました。Visual Studio上で Chromeを起動しておき、後からEdgeを起動して、一覧表を表示する処理を実施するとEdge側に一覧表が表示されました。 これなら Visual Studio上から デバッグ も可能で調査が進みます。 調
Web制作の技術は日々進化しており、会社やプロジェクトによっては昨今の環境に適さない書き方をしているケースも時折見受けられます。 そこで今回は「2024年のWeb制作ではこのようにコードを書いてほしい!」という内容をまとめました。 質より量で、まずは「こんな書き方があるんだ」をこの記事で伝えたかったので、コードの詳細はあまり解説していません。なので、具体的な仕様などを確認したい方は参考記事を読んだりご自身で調べていただけると幸いです。 1. HTML 画像周りはサイトパフォーマンスに直結するので、まずはそこだけでも取り入れていただきたいです。また、コアウェブバイタルやアクセシビリティも併せて理解しておきたい内容です。 Lazy loading <img>にloading="lazy"属性を付けると画像が遅延読み込みになり、サイトの読み込み時間が早くなります。
元フルスタックエンジニア(死語)をやらせていただいていたものです。 JavaScript(TS)周りの進歩が凄く、あまりにもついていけていなかったので、気になったワードを片っ端から整理してみました。 それぞれに対する説明の正しくないものが含まれてしまっている可能性があります。 そんなところを見つけたときは優しく教えてくださると助かります。 各ツールの詳細というよりは、それぞれがどんな役割のものなのかを記載しています。 この記事が誰かの助けになれば幸いです。 調査・分類した言葉(技術)たち Hono Bun Deno Biome Vite Webpack Turbopack esbuild Babel SWC Prisma まず上記に上げたものが、どういった機能を持つものなのかもわかりませんでした。 それを整理すると以下になるようです。 JavaScript Runtime Deno Bun
ソースコードを共有してみんなに見てもらう機会があるでしょうか。そんな時、せっかく見てもらうなら、美しく読みやすいコードを見てもらいたいと思うものです。今回紹介するJavaScript製のツール「Carbon」を使うと、手軽にソースコードを美しい画像に変換して共有できます。 ソースコードを画像に変換するJSライブラリ「Carbon」 見栄えの良いソースコードを共有しよう 昨今、プログラマーであれば、誰しも自分の書いたソースコードを誰かに見てもらう機会があります。プログラミングに関するコラムを書いたり、作成したライブラリの告知のためにSNSで共有したり、プレゼンテーションでプログラムのコードを解説したりと、みんなに見てもらうという場面が多くあります。 そんな機会に、より美しく見栄えの良いソースコードを見せたいと思うことでしょう。今回紹介するJavaScriptのライブラリ「Carbon」を使う
{ function a() { console.log("aaaaaaaaaaaaaaaaaaaa"); } const b = () => { console.log("bbbbbbbbbbbbbbbbbbbb"); }; a();/* aaaaaaaaaaaaaaaaaaaa */ b();/* bbbbbbbbbbbbbbbbbbbb */ } a();/* aaaaaaaaaaaaaaaaaaaa */ b();/* ReferenceError: b is not defined */ 以上のように、ブロック内で定義されたアロー関数は外では利用できないことがわかりました。 追記:2024-04-24 直前の部分について次のようなコメントをいただきました。 ブロック外で使用できないのは「ブロック内で定義したアロー関数」だからではなく、「ブロック内でブロックスコープであるconst
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く