タグ

関連タグで絞り込む (515)

タグの絞り込みを解除

JavaScriptに関するatm_09_tdのブックマーク (1,537)

  • gRPCを使ってRust – JavaScript通信 | DevelopersIO

    Introduction RPCは昔からあるクライアント−サーバー間の通信手法です。 サーバで実装されている関数をクライアントから呼んで実行します。 最近ではHTTP/HTTPSでクラサバ間通信をして、 フォーマットにXML(XML-RPC)やJSON(JSON-RPC)を利用するのが 多いようです。 (直近で私は使った記憶がないですが) 上記のRPCは各技術がメジャーなので採用しやすいですが、 パフォーマンスがそこまで高くなかったり バイナリデータが扱いにくかったりします。 そういった問題点を解決するために開発されたのが、 Google発のRPCであるgRPCです。 gRPC? gRPCはハイパフォーマンスなオープンソースのRPCフレームワークです。 Googleが開発したRPC技術(Stubby)が元となって開発され、オープンソース化されました。 現在はCNCFによって開発が進められて

    gRPCを使ってRust – JavaScript通信 | DevelopersIO
  • [Tips] JavaScriptでCSVを読み込んでJSONを作る | DevelopersIO

    JavaScriptCSVファイルを読み込んでJSONを作る簡単なサンプルを示します。 const csvFilePath = '[CSVファイルのパス]' const jsonFilePath = '[JSONファイルのパス]' const csv = require('csvtojson') const moment = require('moment') const fs = require('fs') csv() .fromFile(csvFilePath) .then((rows)=>{ rows = rows.map((row) => { row.id = new Number(row.id) row.success = new Boolean(row.success) row.registrationDate = moment(row.registrationDate).f

    [Tips] JavaScriptでCSVを読み込んでJSONを作る | DevelopersIO
  • 「たかがJavaScript」のその先 #TECHPLAY

    フロントエンドと自分のキャリア形成について。このスキルツリーとセットで見るといいかもです。 https://whimsical.com/oPYtoDPyho6uWK1gDmD9e

    「たかがJavaScript」のその先 #TECHPLAY
  • JavaScriptの参照レコードとthisバインディング

    JavaScriptの仕様には「参照レコード」という概念があります。参照を意識することで、JavaScriptにおけるメソッド呼び出しの理解と左辺式の評価順序の理解を同時に深めることができます。稿ではこの「参照レコード」の動機と詳細の説明を試みます。 ※ 記事ではECMAScriptの規格で「参照レコード」と呼ばれている概念を説明します。JavaScriptのオブジェクトは参照渡しのような使い方ができますが、これは稿で説明する「参照」とは少しだけ異なります。 参照レコードの目的 JavaScriptにおける参照レコードは以下の2つの目的で存在しています。 左辺式の中間評価結果を表現するため。 メソッドのレシーバーを決定するため。 左辺式の中間評価結果とは たとえば a[f()] += 2; というコードを考えます。 function f() { console.log("f()");

    JavaScriptの参照レコードとthisバインディング
  • 正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ

    先日、このようなツイートを書いたところ、かなりの反響がありました。 JavaScript の正規表現の脆弱性の例でいうと、例えば /\s+$/ は脆弱性があると言える console.time(); /\s+$/.test(" ".repeat(65536) + "a"); console.timeEnd(); 結構時間がかかるのがわかる。でも /\s+$/ を見て「これは危険だな」と理解出来る人はそんなにいない。JavaScript に限らないけれど。 — Takuo Kihira (@tkihira) February 17, 2022 これは一般に ReDoS (Regular expression Denial of Service) と呼ばれる脆弱性です。正確に理解するのが難しい脆弱性なので、少し解説してみたいと思います。 結論 長い記事になるので、最初に「とりあえずこれだけ知っ

  • JavaScriptの演算子の優先順位と「禁止ルール」の一覧

    ただし、種別は以下の通りです。 prefix (前置演算子) …… もとの式の手前に何個でもつけられる演算子。 例: -~-~x postfix (後置演算子) …… もとの式の直後に何個でもつけられる演算子。 例: x.foo()`bar`[0] postfix once …… もとの式の直後に1個だけつけられる演算子。 例: x++ は可能だが x++-- はパースされない。 逆に ++--x はパースされるが、構文とは別のルールで禁止される。 (後述) infixL …… 中置演算子で左結合 (演算子の優先度が同じ場合は左側にあるほうが優先される) 例: 0.1 + 1.0 - 1.0 は (0.1 + 1.0) - 1.0 になる infixR …… 中置演算子で左結合 (演算子の優先度が同じ場合は右側にあるほうが優先される) 例: 2 ** 2 ** 3 は 2 ** (2 **

    JavaScriptの演算子の優先順位と「禁止ルール」の一覧
  • yarn と npm の栄枯盛衰

    yarn と npm の栄枯盛衰2021 年 8 月に yarn の v3 がリリースされました。2020 年の同月あたりに yarn v2 がリリースされたので、約 1 年ぶりのメジャーバージョンアップになります。 v1 → v2 のパラダイムシフトは強烈でしたが、 v2 → v3 は berry というパッケージ名は相変わらずで、 v2 の正統なバージョンアップでありちょっとだけ物足りなさを感じてます。 Get Started なにはともあれ、とりあえずは触ってみましょうか。 Node.js ≥ 16.10 であれば、 Corepack を使って以下のコマンドで yarn v3 をインストールできます。 $ corepack enable $ corepack prepare yarn@3.0.0 --activate # yarn.lock や README.md が生成される $

    yarn と npm の栄枯盛衰
  • 公式チュートリアルでNext.jsに入門してみた (1) 〜アプリ新規作成、ページ遷移、スタイリング編〜 | DevelopersIO

    公式チュートリアルでNext.jsに入門してみた (1) 〜アプリ新規作成、ページ遷移、スタイリング編〜 こんにちは、CX事業部 IoT事業部の若槻です。 今回は、現在注目されているフロントエンドフレームワークNext.jsへの入門のために、次の公式チュートリアルを数回のシリーズに分けてこなしていき、基的な機能に触れていこうと思います。 Create a Next.js App | Learn Next.js Next.jsとは Next.jsは、オープンソースで提供されるReactベースのフロントエンドフレームワークです。 Next.js by Vercel - The React Framework こちらによるとNext.jsの特徴は次のようなものがあり、プロダクション環境で必要とされるあらゆる機能と、最高の開発者エクスペリエンスを提供できるように設計されています。 An int

    公式チュートリアルでNext.jsに入門してみた (1) 〜アプリ新規作成、ページ遷移、スタイリング編〜 | DevelopersIO
  • Javascriptで同時に非同期処理を行う | DevelopersIO

    Promise.allを使用して複数の非同期処理をうまく扱う方法について整理しました。 こうすることで多数のHTTPリクエストなどを同時に送り、処理することが可能になります。 はじめに JSでは非同期処理を使用することでHTTPリクエストを送った際にレスポンスが帰ってくるまでの間に別のリクエストを送ることができます。 なのでタイトルには同時と書いてありますが、厳密には同時ではありません。 ただ、こうすることで複数のリクエストをすばやく処理することが可能です。 しかし、サーバーに負荷をかけたくないなどの理由から同時にリクエストを送る数を制限する必要があると思います。 今回はそんな場合にリクエストをバッチ化して処理する方法についても整理してみます。 準備 今回はwait関数を作成し、一定時間待機させるような処理を利用して、HTTPリクエストなどの代わりとします。 今回は2秒間処理をブロックする

    Javascriptで同時に非同期処理を行う | DevelopersIO
  • 日本のWEBに革命をもたらす BudouX で自動文字組みを行う。しかも、Web Componentとして

    WEB 開発において日語が抱える問題 日語を使った WEB 開発は常に「改行問題」を抱えています。例えば、👇 の様に 記事 という単語の 記 と 事 で改行されていたら読みにくいです。 見た目重視の WEB サイトだと、「この改行を手動で美しく見えるように修正して欲しい。」 という声も無視できません。 いわゆる「文字組み」です。例えば、👇 の様に改行を入れてやります。 しかし、この方法は解決になっていません。なぜなら、WEB ブラウザ の幅はレスポンシブに可変するからです。ちょっと画面幅を狭めるだけで 👇 の様に崩壊します。 これに対応するためには、メディアクエリをくしして画面幅に応じた<br>タグを仕込むか、改行したくない文字列を手書きで<span style="display:inline-block;"></span>で囲む必要がありました。👇 の様に... <span

    日本のWEBに革命をもたらす BudouX で自動文字組みを行う。しかも、Web Componentとして
  • Jestでテスト用の環境変数を設定する際にハマったこと | DevelopersIO

    こんにちは、CX事業部 IoT事業部の若槻です。 Jestは、JavaScriptのテスティングフレームワークです。Facebookが開発しています。 facebook/jest: Delightful JavaScript Testing. 今回は、Jestでテスト用の環境変数を設定する際にハマったことについてです。 環境 $ npx jest --version 26.6.3 $ node -v v14.5.0 $ npx tsc -v Version 3.9.10 テスト用の環境変数が設定されない 下記のような環境変数を使用したコードがテスト対象です。 src/lambda/sampleHandler.ts const envVal = process.env.SAMPLE_ENV as string; export const handler = async () => { re

    Jestでテスト用の環境変数を設定する際にハマったこと | DevelopersIO
  • Node のバージョン管理は Volta でいいかな - A Memorandum

    Volta とは インストール 公式インストーラ(*nix) Homebrew Winget 公式インストーラ(Windows) volta install で Node エンジンを導入する volta list で現在のツールチェーンを一覧する volta pin でバージョンを固定する コマンドラインツールのグローバルなインストール まとめ Volta とは 数ある Node バージョン管理ツールの一つ 2020年12月にVolta1.0がリリースされ、現在のバージョンは v1.1.1 で比較的新しい Rust 製で早い package.json の内容を読み、自動でバージョン切り替えを行う node や yarn のバージョンをプロジェクト毎に固定できる グローバルパッケージを安全に使うことができる インストール 他の Node バージョン管理ツールを使っている場合は、あらかじめアン

    Node のバージョン管理は Volta でいいかな - A Memorandum
  • JavaScriptの非同期処理をじっくり理解する (4) AbortSignal, Event, Async Context

    対象読者と目的 非同期処理の実装方法は知っているが、仕組みを詳しく知らないのでベストプラクティスがわからないときがある 実行順序の保証がよくわからないので自信をもってデプロイできない変更がある より詳しい仕組みを理解することでより計画的な実装をできるようになりたい という動機で書かれた記事です。同様の課題を抱える人を対象読者として想定しています。 目次 実行モデルとタスクキュー Promise async/await AbortSignal, Event, Async Context WHATWG Streams / Node.js Streams (執筆中) 未定 中止処理 並行処理ではしばしば実行中の処理を中止したい場合があります。 古典的なキャンセル処理 Webブラウザ/Node.jsともに、 setTimeout の中止が可能です。 const timeout = setTimeo

    JavaScriptの非同期処理をじっくり理解する (4) AbortSignal, Event, Async Context
  • JavaScriptの非同期処理をじっくり理解する (3) async/await

    対象読者と目的 非同期処理の実装方法は知っているが、仕組みを詳しく知らないのでベストプラクティスがわからないときがある 実行順序の保証がよくわからないので自信をもってデプロイできない変更がある より詳しい仕組みを理解することでより計画的な実装をできるようになりたい という動機で書かれた記事です。同様の課題を抱える人を対象読者として想定しています。 目次 実行モデルとタスクキュー Promise async/await AbortSignal, Event, Async Context WHATWG Streams / Node.js Streams (執筆中) 未定 用語に関する注意 前々回定義した以下の用語を今回も使います。 1 tick ... タスクキューが1周すること。 1 microtick ... マイクロタスクキューが1周すること。 これらの単位は非同期処理の間の相対的な優先

    JavaScriptの非同期処理をじっくり理解する (3) async/await
  • モダン JavaScript チートシート

    Skip to the content. モダン JavaScript チートシート 画像クレジット: Ahmad Awais ⚡️ イントロダクション 動機 このドキュメントはモダンなプロジェクトでよく見られる JavaScript のチートシートと最新のサンプルコードです。 このガイドは読者に JavaScript をゼロから教えるものではありません。 基礎知識は持っていて、モダンなコードベースに慣れる(例えば React を学ぶ)のに苦労している開発者を助けるためのものです。 説明の中で JavaScript の諸概念が使われています。 また、議論の余地のあるポイントについてときどき個人的な tips を載せますが、その際はあくまでも個人的なおすすめであることを述べるように気をつけます。 メモ: ここで紹介されている概念のほとんどは JavaScript 言語のアップデート( ES2

  • JavaScriptの非同期処理をじっくり理解する (2) Promise

    対象読者と目的 非同期処理の実装方法は知っているが、仕組みを詳しく知らないのでベストプラクティスがわからないときがある 実行順序の保証がよくわからないので自信をもってデプロイできない変更がある より詳しい仕組みを理解することでより計画的な実装をできるようになりたい という動機で書かれた記事です。同様の課題を抱える人を対象読者として想定しています。 目次 実行モデルとタスクキュー Promise async/await AbortSignal, Event, Async Context WHATWG Streams / Node.js Streams (執筆中) 未定 用語に関する注意 前回定義した以下の用語を今回も使います。 1 tick ... タスクキューが1周すること。 1 microtick ... マイクロタスクキューが1周すること。 これらの単位は非同期処理の間の相対的な優先順

    JavaScriptの非同期処理をじっくり理解する (2) Promise
  • JavaScriptの非同期処理をじっくり理解する (1) 実行モデルとタスクキュー

    対象読者と目的 非同期処理の実装方法は知っているが、仕組みを詳しく知らないのでベストプラクティスがわからないときがある 実行順序の保証がよくわからないので自信をもってデプロイできない変更がある より詳しい仕組みを理解することでより計画的な実装をできるようになりたい という動機で書かれた記事です。同様の課題を抱える人を対象読者として想定しています。 目次 実行モデルとタスクキュー Promise async/await AbortSignal, Event, Async Context WHATWG Streams / Node.js Streams (執筆中) 未定 入門記事へのリンク プロミスの使用 - JavaScript | MDN Promise, async/await (現代の JavaScript チュートリアル) JSの初心者にPromiseとasync/awaitの使い方

    JavaScriptの非同期処理をじっくり理解する (1) 実行モデルとタスクキュー
  • Next.js+microCMS+Vercel面白い - ゆーすけべー日記

    Next.js と microCMS と Vercel が面白い。それぞれ面白いし、組み合わせるとさらに面白い。なにせ、メディアサイトがデプロイも含めて 2 時間で出来る。 Next.js + microCMS + Vercel すごいな。メディアサイト(中身スッカスカだけど)がものの 2 時間でデプロイまでできた。 https://twitter.com/yusukebe/status/1435708770705760256 ということで、メディアサイトを作りながら、Next.js と microCMS と Vercel の面白さをまとめる。 2 時間で作るメディアサイト 例として「ラーメンまとめ!」というメディアサイトを作ってみる。このサイトには ラーメンラーメン屋のまとめ記事 の 2 つの種類のコンテンツがある。「ラーメン屋」が「名前」「場所」「ラーメン写真」というプロパティを持

    Next.js+microCMS+Vercel面白い - ゆーすけべー日記
  • JavaScript クイズ解説: NaN === NaN の結果はどうなる?

    先日、このようなツイートを書きました。 久しぶりの JavaScript クイズ。 JavaScript において NaN === NaN の結果は次のうちどれになるでしょうか? — Takuo Kihira (@tkihira) September 7, 2021 答えは 4 の「状況によって上記以外もありうる」です。でも、2 や 3 を選んだ方も、もはや正解だといって差し支えないと思います。 解説が長くなったので、ブログ記事にまとめました。 そもそも NaN とは NaN は “Not a Number” を意味する数値です。数値なのに「Not a Number」というのは違和感があるかもしれませんが、数値表現することが出来ない状態を保持するために便宜的に用意された数値、というようなものです。 NaN は、浮動小数点演算において数値では表現出来ない計算をしようとすると登場します。例えば

  • Googleフォームで参加者募集して、自動でGoogleカレンダーに申込者を招待する小技 - Money Forward Developers Blog

    こんにちは。 マネーフォワードでインターンをしております赤羽です。 最近、「営業戦略部」から「CIO室 コーポレートエンジニアリンググループ」に異動しました。 社内イベントの開催者向けに、イベント参加希望者を自動でカレンダー招待する仕組みを作ってみたので紹介します。 ↓↓ 完成品 使用例 ↓↓ [video width="960" height="540" mp4="https://moneyforward.com/engineers_blog/wp-content/uploads/2021/07/googleform-to-googlecalendar1.mp4"][/video] ツール作成の背景 社内でイベントを開催する際の手順として、 カレンダーで社内イベントの予定を設定 イベント告知 参加希望者を一人ひとり手作業でカレンダーに招待 が一般的な流れでした。 ですがこの場合、「3.

    Googleフォームで参加者募集して、自動でGoogleカレンダーに申込者を招待する小技 - Money Forward Developers Blog