タグ

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

タグの絞り込みを解除

JavaScriptとjavaScriptに関するlazexのブックマーク (179)

  • 【今日のバグ取り】 JavaScript でコールスタックが溢れていたのをどうにかした話 - 無駄と文化

    lazex さまのはてブコメントを受けて、animation プロパティを使った改良版を書きました。完全にこっちの方が良いので、参考にするならばどちらかというと新実装の方で。 lazex さま、ご指摘ありがとうございます。 JavaScript のコールスタックが溢れていたのをどうにかしたら JS 要らなくなった話 先日、とあるサイトを見ていたら JavaScript でエラーが出ているっぽいのを見つけました。 Chromeで見たときのエラーの内容はこんな感じ、 jquery.min.js:2 Uncaught RangeError: Maximum call stack size exceeded どうやらコールスタックがいっぱいになって溢れているようですね。 スタックトレースを辿っていくと、以下の箇所がエラーの原因のようでした。 $(document).ready(function()

    【今日のバグ取り】 JavaScript でコールスタックが溢れていたのをどうにかした話 - 無駄と文化
    lazex
    lazex 2016/11/19
    js(es6)にtail call optimizationはあるし、アニメーション後のcallbackは非同期だから22時間たとうが問題ないし、cssにするならtransitionよりcss-animationのほうが向いてるし、最近ならjsでwebanimation使えるし。。。
  • そのJavaScriptの関数は本当に純粋関数? | POSTD

    (2016/12/11、いただいたフィードバックをもとに翻訳を修正いたしました。) JavaScriptにおいて”純粋関数”とはどういう意味でしょうか? 一般的なプログラムの用語では、純粋性というのは”参照透過性”として知られています。カッコよく言うと、「 式や関数の呼び出しをその結果と置き換えたとしても、プログラムの振る舞いが決して変わらない 」こと、また別の言い方をするなら、「 同じ入力値を渡すたび、決まって同じ出力値が得られる 」ということです。 これなら直感的に理解できそうに聞こえますし、 x => x * 10 などの関数は純粋に見えます。これに数字の 3 を引数として渡したら必ず、出力値として 30 が得られますからね。では、ある関数が純粋で別の関数が純粋でないと、どうしたら分かるのでしょう? コードを読むだけで十分でしょうか? 一般的にどう思われているかを見てみましょう。昨日

    そのJavaScriptの関数は本当に純粋関数? | POSTD
    lazex
    lazex 2016/10/14
    Array.isArray.toString=_=>"function isArray() { [native code] }" こうすればisArrayも書き換えられるしキリがない気がするなー
  • GitHub - jhusain/eslint-plugin-immutable: ESLint plugin to disable all mutation in JavaScript.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - jhusain/eslint-plugin-immutable: ESLint plugin to disable all mutation in JavaScript.
  • JavaScript で クラスベースの設計より関数指向の実装を薦める理由 + GraphQL について - mizchi's blog

    最初に: 「Functional Programming 最高!」という話ではないです JSは通信やストレージに保存するデータの扱いの関係で、JSONにシリアライズできることが至上命題になるケースが多いので、クラスベースの設計で自身に副作用を起こすメソッドより、イミュータブルな T => T なstatic methodとして切り離しておくと扱いやすいケースが多い— 現場の声 (@mizchi) 2016年9月6日 複雑なオブジェクトのシリアライズは簡単だけど、逆にシリアライズされたオブジェクトからビルダを構築するのが難しいので、JSONの構造体自身とは別に独立して独立したメソッドとしてビルダが切り離されている方が扱いやすい— 現場の声 (@mizchi) 2016年9月6日 一応コンストラクタ名を保存してシリアライズ/復元する方法はあって、RPGツクールMVのコードを読むとそういう感じに

    JavaScript で クラスベースの設計より関数指向の実装を薦める理由 + GraphQL について - mizchi's blog
    lazex
    lazex 2016/09/07
    納得。たまにクラスっぽく作るとstorage保存のJSONとかpushStateやpostMessageのstructured cloneの形式から復元が大変。
  • JavaScriptでPythonの文字列掛け算的な事 - 面白コンテンツ探求日記

    Pythonでは >>> "prpr" * 10 prprprprprprprprprprprprprprprprprprprpr こんな感じに掛け算感覚で繰り返し文字列を得る事ができる。 これと同じことをJavaScriptでもやりたくて、 new Array(10).join("prpr"); こんな感じにしてる。他に良い方法は無いのかな

    JavaScriptでPythonの文字列掛け算的な事 - 面白コンテンツ探求日記
    lazex
    lazex 2016/09/01
    new Array(10).join("prpr") だと9回しかprpr言ってないよ。new Array(11)にしないと。IE捨てるなら"prpr".repeat(10)が楽
  • org-rabo.com

  • JavaScript の Automatic Semicolon Insertion (ASI) : (*x).b=z->a+y/c

    ◆ ASI の仕様です ◆ ASI を理解して快適なノーセミコロンライフを送りましょー ◆ 文ごとに改行していれば 特定の文字から始めるときに ; から始めるだけ JavaScript はコード書く側からするとセミコロンいらない言語になりますが 内部的にはセミコロンを使って文を区切っています JavaScript のパーサが文の終わりと判断できたらセミコロンを自動で挿入してくれるので 書く側はセミコロンを使う必要がありません どんなときにセミコロンが挿入されるのかは ECMAScript のスペックに Automatic Semicolon Insertion (ASI) という名前で定義されています 最近リリースされた ECMAScript 2016 の仕様にあわせて解説します ほとんど Google 先生に頼りきりな翻訳で読んでますので 変なところがないともいえませんが コード動かして

    JavaScript の Automatic Semicolon Insertion (ASI) : (*x).b=z->a+y/c
  • CSS in JS(Elm)したら想像以上に良かった - ジンジャー研究室

    追記 最新の感想も合わせてご覧ください。 jinjor-labo.hatenablog.com React界隈では結構前から「CSS in JS」と言って、雑に言うと「CSSはイケてないからJSでインラインスタイルを書いてしまえ」という話がある。(ちゃんと知りたい人はこちら) 自分も前々からCSSは変数が使えないとか名前が被るとか諸々イケてないのは同意してたんだけど、じゃあJSで書くのが良いかと言われたら「いや流石にロジック汚れるんじゃね?」とか「CSSの便利機能を捨てて平気なの?」とか色々と懐疑的だったんだけど、1~2か月書いてみたら想像以上に良かったので感想を書くことにした。 まず一番に主張したい部分を先に言うと、こう。 (誤解)JSのコードがスタイル記述で汚れる (正解)JSのコードがスタイル記述から解放される 前提 実際に書いたのはJavaScriptではなくElmなので以下は全て

    CSS in JS(Elm)したら想像以上に良かった - ジンジャー研究室
    lazex
    lazex 2016/05/31
    よく読んでないけどJSでCSS書くことはしなくて、クラスや属性の書き換えのみでそれに設定しておいたCSSが適用されるの一番だと思う
  • left-padの文字列連結はクソではない - NullPointer's

    例のleftpad, GCを虐めるためとかコンパイラの最適化を確認するために用意する、「無駄に一時オブジェクト量産するクソコードの典型例」みたいな実装なので、こんな小さい関数のために、信頼できない人のコードを、実装を見るでも無く、依存性追加してたってことで、— INADA Naoki (@methane) March 24, 2016 ここから始まる一連の、モジュールの依存性に関する議論はなかなか興味深いが、自分的に気になったのは以下の一節 GCを虐めるためとかコンパイラの最適化を確認するために用意する、「無駄に一時オブジェクト量産するクソコードの典型例」みたいな実装 ソースを見てみようか。 left-pad/index.js at 0e04eb4da3a99003c01392a55fa2fdb99db17641 · azer/left-pad · GitHub なるほど一見するとクソコー

    left-padの文字列連結はクソではない - NullPointer's
    lazex
    lazex 2016/03/26
    test2のsubstringしてるところを、他に合わせてlenを計算してrepeatの引数にしたほうが更に早くなる
  • Web上に表示された画像をそのまま編集できるJSライブラリ「DarkroomJS」を使ってみた! : うえぶはっく

    画像編集系のJavaScriptライブラリはいくつか存在しますが、その中でも非常にシンプルで扱いやすく、直感的な操作が人気の「DarkroomJS」をご紹介しようと思います! 任意の「imgタグ」を指定することで、専用の「画像編集ツールバー」が表示されるので、そのままWeb上で加工をすることが出来るようになります。 必要なファイルを揃えよう! 「DarkroomJS」は、Canvas APIを効率よく扱える「fabric.js」をベースに開発されていることを踏まえて、事前に必要なファイルは以下の3つになります。 darkroom.css darkroom.js fabric.js これらのファイルは、GitHubからダウンロードして使うか、公式サイトのリンクを利用すると簡単です。 【darkroom.css】 http://mattketmo.github.io/darkroomjs/bu

    Web上に表示された画像をそのまま編集できるJSライブラリ「DarkroomJS」を使ってみた! : うえぶはっく
    lazex
    lazex 2016/03/09
    便利だけど結局最後に"toDataURL"が必要だから外部のドメインの画像を保存することはできないんだよなー
  • Spirit - The animation tool for the web

    SpiritThe ultimate tool to create high-quality animations directly in the browser. Important Notice: I want to extend my deepest gratitude to everyone who has supported Spirit over the years. After careful consideration, I have made the difficult decision to discontinue Spirit as a service. Read more ...

    Spirit - The animation tool for the web
    lazex
    lazex 2016/02/13
    左下が口に見えて気持ち悪いキャラだと思ったけど、他の画像を見てかわいいおばけだとわかった
  • UnityScript と JavaScript の違い

    僕は今まで Unity では JavaScript を使用して開発してきたのだけど、先日同僚と UnityJavaScript についての話になったので持ち帰ってまとめてみた。 Unity における JavaScript Unity では C#, JavaScript, Boo の三種類でスクリプトを書く事ができます。この3種類は一つのプロジェクト内で混在して使う事ができるので、例えば普段は JavaScript で書いてるが C# で書かれた Assets を導入して使うなども可能です。 Webの情報などを見ていると使用者や参考にできるものが多いのは C# と JavaScript ですね。そして Boo は全然見ないです。よく見てないですが Python っぽいスクリプト言語らしいです。特にこだわりが無ければ C# か JavaScript を使用するのが良いです。 私も最初に買

    UnityScript と JavaScript の違い
    lazex
    lazex 2015/11/22
    そんな違うのか。それならややこしくなるから C# か Boo でいいような
  • 実装して理解する遅延評価の仕組み 〜 thunkを絵に描いて理解しよう・JavaScriptでHaskellを実装!? - プログラムモグモグ

    この記事では, Haskellに用いられる「遅延評価」の仕組みを, 図に描いて説明します. 更に, 遅延評価版のフィボナッチ数の無限列を, JavaScriptで実装します. 遅延評価とはどのように動くのか, 考えて行きましょう. HaskellのコードとJavaScriptのコードの比較 Haskellでの x = y y = 10 と, JavaScriptの var x = y; var y = 10; というコードを考えてください. Haskellのコードは, これだけでは何も起こりません. print xとすると, x = y = 10 となって 10 が表示されます. 一方, JavaScriptのコードは var x = y; を評価した瞬間, 「ReferenceError: y is not defined」というエラーが出ます. 更に, main = let x = 1

    実装して理解する遅延評価の仕組み 〜 thunkを絵に描いて理解しよう・JavaScriptでHaskellを実装!? - プログラムモグモグ
    lazex
    lazex 2015/11/21
    いつか読む
  • phiary

    ちょっとしたコードで JavaScript を豊かにしよう♪ ってこと jQuery は 嫌い 使いたくない. だけど Pure JavaScript だとちょっと物足りないってときに使える便利なメソッドをまとめてみました. すべて Runstant によるサンプル付きなので, 実際に開いて動かして試すことができます. 実行したりコードをいじってみたりと遊んでみてください. 他にもこんなメソッドあるよーとかあれば追加するので 気軽に Twitter などでご連絡下さい. String.prototype.format() - 文字列フォーマット 文字列を拡張して Phyton っぽい format メソッドを定義しています. '(' + a + ')' って書いていたところを '({0})'.format(a) といった感じで書くことができるようになります. Define 実装です. Ob

    phiary
    lazex
    lazex 2015/11/16
    jQuery嫌いに共感した
  • ES6で花火を打ち上げる

    はじめに 夏が終わってしまいましたが、毎年恒例の花火を今回はES6で書いてみました。 前回と同じ形の花火だと移植するだけになってしまうので、花火の形も変えました。 以下の環境で動作確認しています。 Firefox 40.0.3 Chrome 45.0.2454.85 ソース index.html <!doctype html> <html> <head> <meta charset="utf-8"> <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"> <script type="text/javascript" src="./javascripts/request_animation_frame.js"></script> <script type="text/javascript" src="./javascrip

    ES6で花火を打ち上げる
  • Learn web development  |  web.dev

    Web Platform Dive into the web platform, at your pace.

    Learn web development  |  web.dev
  • Gulp.js入門 - コーディングを10倍速くする環境を作る方法まとめ | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    普通に使う分には全く困らないほどの数のプラグインがGulpにはあります。 Githubでのstar数からも明らかなように、GoogleのWenStarterKitでもGulpが採用されるなど、注目度はますます高くなっています。 Gruntとの比較 Gruntと比較してのメリット・デメリットは以下のようになります。 メリット Gruntより設定ファイルが記述しやすい StreamAPIを利用することでファイルを毎回書き出すGruntより高速でエコ デメリット 記述がよりNodeに近くなるため、複雑なことは敷居がやや高め プラグイン開発のためのドキュメントが少ない 今日のゴール Gulp.jsを使ってコーディング作業を10倍速くする! そんな環境を作りたいと思います。 1. Node.jsをインストール まずはNode.jsをインストールしましょう。 Node.js http://nodejs

    Gulp.js入門 - コーディングを10倍速くする環境を作る方法まとめ | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
  • JS.next

    概要 正規表現でドット「.」を改行文字にもマッチさせることができるようになった。 続きを読む 概要 try {  } catch( err ) {  }の( err )の部分を省略することができるようになった。 続きを読む 概要 正規表現内の好きな部分に名前を付け、その名前を使ってマッチ結果を参照できるようになった。 続きを読む 概要 プロミスの成功・失敗に関わらず継続して処理を行うためのPromise.prototype.finallyメソッドが実装された 続きを読む 概要 配列のSpread/Rest構文のように、オブジェクト内に別のオブジェクトを展開する構文が実装された。 続きを読む 概要 関数を定義する際、パラメータの末尾にカンマを付けてもよいことになった。 続きを読む 概要 対象のオブジェクトがもつ全てのPropertyDescriptorsを得られる関数が実装された。 続きを読

    JS.next
  • [JavaScript] スマホ案件でjQueryよりZeptoを使う理由(軽い)を実際に計測して確かめてみた - YoheiM .NET

    こんにちは、最近JavaScriptにどっぷりの@yoheiMuneです。 最近のスマホ案件で、jQueryよりもZepto.jsを使うという案件が身の回りで増えた気がします。 Zeptoを利用する理由として、jQueryライクに書けるけど、ファイルサイズが小さくて軽量という理由がよく挙がっています。 jQueryとZeptoでどれくらい軽さが違うのかが気になったので、計測しました。その結果を書いたのが今回のブログです。 計測結果の前にZepto.jsについて Zepto.jsは最近?流行っているらしいJavaScriptのフレームワークで、jQueryライクに書けるけど、ファイルサイズが軽量だという特徴があります。 IEなどのサポートを切っていたり、jQueryのよく使う機能のみをサポートしていたりと、jQueryの便利なところをピックアップした作りのようです。 詳細は、以下のサイトをご

    [JavaScript] スマホ案件でjQueryよりZeptoを使う理由(軽い)を実際に計測して確かめてみた - YoheiM .NET
  • PhantomJS でログインが必要なページでも自由自在にスクレイピング - 凹みTips

    はじめに PhantomJS - Scriptable Headless Browser PhantomJS はヘッドレスな(ブラウザ画面のない)QtWebKit ベースのブラウザで、JavaScriptAPI を通じて、そのブラウザを自由自在にあやつることが出来ます。使用シーンとしては、Jenkins などの CI ツールとの組み合わせによる Web ページの GUI の自動テストや、Web ページのスクリーンキャプチャ、スクレイピングなどが挙げられます。 今回は、ログインが必要なページの情報をパースして自分専用に RSS 化したいなと思い、3つ目のスクレイピング用途をベースに調べてみました。その内容を備忘録として残しておきます。 出来るようになること ログインが必要なページの HTML を取ってくる ログインが必要なページのスクリーンキャプチャを撮る PhantomJS の導入

    PhantomJS でログインが必要なページでも自由自在にスクレイピング - 凹みTips