タグ

javascriptとtipsに関するzaki1010のブックマーク (48)

  • 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) 実行モデルとタスクキュー
  • 2021年のTypeScriptベストプラクティス - 西尾泰和の外部脳

    5: テストコードで、型の要求を部分的にしか満たさないアドホックなオブジェクトをanyにキャストしてモックとして使うのではなく、ちゃんとしたモックを一箇所で定義してそれを使え 6: オブジェクトの種類によってあるプロパティを持っていたり持っていなかったりする時に、?でオプショナルなプロパティにするのではなく、どういう種類の時に持っているのかをインターフェースで明示せよ

    2021年のTypeScriptベストプラクティス - 西尾泰和の外部脳
  • なぜ我々は頑なにforを避けるのか - Qiita

    動機 前回の記事を投稿したことを某SNSで通知したところ、そのSNSでこんなコメントをいただいた。転記する許可を取ったわけでは無いので私なりに要約させていただくと、 なぜそんなトリッキーな書き方をしてまでforを使うのを避けるのか そんな書き方をして可読性を下げるくらいなら素直にforを使う方が良い ということだと理解している。 なるほど、一理ありそうだ。しかし一方で、前回貼ったStackOverflowのQ&Aはなかなかの人気記事(質問に1243ポイント、回答に最大で1559ポイント)なので「多少トリッキーなことをしてでもforを書きたくない!!」という意見をもつプログラマも一定以上いるのだろう。当然私もその1人だ。 ということで、この記事で「なぜそこまで意固地になってまでforを書きたくないのか」を説明することにする。 尚、今回は前回の記事つながりで言語はJavaScriptを使うが、

    なぜ我々は頑なにforを避けるのか - Qiita
  • JavaScriptのイベントをたくさん見られるサイト

    JavaScriptでよく使うイベントの概要をざっくりまとめ、それぞれのイベントオブジェクトをコンソールで確認できるサイトです。

    JavaScriptのイベントをたくさん見られるサイト
  • JavaScriptのイベントをたくさん見られるサイトを作る

    JavaScriptのイベント、ややこしいですよね。 名前が似ているものや、使い方にクセがあるものもあり、簡単なようで実装に手間どることが多いです。なので、よく使うイベントの概要をざっくりまとめ、それぞれの実行タイミングとイベントオブジェクトをコンソールで確認できるサイトを作りました。 忘れたときに調べればいいだけの話なので、わざわざサイトを作る必要はなかったのですが、イベントを眺めるのが好きな人に見ていただけたら嬉しいです。 JavaScriptのイベントをたくさん見られるサイト ひたすらaddEventListenerしていたら、イベントに愛着が湧いたので、イベントの実装でハマりそうなところをまとめています。 なぜイベントを使うのか マウスなどはイベントじゃないと値が取得できませんが、頑張ればイベントを使わずとも実装できるものもあります。たとえば、テキストボックスの変更を知りたいだけで

    JavaScriptのイベントをたくさん見られるサイトを作る
  • スマホのブラウザで画像を圧縮してポストする - Qiita

    この記事は スマホのブラウザで画像を圧縮する手順メモです したかったこと スマホでブラウザから画像をアップロードさせたかったです 最近の高性能カメラだと画像サイズが大きすぎて非常に重くなってしまいました サーバサイドで圧縮する方式だと結局アップロードの通信量は変わらないから効果がありません 対処 ブラウザ上で画像を圧縮して対応することにしました image-comporessorというJavaScriptライブラリを使います 内部的にはCanvasとか使って圧縮をしているみたいです 別にスマホじゃなくてもモダンブラウザなら動きます 対処コード FormDataオブジェクトを生成 Ajax送信でのみ利用できる操作しやすいFormオブジェクトみたいなもの FormのDOMを渡して生成する input type=fileから画像ファイルオブジェクトを取得して、ImageCompressorに渡し

    スマホのブラウザで画像を圧縮してポストする - Qiita
  • Node.jsでWebサイトの更新チェックを自動化する - ほんじゃらねっと

    特定のWebサイトを定期的にチェックして特定のキーワードが含まれていたら 通知してくれる仕組みを1つ覚えておくと色々重宝する。 例えば 会社に社員用Webサイトがあるなら、 (そしてそのサイトがRSSもメール通知も提供してないなら) そこに「重要」とか「人事」とかのキーワードを含む記事が投稿された時に 通知を受け取れるようにしておけば、 いちいちサイトをチェックしにいかなくても 逃さず確認できる。 また、Webスクレイピングする方法を覚えておけば、 通知を受け取る以外にも、 画面キャプチャの撮影や画像やテキストの収集を 自動化したり、作成したWebシステムの画面テストを行う、 等の応用もしやすくなる。 今回は Node.js + Grunt + cheerio-httpcli を使用して 手軽にWebサイトのデータをチェックする方法を紹介する。 今週の「世界の果てまでイッテQ!」で「QTu

    Node.jsでWebサイトの更新チェックを自動化する - ほんじゃらねっと
  • イマドキのJavaScriptの書き方2018

    PySpa統合思念体です。これからJavaScriptを覚えるなら、「この書き方はもう覚えなくていい」(よりよい代替がある)というものを集めてみました。 ES6以降の難しさは、旧来の書き方にプラスが増えただけではなく、大量の「旧来の書き方は間違いを誘発しやすいから非推奨」というものを作り出した点にあります。5年前、10年前のやウェブがあまり役に立たちません。なお、書き方が複数あるものは、好き嫌いは当然あると思いますが、あえて過激に1つに絞っているところもあります。なお、これはこれから新規に学ぶ人が、過去のドキュメントやコードを見た時に古い情報を選別するためのまとめです。残念ながら、今時の書き方のみで構成された書籍などが存在しないからです。 たぶん明示的に書いていても読み飛ばす人はいると思いますが、すでに書いている人向けではありません。これから書くコードをこのスタイルにしていくのは別にいい

    イマドキのJavaScriptの書き方2018
  • JavaScriptでのサロゲートペア文字列のメモ - Qiita

    I. UnicodeとJavaScript文字列の前提知識 I-I. Unicodeのエスケープシークエンスで文字列を表す "\uXXXX"形式の4桁の16進数で表す // シングルクォートとダブルクォートの差はない "\u3042"; // => "あ" '\u3042'; // => "あ" // 正規表現リテラルでも表現可能 /\u3042/.test('あ'); // => true

    JavaScriptでのサロゲートペア文字列のメモ - Qiita
  • 必殺の .apply()フックを打つべし! 打つべし!(JavaScript おれおれ Advent Calendar 2011 – 17日目) | Ginpen.com

    JavaScript おれおれ Advent Calendar 2011 – 17日目 .apply()で成り済ましができたり仕事をスルーして丸投げしたりする事ができますが、さらにもうひとつ、フックを行う事ができます。 フック(hook)というのはフック船長のフック、鉤爪の事で、処理を「ひっかける」ような事です。ある関数が実行される際に、独自のコードを実行させる事ができます。 フック (プログラミング) – Wikipedia フック(Hook)は、プログラム中の特定の箇所に、利用者が独自の処理を追加できるようにする仕組みである。また、フックを利用して独自の処理を追加することを「フックする」という。 あの処理がどこで呼ばれてるかわからないときに 具体例をひとつ。例えばjQueryで「どこかのタイミングで勝手にクラス名が追加されてしまって困っている」という場合を考えます。その場合は .add

    必殺の .apply()フックを打つべし! 打つべし!(JavaScript おれおれ Advent Calendar 2011 – 17日目) | Ginpen.com
  • RealDOM再入門 - メモを揉め

    初Greasemonkey、初Tampermonkey、初ブックマークレット触ってみました。 生DOMいっぱいさわりました。 ブラウザで検索・置換 いくつかサンプルコードを見ているとDocument.body.innerHTMLを正規表現で検索・置換するものが多かった、 というのはつまり以下の様な感じ var html = document.body.innerHTML; var replaced = html.replace(/探してます/gmi, '$1'); document.body.innerHTML = replaced; あれ?こんなに簡単なの!?と思ったんだけど、 ふと疑問に感じたのは、innerHTMLで取ってきた文字列ってまさに「HTML」そのものだよな、 ってことはclassとかの属性もそれこそタグも検索・置換の対称になって崩れちゃいそうだけどなーと思ったら崩れた。

    RealDOM再入門 - メモを揉め
    zaki1010
    zaki1010 2017/08/31
    目的のテキストを書き換える方法で、タグとかに誤爆しないちゃんとした方法。
  • モバイルにも対応!完璧なLIGHTBOX「PHOTOSWIPE」をJQUERYプラグイン化しました。

    一言まとめ LightBoxは時代にそぐわなくなってきた。その最有力候補として浮かび上がってきた PhotoSwipe だが、導入する作業が煩雑なため、jQueryプラグインにした。 JavaScriptのギャラリーライブラリといえば「LightBox」です。むしろ「LightBox」が一種の代名詞にもなったくらい一世を風靡したのです。 しかし、時は2016年。もっとモダンな「Lightbox」はないのか… と、誰もが願うものです。 そして、そんな願いを完璧に応えてくれるライブラリが現れた… それが「PhotoSwipe」です。百聞は一見にしかず、まずはPhotoSwipeの公式サイトのデモをご覧下さい。 圧倒的な人気度 GitHubで言語をJavaScriptに絞って、「gallery」で検索した後、さらにソート順を「Most stars」にした結果。 「PhotoSwipe」のスター数

    モバイルにも対応!完璧なLIGHTBOX「PHOTOSWIPE」をJQUERYプラグイン化しました。
  • PhotoSwipeの使い方!Light Boxの決定版を導入しよう!

    アニメーション、スライド、ダブルクリックによるズームなど、機能盛り沢山のライトボックス系ライブラリ、Photoswipeの使い方を紹介します。

    PhotoSwipeの使い方!Light Boxの決定版を導入しよう!
  • 入力内容の量に応じたtextareaの自動サイズ変更 - Qiita

    内容の分量に応じて、textareaの自動サイズ変更(高さ)をするスクリプトを書きました。 来ならばjQuery Autosizeという素敵ライブラリがあるのですが、なぜだかこれが上手く動かなくて泣く泣く自前で作る羽目に。 一応、自分用にはjQueryを使って書いたんですが、jQueryを使わないバージョンも書いてみました。 //jquery使うバージョン $("#ta").height(30);//init $("#ta").css("lineHeight","20px");//init $("#ta").on("input",function(evt){ if(evt.target.scrollHeight > evt.target.offsetHeight){ $(evt.target).height(evt.target.scrollHeight); }else{ var lin

    入力内容の量に応じたtextareaの自動サイズ変更 - Qiita
  • JavaScript,jQueryの爆速コーディング、デバッグ方法論の勧め~実践向け逆引き(windows,chrome向け)~ - Qiita

    JavaScript,jQueryの爆速コーディング、デバッグ方法論の勧め~実践向け逆引き(windows,chrome向け)~JavaScriptjQuery ※2017/4/21にオンロード時のデバッグ方法8を追記しました! こんにちは!エイチーム引越し侍の加藤です! みなさんJavaScript書いてますか? console.logめっちゃ使うよねーって人は目からうろこのデバッグ方法を、 ケース毎に紹介していこうと思います。(僕はconsole.log使いません) サーバーにデバッグ用のコードをアップロードすること無いので、 消さずに意図に反してリリースしてしまう危険性がないのもお勧めです。 前提知識 F12で出てくるデベロッパーツール(Elements, Console, Source, Network)の知識 Ctrl+Shift+Fで外部ソース(js,css)に対して一括検索が

    JavaScript,jQueryの爆速コーディング、デバッグ方法論の勧め~実践向け逆引き(windows,chrome向け)~ - Qiita
  • 【jQuery】シングルページでナビゲーションに現在地を表示する | Tips Note by TAM

    jQueryを使用して、シングルページでナビゲーションに現在地を表示するサンプルを作成しました。 デモページはこちらになります。 ■HTML ナビゲーション部分とコンテンツ部分のHTMLの抜粋です。 ページ内リンクで各コンテンツに遷移します。 <ul id="gnav"> <li><a href="#contents01">コンテンツA</a></li> <li><a href="#contents02">コンテンツB</a></li> <li><a href="#contents03">コンテンツC</a></li> <li><a href="#contents04">コンテンツD</a></li> </ul> ~略~ <div id="contents"> <div class="inner"> <div id="contents01"> <h2>コンテンツA</h2> コンテンツAの

    【jQuery】シングルページでナビゲーションに現在地を表示する | Tips Note by TAM
  • 旧石器時代のJavaScriptを書いてる各位に告ぐ、現代的なJavaScript超入門 Section1 ~すぐにでも現代っぽく出来るワンポイントまとめ~ - Qiita

    はじめに ネットには様々な情報が溢れており、JavaScriptに関する情報も多数存在しております。 その中には、「今時こんな書き方しねえよ…」と思わずツッコミを入れたくなるような、当に、当に古い内容について書かれている古文書も存在します。 そんな罠記事の情報に囚われてしまって、いつまで経っても現代的なJavaScriptが書けない皆さんのために、このシリーズの記事では、各セクション毎に分けて、旧石器時代の記述と、現代の記述を紹介する形で、文明開化をしていきたいという思いで記述する。 最初は、現在比較的メジャーなブラウザで一通り動作する「ECMAScript 5」までの内容に関してポエムを書き連ねていき、最終的には一連の内容を読むだけで「ES6(ES2015)」による新機能や、絶賛提案中の「ES7」の一部提案内容についても把握し、おおよそ現代人を育成することを目標とする。 …なんてめっ

    旧石器時代のJavaScriptを書いてる各位に告ぐ、現代的なJavaScript超入門 Section1 ~すぐにでも現代っぽく出来るワンポイントまとめ~ - Qiita
  • 【JQuery】JSONデータを取得して表示を切り替えるデモ|ツーブロッカ

    いまいちよく解っていなかったので調べてみました。 JSONとは?JSON(ジェイソン)は、「Javascript Object Nation」の略。 データ記述言語の1つで、名前の割にJavascript専用ではなく、さまざまな言語間でのデータの受け渡しに互換性があります。 主に2つの構造を基にしています。 名前/値のペアの集まり。様々な言語で、これはオブジェクト、レコード、構造体、ディクショナリ、ハッシュテーブル、キーのあるリスト、連想配列として実現されています。 値の順序付きリスト。ほとんどの言語で、これは配列として実現されています。 http://www.json.org/json-ja.html Ajax(googleマップで用いられているようなリアルタイムでデータを受信して受け渡す方法)でよく用いられている「XML」と同じような場面で用いることが出来ますが、 JSONのほうが記法

    【JQuery】JSONデータを取得して表示を切り替えるデモ|ツーブロッカ
  • jQueryでjsonデータを扱ってみる【入門編】

    jQueryでjsonデータを扱ってみる【入門編】 javascriptで外部のWebサービスを利用するデータ形式はjsonを使うことが基なようです。 似たようなフォーマットとしてXMLがありますが、こちらはHTMLと同じマークアップ言語なのですんなり入っていける反面、jsonは少々わかりずらいといった先入観があったりするんじゃないでしょうか。 そこで入門編と題して(入門編しかない!)改めて基礎から勉強していけたらと思います。 投稿日2010年07月25日 更新日2016年04月26日 とにかくシンプルなjson jsonデータは基は外部から読み込むことになりますが、練習なのでとりあえずjavascript内の変数内に直に書きます。 「:(コロン)」で区切ったキーと値を一組として、2組目を「,(コンマ)」で区切って記述していきます。 それらを{}で囲むことで一つのオブジェクトとして扱い

    jQueryでjsonデータを扱ってみる【入門編】
  • JSでグローバル汚染してる変数一覧を取得する - Qiita

    今、グローバル汚染してる変数はなにか? と思ってみるとき、たぶんconsole.log(window)とかしてwindowのプロパティを見ると思います。 ただプロパティ多すぎて、どれがもともとのプロパティで、どれが汚染してる変数だ?? となると思います。 そんな時に使えるコードです 用途 私は主に以下の2点の用途で使います。 悪いグローバル変数を見つける フレームワークやライブラリが使ってるグローバル変数を見つける 特に2番目の用途でよく使いますね。 コード 以下を実行すればconsoleに表示されます console.log((function(){ var propsOrig = []; var propsGlobal = {}; var win = window.open(); for(var i in win){ propsOrig.push(i); } win.close();

    JSでグローバル汚染してる変数一覧を取得する - Qiita