タグ

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

  • 関連タグはありません

タグの絞り込みを解除

JavaScriptとTipsとtipsに関するefclのブックマーク (55)

  • jQuery で ;(function () ...と、セミコロンで始めることがあるのはなぜか - わからん

    追記 たくさん反響があって驚きました。念の為書いておくと、私はこの記事で仕組みを解説しただけで、このようなノウハウに賛成も反対もしていません。追記はここまで。 azu さんのつぶやきで知った、Dangers of anonymous function closures が、例がよいのに説明が少ないので、ここで丁寧に解説します。なぜ、 jQuery で ;(function () ...とセミコロンで始めるコードがあるのかがわかります。 次のサンプルの実行結果を想像して下さい。 var foo = function(bar) { console.log("foo"); return bar; } (function(){ console.log("bar") })(); 結果は "foo bar" を印字します。多くの場合、これは意図しない挙動だと思います。"bar" だけだと思いませんか。

    efcl
    efcl 2011/09/04
    腐った別ファイルを読み込んだりして発生することがある。 即時実行関数の誤動作を防ぐためにjQueryプラグインなどで使われてたりする方法の動作原理について解説。
  • Avoiding The Quirks: Lessons From A JavaScript Code Review

    August 26, 2011 I was recently asked to review some code for a new JavaScript application and thought I might share some of the feedback I provided as it includes a mention of JavaScript fundamentals that are always useful to bear in mind. Code reviews are possibly the single biggest thing you can do to improve the overall quality of your solutions and if you're not actively taking advantage of th

    Avoiding The Quirks: Lessons From A JavaScript Code Review
    efcl
    efcl 2011/08/27
    避けるべきパターンとそれの解決方法が綴られている
  • online comment (オンラインコメント) - latest log

    uupaa.js のコメントは、多くの場合オンラインコメントとして記述しています。 例えば、uu.ajax の GC部分では function gc(abort) { if (abort) { // [IE6][IE7][FIX] xhr.abort throw exception // http://twitter.com/uupaa/status/26953945895 try { xhr && xhr.abort && xhr.abort(); } catch (err) {} } watchdogTimer && (clearTimeout(watchdogTimer), watchdogTimer = 0); xhr = null; //{@mb _gecko && uueventdetach(win, "beforeunload", ng); // [Gecko] //}@mb

    online comment (オンラインコメント) - latest log
    efcl
    efcl 2011/07/03
    コードにブログ記事のURLを埋め込んでwhy部分を書く
  • JavaScript Module Pattern: In-Depth

    The module pattern is a common JavaScript coding pattern. It’s generally well understood, but there are a number of advanced uses that have not gotten a lot of attention. In this article, I’ll review the basics and cover some truly remarkable advanced topics, including one which I think is original. The Basics We’ll start out with a simple overview of the module pattern, which has been well-known

    efcl
    efcl 2011/06/12
    JavaScriptのモジュールパターンいろいろ
  • modernizr.js

    Copyright (c) 2009-2010 Dual-licensed under the BSD or MIT licenses. http://www.modernizr.com/license/ Modernizr is a script that detects native CSS3 and HTML5 features available in the current UA and provides an object containing all features with a true/false value, depending on whether the UA has native support for it or not. Modernizr will also add classes to the element of the page, one for e

    efcl
    efcl 2011/06/05
    modernizr.js のコメント付きソース(docco) ブラウザ間でのはまりごとなどのエッセンスが詰まってる
  • 140byt.es -- Click ↑↑ fork ↑↑ to play!

    README.md 140byt.es A tweet-sized, fork-to-play, community-curated collection of JavaScript. How to play Click the button above to fork this gist. Modify all the files to according to the rules below. Save your entry and tweet it up! Keep in mind that thanks to the awesome sensibilities of the GitHub team, gists are just repos. So feel free to clone yours and work locally for a more comfortable en

    140byt.es -- Click ↑↑ fork ↑↑ to play!
    efcl
    efcl 2011/05/28
    140byt.es による、140バイト(Twitterに倣うなら140文字)で書けるJavaScript。 特徴的なのはグローバルスコープに漏らしてはいけないというルールがある。
  • Byte saving techniques

    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

    Byte saving techniques
    efcl
    efcl 2011/05/22
    コードゴルフのようにとにかくコードを短くテクニックなどをまとめたもの。 JS1K, golf
  • new を不当に貶める陰謀と JavaScript におけるクラスの継承構造の話 - vivid memo

    私は陰謀論者じゃないですし JavaScript の new 演算子が大好きなわけでも大嫌いなわけでもないです。 念のため。 記事は Hiraku さんが書かれた下記記事への言及です。 newを封印して、JavaScriptでオブジェクト指向する(1) newを封印して、JavaScriptでオブジェクト指向する(2) newを封印するべき4つの理由 new 演算子は使うな!? 「newを封印するべき4つの理由」 でも new がいかに糞であるかが書かれていますし、その記事からも言及があるように Crockford さんが書かれた書籍 『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』 でも new 演算子は Bad Parts に分類されています。 new 演算子が忌避される理由はいろいろあるみたいですが、Hiraku さんの記事では n

    new を不当に貶める陰謀と JavaScript におけるクラスの継承構造の話 - vivid memo
    efcl
    efcl 2011/05/17
    new 演算子について。 クラスとインスタンスとオブジェクト
  • Javascriptのスキルをもう一段上げたいです。

    DOM はお分かりとのことですが、例えば下記の No.3-4 の内容は理解できますか。 http://chaichan.web.infoseek.co.jp/qa3000/qa3355 … 理解がおできなら、練習として CSS セレクタエンジンの作成をお勧めします。速度や実用性は考えなくて構いません。完成しなくても、別目的に転用できる部品がいろいろできるでしょう。 あるいは、UI に興味がおありなら下記をご一読下さい。 http://www.ibm.com/developerworks/jp/web/library … ただし、ここのコードは IE6/7、Fx 1.5、Safari 3 におけるメモリリークパターンなので使っては駄目です。考え方を取り入れつつ、もっと良い実装を書いて下さい。DOM Events に則った別のやり方があります。 もしも、もう少し覚えることがありそうだとお感じな

    Javascriptのスキルをもう一段上げたいです。
    efcl
    efcl 2011/05/14
    CSS セレクタエンジンを作るとワンランクJavaScriptレベルが上がるらしい
  • JavaScriptのベストプラクティス メモ (#jsEdu) - @think49の日記

    Togetter - 「JavaScriptのベストプラクティス大会 jsEdu」 で紹介されていて、JavaScriptベストプラクティス30選-jsEdu | Web scratch に記載がないツイートをまとめてみました。 Ajaxで同期通信を行うと処理完了まで待たされる。非同期通信ならバックグラウンド処理となる。 function 検出を行い、ブラウザによる分岐処理を止めよう。(訳注: 例えば if (document.addEventListener) { document.addEventListener('click', clickListener, false); } else if (document.attachEvent) { ... } ) 変数の宣言後にデータ型を変更してはいけない。 var test = "hello"; test = 10; 描画を高速化するな

    JavaScriptのベストプラクティス メモ (#jsEdu) - @think49の日記
    efcl
    efcl 2010/11/03
    JavaScript Tips
  • Code Snippets | CSS-Tricks

    A collection of code snippets for web developers, including code for HTML, CSS, JavaScript, PHP, WordPress, jQuery, HTAccess, and more!

    Code Snippets | CSS-Tricks
    efcl
    efcl 2010/10/22
    スニペット集。
  • javascript高速化のポイント12

    Swift/Objective-C/Java/Ajax/JavaScript/CSSなどの情報、開発中にはまったことなどをメモしていきます。 WEBアプリケーションのパフォーマンスにおいて、RIAの普及によりクライアント側の実装も複雑化してきておりサーバ側だけでなくクライアント側のパフォーマンスも非常に重要な要素となっている今日この頃。 複雑なクライアントを作ったときに、javascriptのパフォーマンスが気になったので実装レベルのイディオム的に高速化できるポイントをまとめてみた(羅列してみた)。 まぁ他にもjavascriptのロード方法とかiframeの使い方とか、はたまたjQueryなどのフレームワークを使用しているとか色々あると思うが、それはまた次回ということで。 1.length の参照を減らす 2.タイマ値はなるべく長く 3.同じイベントに登録する関数が多い場合は実行制御関数

    efcl
    efcl 2010/10/21
    JavaScriptの参照に気を配って高速化
  • JavaScriptベストプラクティス30選-jsEdu

    #jsEduから適当に選んで日語にしたものです。 訳とかは全く正確ではなく、as possibleなど表現をかなり省いてるので命令口調になってます。 フィーリング的なものはあんまり入れてないので、興味をもったらTogetter – 「JavaScriptのベストプラクティス大会 jsEdu」を読みましょう。(まとめた奴はこれの10倍くらいありますが、被ってるのや関係無いのもあるので読める程度の量です) 全てを確認したわけではないので、正確性は保証しかねます。 ==ではなく===を使うべき (自動的に型変換に行われないのでバグが減る、高速) new Object() and new Array() よりも[] or {}を使うべき。 []や{}の方がシンプル JavaScriptを高速化する6つのテクニック | エンタープライズ | マイコミジャーナルで出てくるのは間違いだと思う。 []

    JavaScriptベストプラクティス30選-jsEdu
    efcl
    efcl 2010/10/15
    JavaScriptのTipsまとめ
  • JS Quicktags

    I’ve released the JavaScript Quicktags used in Tasks Pro™, Tasks and WordPress under the LGPL license. This is a set of buttons that allow you to insert HTML tags into a content area. The tags are cursor aware – placed around a selection or at the cursor position. This is also an example of how to get the cursor position with JavaScript. Example Page A sample insertAtCursor function: function inse

    efcl
    efcl 2010/10/10
    テキストエリアでカーソルの位置に値を挿入するJavaScript関数
  • 403 Forbidden

    \閉鎖予定のサイトも売れるかも?/ アクセスがないサイトもコンテンツ価値で売れる場合も… ドメインの有効期限を更新してサイト売却にトライしてみましょう

    efcl
    efcl 2010/10/04
    JavaScriptのTips。 参考リンク集
  • JavaScript でカリー化、再び: Days on the Moon

    以前、「JavaScript で引数束縛」において関数のカリー化を試みました。しかし、そこでカリー化された関数は、そのままでは一度しか部分適用ができず、また、最初の関数呼び出しは必ず部分適用として扱われていました。 function mean3(a, b, c) { return (a + b + c) / 3; } // 「JavaScript で引数束縛」における curry 関数。 var curriedMean3 = curry(mean3); curriedMean3(1)(2, 3); // => 2 curriedMean3(1)(2)(3); // => TypeError: curriedMean3(1)(2) is not a function // そのままでは部分適用を 2 回以上行えない。 // curry(curriedMean3(1))(2)(3) なら大丈夫

    efcl
    efcl 2010/08/24
    "Array.prototype.slice.call(arguments) というのは Arguments オブジェクトを配列に変換するための決まり文句のようなものです。Array オブジェクトの slice メソッドは、配列の一部を抜き出し新たな配列として返しますが、引数を省略す
  • JavaScriptの構文チェックができるJavaScript Lintの使い方 - 小さい頃はエラ呼吸

    はじめに JavaScriptの構文チェックができるツールに、JavaScript Lintというツールがあります。今日は、このJavaScript Lintの使い方をご紹介します。 JavaScript Lint ※現在の最新バージョンは、0.3.0となっていますので、これを元に説明しています。 JavaScript Lint HTMLの文法をチェックするツールに、Another HTML-lint gateway がありますが、JavaScript LintはこれのJavaScript版だと思ってください。テキストエリアに入力されたコードをオンラインでチェックする方法とコマンドラインでチェックする方法の2つ使い方ができます。 企業でクローズドなプログラムを書いている場合、むやみやたらにソースコードをオンラインでチェックすることはできません。情報が外部に漏れる可能性があるからです。また、

    JavaScriptの構文チェックができるJavaScript Lintの使い方 - 小さい頃はエラ呼吸
    efcl
    efcl 2010/04/27
    "JavaScript Lint"の使い方。 設定方法
  • JavaScript でブロックスコープを実現する: Days on the Moon

    JavaScript には基的にブロックスコープというものが存在しない。どうしてもブロックスコープを扱いたいときは function 式を使ったりする。 var a = 10; { var a = 20; print(a); // 20 } print(a); // 20 var a = 10; (function () { var a = 20; print(a); // 20 })(); print(a); // 10 だがやはりブロックスコープがあったほうが便利ということで JavaScript 1.7 では let 式、let 文、let 宣言が導入される。 var a = 10; let (a = 20) { print(a); // 20 } print(a); // 10 しかしこれでは対応するブラウザが Firefox 2 以降などに限られる。ところが、with 文とオブ

    efcl
    efcl 2010/02/02
    withを使ったブロックスコープ。
  • jQueryを良くする25のTIPS

    jQueryを良くする25のTIPS ネタ元:Improve your jQuery - 25 excellent tips ちょっと多いですが、かなり良いTIPSがまとまっています。 Google AJAX Libraries APIを利用しよう Google AJAX Libraries APIを活用すればすばやくライブラリを読み込むことが出来ます。 <script src="http://www.google.com/jsapi"></script> <script type="text/javascript"> // Load jQuery google.load("jquery", "1.2.6"); google.setOnLoadCallback(function() { // Your code goes here. }); </script> 直接読み込むことも出来ます。

    jQueryを良くする25のTIPS
    efcl
    efcl 2010/02/02
    jQueryの高速化。 Tips、デバッグ、効率化
  • Array.concatで配列のクローン(コピー)を作成する - latest log

    JavaScriptで配列のクローンを作成しようとして、悩んでいる方もいらっしゃるようですが、 以下のように、for ループや再帰なコードを手書きする必要はなくて、Array.concat() で配列のクローンは作成できます。 Array.prototype.clone = function(){ return Array.apply(null,this) } Array.prototype.clone = function() { if ( this[0].constructor == Array ) { var ar, n; ar = new Array( this.length ); for ( n = 0; n < ar.length; n++ ) { ar[n] = this[n].clone(); } return ar; } return Array.apply( null,

    Array.concatで配列のクローン(コピー)を作成する - latest log
    efcl
    efcl 2010/01/16
    配列のコピーにconcat()を使う。