var list = [ 0, 1,]; // list.length => 3 var x = { a:1, b:2,}; // Error
var list = [ 0, 1,]; // list.length => 3 var x = { a:1, b:2,}; // Error
問題です。 問題: 呼び出すたびに、1,2,3,...を返すような関数 f( )を定義せよ。 f(); // 1 f(); // 2 f(); // 3 この問題、解けますでしょうか? 普通の関数では、できないと思います。 しかし「クロージャ」というのを使えば、このようなことができます。 クロージャって何だ? 「クロージャ」という言葉を、プログラムの本やサイトで目にすることがありますよね。 私が最初に見たのは続・初めてのPerl 改訂版(アルパカ本)でした。 まったく理解できませんでした。 その後、404 Blog not foundやnaoyaさんのブログなどで「クロージャ」という単語を目にしました。 やはり、まったく分かりませんでした。 とどめの一撃はWikipediaの解説記事。 クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境
Home Subscribe function funcname(args){ do something}; は var funcname = function(args){ do something}; と等価になる。 javascriptを理解するためのたった2つの大切なこと javascriptを理解するためのたった2つの大切なこと:改 引用元の記事はすばらしい記事ですが、ここは間違いです。 等価だと思っていたらひどい目にあいます。 サイ本 第5版のp.96にちゃんと書いてあります。 function文はプログラムの静的な構造を定義するだけなのです。 JavaScriptコードが解析されコンパイルされたときに、関数は定義されます。 どういうことかというと、 function foo( ){ ... } はコンパイル時に関数が定義されます。 var foo = function( ){
id:cheesepie:20070131:1170172709 最近は、こういう風に JavaScript を勉強する人が増えていてとても嬉しいです ^^ id:cheesepie さん頑張ってください! で、ちょっと配列と連想配列の使いかたが違うようなので、エントリーを書こうと思いました。おせっかいだったらすみません>< ! やっぱり、このへんが JavaScript の難しいところのひとつなのだろうか。 ということで、 JavaScript の配列と連想配列の違い いってみよおー 連想配列とは JavaScript では連想配列は一番シンプルなオブジェクトのことである。つまり、すべてのオブジェクトは連想配列である。 以下のすべての連想配列はまったく同じものである。 // 1 var obj = { hoge: 'hoge' }; // 2 var obj = { 'hoge': 'h
【1Page】 先生:前回は 『関数』について 説明した 『関数』を使った プログラムでは 関数内に入ったり 出たりして処理が 進んでいた 実はこの 『関数』の内と外で 『世界』が違うんだ 【外】 function kannsuu() { 【内】 } 【外】 3人:世界? 先生:そうだ 括弧の中では ローカル ルールが 適用される 遊:ローカル ルールって 地方ルールってこと? 先生:ああ 【2Page】 遊:守のお弁当を 私が食べていいみたいな 教室内で決まっている ルールのこと? 守:(げんなり) 先生:あーまあ そういうことだ 先生:じゃあ詳しく 説明するぞ プログラム全体が 学校なら 『関数』内は 教室の中の ようなものだ 『プログラム全体=学校』 function kyousitu() { 『関数の中=教室の中』 } 『var 〜』と 作った変数は その『関数』の 内側だけで 有
ウェブページ(いわゆるホームページ)の作り方を解説します。 特にJavaScriptの使い方と携帯電話向けコンテンツの作り方に力を入れていきます。 また、初めてウェブサイトを作ってみたいと言う方のために、HTML & CSS 入門もご用意しました。 しらぎくのウェブサイト作成入門・最新の更新のご案内。 令和 4年 5月 1日 JavaScript リファレンスを取り敢えず公開出来る範囲で公開しました。 令和元年 8月 7日 CSS の小技に CSS 第三水準で実現するマーキー(marquee)を追加しました。 令和元年 5月18日 CSS の小技掲載の CSS スプライトを更新しました。 平成31年 4月29日 CSS の小技に縦書きにするにはを追加しました。 平成31年 4月 6日 CSS リファレンスに書字モードモジュール(縦書きなどに対応)を追加しました。 平成30年 9月25日 従
twitterでid:teramakoさんと@ssmylhさんに教えていただいたので覚書。 2012/2/18 0:45 ブコメで突っ込まれまくっているので全体的に修正。 ヤリたいこと createTextNodeで半角スペース(nbsp)半角スペースを生成して、span要素に挿入したい。 2012/2/18 0:52 修正 混同して書いていましたが、nbspではなく半角スペースです。nbspと半角スペースは別物です。 NBSPと通常のスペースの違いは、NBSPを含む文字列が行末に来て、かつ長すぎて行に収まらない場合、文字列全体(NBSPでつながっている文字列も含めて)が次の行へ移動することにある。これは通常の文字列の折り返しと類似している。たとえば、文字列“ambidextrously”は決して分割されることはなく、“am bi dextrous ly”(すなわち“am bi dextr
って使えないんですね。 var array = []; array["a"] = "string a"; array["b"] = "string b"; console.log(array.length); 見事に0が返ってきます。意味が分かりません。 まぁ今作ってるものにはlengthプロパティ使うつもりないし、全走査するときもfor in使えるからいいや!と思っていたのですが、socket.io経由で上のarrayという名の連想配列をサーバ->クライアントに渡したら空の配列しか取り出せませんでした。 結局設計者の意図を読んで、それに合わせた使い方しないといけないのかな。 参考:http://d.hatena.ne.jp/amachang/20070202/1170386546
ペパボ社内で先月から行っている JavaScript ソースコードリーディング勉強会。 ライブラリを中心にいくつかのコードを読んだので、ちょっと気になっていた JavaScript で public/private*1 を実装する方法をまとめてみる。 第1回目に読んだのは SVG の描画に便利な Raphael のプラグイン、raphael.sketchpad。 https://github.com/ianli/raphael-sketchpad 超コードを省略。略して超略。 (function(Raphael) { Raphael.sketchpad = function(paper, options) { return new SketchPad(paper, options); } var SketchPad = function(paper, options) { ... }
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く