タグ

JavaScriptに関するfmn10のブックマーク (10)

  • JavaScript で setTimeout や addEventListener のコールバック関数に引数を渡す方法

    はじめにJavaScript で setTimeout, setInterval, addEventListener のコールバック関数に引数を渡す方法をまとめた。 TL;DR setTimeout, setInterval には bind(<this>, <args>) コールバック関数内では、関数定義の仮引数でアクセス addEventListener には第二引数を Object 型で渡す コールバック関数内では this.args で引数にアクセス 目的・やったことsetTimeout, setInterval, addEventListener のコールバック関数に引数を渡したかったので調べてまとめた。

    JavaScript で setTimeout や addEventListener のコールバック関数に引数を渡す方法
  • JavaScriptで再現性のある乱数を生成する + 指定した範囲の乱数を生成する

    JavaScriptの乱数は少し貧弱で、シード値の指定ができないなどの制限があります。普段は問題ないのですが、特定の用途では問題となる場合があります。シード値を指定可能な、再現性のある乱数を自作してみましょう。 JavaScript標準の乱数 もちろんJavaScriptにも乱数を発生させる機能はあります。Math.random()がそれにあたります。 const a = Math.random(); console.log(a); Math.random()は0.0以上1.0未満の乱数を生成します。しかしこの乱数には問題があります。シード値を指定できず、実行ごとに異なる値が生成されます。 ……「乱数」なんだからそれでいいんじゃないの?と思うかもしれません。しかしこれは特定の領域において問題となります。 例えば研究のためにJavaScriptでプログラムを組んだとします。その中で乱数を使っ

    JavaScriptで再現性のある乱数を生成する + 指定した範囲の乱数を生成する
  • くだらないAPIなんていらないよ – 2016年のウェブスクレイピング事情 | POSTD

    ソーシャルメディアのAPIとそのレート制限は、あまり気分のよいものではありません。特にInstagram。あんな制限つきAPIを欲しがる人がいったいどこにいるんでしょうね? 最近のサイトは、スクレイピングやデータマイニングの試みを阻止するのがうまくなってきました。AngelListはPhantomJSすら検出してしまいます(今のところ、他のサイトでそこまでの例は見ていません)。でも、ブラウザ経由での正確なアクションを自動化できたとしたら、サイト側はそれをブロックできるでしょうか? 並行性を考えたり、さんざん苦労して用意した結果として得られるものを考えたりすると、Seleniumなんて最悪です。あれは、私たちが「スクレイピング」と聞いて思い浮かべるようなことをするためには作られていません。しかし、賢く作り込まれた今どきのサイトを相手にして、インターネットからデータを掘り当てるための信頼できる

    くだらないAPIなんていらないよ – 2016年のウェブスクレイピング事情 | POSTD
  • (Babel 5における)ES6のモジュールを解説してみた - uehaj's blog

    警告 以下でのモジュールの説明はトランスパイラであるBabel 5,6で動作を確認した振舞いについての記述です。2015年11月現時点で、ECMAScriptのモジュール仕様策定範囲は、来の全体範囲のまだ一部であるとのことです。その状況でのBabelの実装は、良く言えば先行的、悪く言えば将来そのままである保証はなく、現時点でも他のES2015をサポートする処理系との間での相互運用の保証はありません。また、現時点でBabelのモジュール機能を使うこと自体にリスクがあるという意見もあります。CommonJS側からBabelが生成したモジュールをCommon JSモジュールとして読み込もうとしたときの互換の問題として、Babel5で可能だったことがBabel6では利用不可になる、といったことも起きているようです。 そこらへんを含めて解説されているこちらの資料が参考になります。 (2015/11

    (Babel 5における)ES6のモジュールを解説してみた - uehaj's blog
    fmn10
    fmn10 2018/03/11
    今更だがimport編の表にミスがある気がする(対象モジュールの列)
  • ECMAScript 2015以降のJavaScriptの`this`を理解する

    この記事はJavaScriptの入門書として書いているjs-primerのthisに関する部分をベースにしています。 またjs-primerでは書けなかった現在時点(2018年1月1日)でのブラウザの挙動についてを加えたものです。 次の場所にjs-primer版(書籍版)のthisについての解説があります。 この記事と違って実際にコードを実行しながら読めるので、学習ソースとしては書籍版を推奨します。 書籍版: 関数とthis · JavaScriptの入門書 #jsprimer また、バグ報告やPRも直接リポジトリにして問題ありません。 asciidwango/js-primer: JavaScriptの入門書 おかしい場所を選択した状態で右下にある”Bug Report”ボタンを押せば、簡単にtypoとかのバグを報告できます。(PRでも歓迎) 前置きはこの辺までで、ここから編。 この記

    ECMAScript 2015以降のJavaScriptの`this`を理解する
  • typeof | JavaScript 日本語リファレンス | js STUDIO

    例 通常のケース // Numbers typeof 37 === 'number'; typeof 3.14 === 'number'; typeof Math.LN2 === 'number'; typeof Infinity === 'number'; typeof NaN === 'number'; // "数値では無い"にも関わらず… typeof Number(1) === 'number'; // この形式は使用しないでください! // Strings typeof "" === 'string'; typeof "bla" === 'string'; typeof (typeof 1) === 'string'; // typeof always return a string typeof String("abc") === 'string'; // この形式は使用しない

  • typeof null === 'object' は ECMAScript 3 の仕様バグ - @think49の日記

    ECMAScript 3 の typeof 演算子 typeof演算子は対象の型を返す演算子ですが、null に適用すると "object" が返ってきます。 console.log(typeof null === 'object'); // true では、null は Object 型なのか、というとそうではなくて仕様バグだったりします。 Changed 3 weeks ago by brendan You know, this all came about because of rushing in early May 1995, which led to a leak of type tag representation shared by null and object types. But null means "no object", so it didn't raise h

    typeof null === 'object' は ECMAScript 3 の仕様バグ - @think49の日記
  • Private members in ES6

    I’ve recently started to see a trend of methods prefixed with the underscore character in one of our projects at Sky. This is good in the sense that as our application is growing, and the number of methods we expose in our classes grows with it, the developers are considering what the public interfaces to these classes look like and finding a common pattern to distinguish the private interfaces. H

    fmn10
    fmn10 2017/03/24
    これが1番わかりやすくまとまってる感じ
  • niw.at — Base128

    最近お遊びで JavaScript を書いていると気がついたら C++ を書いてるのはなぜか疑問に思っていたのですが、それは Node.js の拡張モジュールを作っていたからなのでした。 というわけで、しょうもないものができたので公開します。ついに npm デビュー★ Base64 とは Base64 とは、オリジナルのバイナリを 64 文字の可視 ASCII 文字、つまり大文字小文字英字52文字と数字10文字とあと + と / (余白を埋めるのに = も) を使って表現する方式で、例えば、オリジナルの 3 オクテットのデータ (24bit) は 4/3 倍されて 4 オクテット (32bit) になります。 結果、バイナリデータがクリーンな ASCII 文字で表現できるので可搬性が増したりします。 実際、そうはいっても + と / があるので、URL に入ってるとダブルエスケープされたり

    fmn10
    fmn10 2017/01/28
    “UTF-8 の仕様上、… 0x00 から 0x7F … はどのような組み合わせをしても不正な UTF-8 表現にはなりません。つまり、0x00 から 0x7F の 7bit は自由にバイナリを埋め込んでいいことになります。”
  • がんばらないTypeScript環境ほしい - 藻ログ

    色々あってシンプルなtypescriptの開発環境をつくろうとして消耗した話です 小規模なプロジェクトをシュって書けるシンプルな環境がほしい でもナウくなっててほしい そもそもナウいとは... 最近のフロントエンドの人は何を言ってるのか全然わからないし依存パッケージが多すぎて混乱する でもちょっとはナウくなっててほしい 試行錯誤した結果 npm scripts + browserify + tsify + watchify で構成することにきめた. 体を1行も書かないまま日付が変わっていた. もうナウくなくていいから体が書きたい 構成 とりあえずbuildすると色々なものがdistに送られる構成にした ├── dist (static-assets) │ ├── bundle.js │ ├── bundle.css │ └── index.html ├── src │ ├── ts │

    がんばらないTypeScript環境ほしい - 藻ログ
  • 1