ビルドサイズ限界まで絞りたい人向け。 あらゆる環境で実践するものではないが、知ってたら簡単に避けることができるのもあるので知っておくと便利なTIPS書いていく。 基本ポリシー 未使用コードはビルド時に全部落とす。 何が未使用コードで、何が定数かわかるようなインターフェースを人間が心がける。 用語 Dead Code Ellimination(DCE) Rollup や Terser で、未使用コードを削除すること
ビルドサイズ限界まで絞りたい人向け。 あらゆる環境で実践するものではないが、知ってたら簡単に避けることができるのもあるので知っておくと便利なTIPS書いていく。 基本ポリシー 未使用コードはビルド時に全部落とす。 何が未使用コードで、何が定数かわかるようなインターフェースを人間が心がける。 用語 Dead Code Ellimination(DCE) Rollup や Terser で、未使用コードを削除すること
どうも、まさとらん(@0310lan)です! 今回は、JavaScriptを使ってとにかく遊んだり楽しんだりできるインタラクティブなWebサービスやツールを厳選してご紹介します。 ゲーム体験をしたり、アート作品を作ったり、JavaScriptで開発されたユニークなサービスを利用してじっくりと遊んでみましょう。 Webの楽しい世界にご興味ある方は、ぜひ参考にしてください! ■リアルタイムにコードを書いて戦うオンライン対戦ゲーム 【yare.io】 世界中のプレイヤーと1対1で戦うゲームなのですが、その戦い方はJavaScriptのコードをリアルタイムに書き換えながら自機を操作するというのが大きな特徴です。 見た目は簡素なシューティングゲームですが、実はかなり奥深いストラテジーゲームみたいな要素が詰まっています。 ゲームの大まかな流れとしては、以下のとおりです。 JavaScriptで自機を制
正規表現とは そもそも「正規表現」とは何でしょうか? それを理解するために、コマンドプロンプトや「Microsoft Word」などにおけるワイルドカードを見直します。 ワイルドカードとは何か? 「ワイルドカード」とは、もともとトランプなどのカードゲームにおける「万能カード」を意味しています。転じて、検索などのグロブパターンに使用される文字をワイルドカードといいます。Windowsのコマンドプロンプトでファイル名を指定するときのアスタリスク(*)とクエスチョン(?)が代表的なワイルドカードで、それぞれ「任意の文字列」「任意の1文字」を意味します。 「*.txt」「?.txt」のように指定すると、それぞれ「<任意の文字列>.txt」「<任意の1文字>.txt」に一致するファイル名を指定できます。ワイルドカードを使うことで、複数のファイル名に共通するパターンを指定することができ、ファイルの検索
ECMAScript Annex Bおよび関連する仕様を読みます。 おことわり 言うまでもありませんが、ここで説明されている機能は使わないようにしましょう。 筆者がJavaScriptを書き始めたのは2005年頃で、その後2010年代は実質的な空白期間でした。そのため本記事に含まれる歴史的背景の説明は、2005年頃の筆者が学んだ内容に加えて、当時の資料を遡って調査した結果に基づいて記載されています。できる限り信頼性の高い情報を見つけた上で記述するよう心がけましたが、当時常識だった知識の欠落等により不正確な記述になっている部分があるかもしれません。もし誤り等があったら指摘いただけると嬉しいです。 現在のzennでは <sub></sub> や <ins></ins> は描画されていませんが、心の目で下付き文字や下線装飾に読み替えてください。 ECMAScript Annex B とは ECM
ずいぶん昔ですが、iPhoneのsafariブラウザで入力フォームの「input type='file'」を使って撮影した画像をアップロードできるようになりました。 ・・・が、実はあまりこの機能を使っておらず、普通にアップロードできるだろうとたかをくくっていたところ、いくつかの問題が発生していたので、それらの対処方法を書いておきます。 iPhoneのsafariブラウザのファイル(写真)アップロード問題点 1. 画像が回転してしまう。 2. 撮影した画像はアップロードできるが、フォトライブラリの画像をアップロードしようとすると、何故かファイルが正常にアップロードできない。 3. 撮影画像アップロードと、フォトライブラリアップロードは、ファイルの拡張子が変わる(2018.6.2現在 , iOS11.3.1) この機能を使った事がある人であれば、どれもネットで検索すれば対応方法は出てきますが、
はじめに こんにちは。ご無沙汰しております。脆弱性診断員の百田です。 今回は、実際に脆弱性診断をしていたときに考えていた、そこまで重要でもないと思われることをここに吐き出します。 その内容は、題名にもあるとおりレスポンスヘッダの「Access-Control-Allow-Origin」に設定される値についてです。 注意点として「Access-Control-Allow-Origin」に設定される値自体はどうでも良くないです。重要です。 理由がよくわからない場合は以下の記事をご覧いただければと思います。 https://developer.mozilla.org/ja/docs/Web/HTTP/CORS では、そこまで重要でもないと思ったのは何なのか……。それは「Access-Control-Allow-Origin」に以下の値が設定されていた場合、どちらがセキュリティ的にマシなのか?とい
2021年11月18日 JavaScript いつも何気なく使っていたコードをふと調べ直してみると、知らないうちに「Deprecated(非推奨)」と書かれている…なんてこともありますよね。今回はJavaScriptを書いていて出くわした非推奨となったものをいくつか紹介します。 ↑私が10年以上利用している会計ソフト! document.write 画面にテキストを表示する document.write 。JavaScriptの勉強を始めて最初に書いたコードがこれだったという方もいるのではないでしょうか?これはブラウザーのレンダリングに悪影響が出たり、DOMへの影響などを考慮して「強く非推奨」とされています。 これまでの記述例: document.write('やっほーい'); 解決策1:textContent や innerHTML を使う 代わりに文字列を書き換える textConte
サイバーセキュリティツールベンダーのPortSwiggerは、2021年10月5日(米国時間)、セキュリティ研究者s1r1us氏のブログで2021年9月に発表された調査報告を紹介した。広く使われている18のJavaScriptライブラリに、プロトタイプ汚染の脆弱(ぜいじゃく)性があることが明らかになったという。 プロトタイプ汚染はプロトタイプをベースにしたJavaScriptオブジェクトの構造を標的にした攻撃手法を指す。 Apple.comにもこの脆弱性あり s1r1us氏とBlackFan氏を中心とした研究チームが調査を行い、18のJavaScriptライブラリにプロトタイプ汚染の脆弱性が80件以上存在し、これらの脆弱性の影響を受けるWebサイトが1000以上あることを発見した。 例えばApple.comや、「Jira Service Management」「HubSpot Analyt
Skip to the content. モダン JavaScript チートシート 画像クレジット: Ahmad Awais ⚡️ イントロダクション 動機 このドキュメントはモダンなプロジェクトでよく見られる JavaScript のチートシートと最新のサンプルコードです。 このガイドは読者に JavaScript をゼロから教えるものではありません。 基礎知識は持っていて、モダンなコードベースに慣れる(例えば React を学ぶ)のに苦労している開発者を助けるためのものです。 説明の中で JavaScript の諸概念が使われています。 また、議論の余地のあるポイントについてときどき個人的な tips を載せますが、その際はあくまでも個人的なおすすめであることを述べるように気をつけます。 メモ: ここで紹介されている概念のほとんどは JavaScript 言語のアップデート( ES2
モダンJavaScriptの基本からTypeScriptの実践的な内容まで、Reactを一から学び、しっかりと身につけたい人にお勧めの解説書を紹介します。 Reactを身につける上で、これだけは知っておいた方がよいというJavaScriptの知識も分かりやすく解説されており、基礎からしっかり身につきます。 本書はUdemyのReactコースで最高評価を獲得し、ベストセラーでもある著者がモダンJavaScriptの基本からTypeScriptの実務で役立つ内容まで詳しく解説した解説書です。著者が開催している勉強会で初学者がReactのつまづきやすい挫折ポイントをやさしく、分かりやすく導いてくれる解説書です。 発売して間もないですが、Amazonでは早くも高評価がたくさんついています。
私がJavaScriptが好きになったきっかけのひとつは、JavaScriptにおける関数は第1級オブジェクトだということを知ったことだったと思います。要はJavaScriptでは関数を変数に代入したり、関数の引数や戻り値に関数を使ったりできるというわけですね。そのためJavaScriptではオブジェクト指向プログラミングだけでなく、関数型プログラミングも可能となっています。 数年前からエンジニア業界では、関数型プログラミングがオブジェクト指向プログラミングに変わる次のプログラミングスタイルとして注目されているそうです。ただ、私の場合は「勉強しよう」と意識して取り組んでいたわけではなく、JavaScriptに触れているうちに自然と関数型的な考え方に引き寄せられていたという感じでした。個人的に、関数に関数を渡していくという考え方が、オブジェクト指向的な考え方よりしっくりくると感じたのです。
対象読者と目的 非同期処理の実装方法は知っているが、仕組みを詳しく知らないのでベストプラクティスがわからないときがある 実行順序の保証がよくわからないので自信をもってデプロイできない変更がある より詳しい仕組みを理解することでより計画的な実装をできるようになりたい という動機で書かれた記事です。同様の課題を抱える人を対象読者として想定しています。 目次 実行モデルとタスクキュー Promise async/await AbortSignal, Event, Async Context WHATWG Streams / Node.js Streams (執筆中) 未定 入門記事へのリンク プロミスの使用 - JavaScript | MDN Promise, async/await (現代の JavaScript チュートリアル) JSの初心者にPromiseとasync/awaitの使い方
JavaScriptはシングルスレッドであることが知られています。そして、Promiseを用いた非同期処理ができることは周知の事実です。では、なぜシングルスレッドで非同期処理ができるのでしょうか? その点について、非同期処理のための2種類のQueuesについて触れつつ、コードベースでの説明も行います。
Vite(ヴィート=フランス語で「速い」の意味)は2020年に発表された新しいフロントエンドのビルドツールです。 開発者がVue.jsの作者であるEvan You氏であるため、Vue.jsのツールであると誤解されることもありますが、プレーンなJavaScript(バニラJS)からVue.js・React・Svelteといった流行のフレームワークまで、さまざまな環境で利用できる汎用的なツールです。 位置付けとしてはwebpackのようなバンドラーと呼ばれるものに近い存在ですが、それだけではありません。この記事では、Viteを導入してプレーンなJavaScriptから、TypeScript+Vue.js・Reactといったフレームワークまで、快適な開発環境を手に入れる方法を紹介します。 この記事で紹介すること: Viteの特徴と基本の仕組み 基本の使い方 Vite + SCSS Vite +
JavaScript入門書のJavaScript Primerのウェブ版をアップデートして、2021年の最新の仕様であるES2021に対応しました。 JavaScript Primerのウェブサイトから閲覧できます。 ウェブサイト: https://jsprimer.net/ リリースノート: Release 3.0.0: ECMAScript 2021対応 · asciidwango/js-primer 対応のサマリIssue: ES2021の対応 · Issue #1220 · asciidwango/js-primer JavaScript Primerについて JavaScript Primerは、これからJavaScriptを学びたい人が、ECMAScript 2015以降をベースにして一からJavaScriptを学べる書籍です。 ECMAScriptの仕様は毎年アップデートされ
タップ・クリックするだけで他のデバイスと簡単にファイルを共有できるAirDropをJavaScriptだけで再現したその仕組みを紹介します。 同一WiFiで利用でき、iOSやmacOSだけでなく、AndroidやWindowsでもあらゆるファイルを簡単に共有できます。 How One Developer Recreated AirDrop Using Just JavaScript by Abdisalan 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに 新しいテクノロジーの使用 これがないとWebRTCは使用できない どのようにデータを保護しているか? 使い慣れたUIとUX デバイスがWebRTCをサポートしていない場合はどうなりますか? イベント駆動型のコードスタイル 自身でコードを調べる 終わりに はじめに iP
こんにちは!小田島です。コロナ第二波が来ましたが、もともと出不精気味なので個人的にはあまり影響はありません。むしろ外出しない理由ができて堂々と引きこもっていられます。 これまで、さくらのナレッジではNode.jsやDenoの話をしてきました。今回は、これらを使う上で欠かせない非同期処理について説明します。よろしくお願いします! 対象者 本記事は、こんな人が対象です。 JavaScriptの非同期処理はコールバックとかPromiseとかasync/awaitとかあるけど、どう違うの?どう使い分ければいいの? Node.jsのコールバックって罠が多くて使いにくい Promiseの仕組みがよくわからずになんとなく使っていた async/awaitって中でどういうことをやってるのかわからないけど便利だよね 非同期処理?async/awaitさえ覚えておけばいいんじゃない? async/awaitっ
こんにちは!小田島です。前回の「コールバック編」を納稿したとき、アイキャッチ画像はJavaScriptのロゴにタイトルの文字を入れただけというとんでもないやっつけ仕事だったのですが、さくナレ編集部の方に「シリーズで理解が深まる」というすごい煽り文句がついたとてもカッコいい画像に差し替えていただきました。アイキャッチ詐欺にならないようにがんばります。 非同期処理シリーズの2回目はPromiseについての説明です。前回はコールバックについて説明しましたが、Promiseを使うことでどのように便利になったのでしょうか。それでは見ていきましょう!今回はコードが多いのでかなり分量が多く感じられるかもしれませんが、実際はあまり大したことはありません。 今回の目的 今回説明するのはPromiseです。これはFutureパターン(Promiseパターン)というデザインパターンの一種で、ECMAScript
JavaScriptでコードを記述する際、配列の各要素について処理をするケースは頻出します。開発の現場で配列操作の処理を見ていると、次のようなケースがよくあります。 配列の非破壊の望まれる場面が増えているが、元の配列を破壊操作している filter()やevery()など配列のメソッドで書けるところを、forEach()メソッドやfor ... of文を使ってコードを記載し、冗長になっている 記述しても効果のないArray.from()を使用している コード的には問題なく、アプリケーションは意図的に動作しているかもしれません。しかし、冗長な記述は可読性が低下し、予期せぬバグを誘発する可能性があるでしょう。 本記事では、配列操作でよく見かける冗長な記述を、簡潔な記述で置き換える方法について解説します。 本記事で紹介するJavaScriptの配列操作のチートシートを用意したので、まとめて読みた
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く