のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,837人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ+ JavaScript の質問用スレッド vol.96 +

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    551 : Name_Not - 2012/01/23(月) 13:27:08.15 ID:??? (-1,-29,-32)
    es5から実装
    まぁない場合は正規表現使えば良い
    552 : Name_Not - 2012/01/23(月) 13:46:25.36 ID:??? (+17,-29,-28)
    >>548-549
    trimが使えるのは勉強になりました
    splitとtrimでやりたいとおもいます
    553 : Name_Not - 2012/01/23(月) 13:49:08.60 ID:??? (-1,-29,-21)
    test aaa bbb
    ↑2番目の単語を取得する場合ってやっぱりreplace使わないとダメですか?
    554 : Name_Not - 2012/01/23(月) 13:52:19.48 ID:??? (-1,-29,-19)
    これ読んでも分かんないんですがjavascriptの基礎にお勧めの本ってないですか
    http://alpha.mixi.co.jp/blog/?p=5332#ecma-263-3-7-2
    555 : Name_Not - 2012/01/23(月) 14:02:25.67 ID:FiCWcl31 (+63,+29,-15)
    >>552
    なんでそんなに正規表現を嫌う
    556 : Name_Not - 2012/01/23(月) 14:06:07.17 ID:??? (+57,+29,-24)
    正規表現なんて複雑なだけだし使わなくていいならそれに越したことはない
    ってのが世間一般の見解です
    557 : Name_Not - 2012/01/23(月) 14:10:31.67 ID:??? (+57,+29,-54)
    正規表現は避けては通れない道
    反復学習ソフト付き 正規表現書き方ドリルって本を買おうか悩んでるw
    558 : Name_Not - 2012/01/23(月) 14:10:56.18 ID:??? (+57,+29,-44)
    世間一般の人はそもそも正規表現なんて知らないだろ。
    プログラマとしては覚えておいて損はない。
    559 : Name_Not - 2012/01/23(月) 14:24:43.21 ID:??? (+52,+29,-2)
    覚えるのと使うのでは別問題だけどな
    560 : Name_Not - 2012/01/23(月) 14:58:09.58 ID:??? (+66,+29,-48)
    >>555
    何でも正規表現で解決するというのがイヤなだけです
    正規表現はいつもエディタで触ってますが
    562 : Name_Not - 2012/01/23(月) 15:03:41.42 ID:??? (+57,+29,-21)
    ナンデモ正規表現で解決できるマスターにオレはなりたいよ
    563 : Name_Not - 2012/01/23(月) 15:04:57.65 ID:??? (+3,-30,-26)
    例えばですが
    var a = "abcde";
    からcdeだけ取りたい場合に
    a.replace(/ab/, "");
    なんてするのがイヤなんですよ
    a.substring(2);
    でいいじゃないですか
    564 : Name_Not - 2012/01/23(月) 15:10:45.44 ID:FiCWcl31 (+27,+29,-13)
    それを正規表現でやろうとは思わんだろう
    565 : Name_Not - 2012/01/23(月) 15:19:36.05 ID:??? (+36,-30,-40)
    function a(){
    for(var i=0;i<10;i++){}
    }

    function a(){
    var i=0;
    for(i=0;i<10;i++){}
    }

    この二つの違いって何ですか?
    566 : Name_Not - 2012/01/23(月) 15:29:37.88 ID:??? (+17,-5,-1)
    var文を書く場所が違うだけ
    567 : Name_Not - 2012/01/23(月) 15:41:56.85 ID:??? (-1,-29,-6)
    二つ目はこう書けるお

    function a(){
      var i=0;
      for(;i<10;i++){}
    }
    568 : Name_Not - 2012/01/23(月) 15:45:18.46 ID:??? (+62,+29,-24)
    >>565
    前者のほうがプロの香りがしてcool。

    …と信じてる自称エキスパートがたくさんいるよw
    569 : Name_Not - 2012/01/23(月) 15:47:49.29 ID:??? (+3,-24,-33)
    前者も後者もfor以外からiも参照できるし違いはない思うんだけど
    570 : Name_Not - 2012/01/23(月) 15:50:16.73 ID:??? (-1,-29,-27)
    違いはないが後者の始めにvar i = 0;と0を宣言するのはなんか違和感あるな
    そこはnullでいいんじゃねと思う
    571 : Name_Not - 2012/01/23(月) 15:58:45.75 ID:??? (-4,-27,+0)
    数値なのにnullですか
    572 : Name_Not - 2012/01/23(月) 16:01:41.60 ID:FiCWcl31 (+22,+29,-1)
    何も書かない、って意味じゃないかと
    573 : Name_Not - 2012/01/23(月) 16:15:35.33 ID:??? (-1,-29,-10)
    後者を書くとしたら

    function a(){
    var i/*,他の宣言*/;
    for(i=0;i<10;i++){}
    }

    こうだろうなぁ


    574 : Name_Not - 2012/01/23(月) 16:23:24.30 ID:??? (+3,-30,-79)
    ループが2回、3回とある場合はどれにする?

    function a(){
    for(var i=0;i<10;i++){}
    for(var i=0;i<20;i++){}
    }

    function a(){
    for(var i=0;i<10;i++){}
    for(i=0;i<20;i++){}
    }

    function a(){
    var i;
    for(i=0;i<10;i++){}
    for(i=0;i<20;i++){}
    }

    function a(){
    for(var i=0;i<10;i++){}
    for(var j=0;j<20;j++){}
    }
    575 : Name_Not - 2012/01/23(月) 16:26:43.99 ID:??? (+15,-30,-87)
    巻き上げ(Hoisting)の問題があるから、変数宣言はどんなものでも関数スコープの先頭にをまとめておく
    という文化もある
    そうすると

    function a() {
    var i;
    for(i = 0; i < 10; i++) {
    // 中身
    }
    }

    みたいなコードを書くようになる

    hoistingってなんぞ、という人は
    http://bonsaiden.github.com/JavaScript-Garden/ja/#function.scopes
    「巻き上げ」のところを読んでおくといい
    576 : Name_Not - 2012/01/23(月) 16:42:29.53 ID:??? (-1,-29,-16)
    型推論的にどうせ外に出すなら
    var i=0がベスト
    577 : Name_Not - 2012/01/23(月) 17:12:12.97 ID:??? (+0,-29,-3)
    >>543
    /[a-z]/.exec(string)
    578 : Name_Not - 2012/01/23(月) 17:18:56.97 ID:??? (-1,-29,-13)
    >>575
    自分は外に出してwhileにするなあ
    579 : Name_Not - 2012/01/23(月) 17:37:35.84 ID:??? (-2,-30,-17)
    while(true){}の代わりにloop{}が欲しいと良く思う
    580 : Name_Not - 2012/01/23(月) 17:38:55.23 ID:??? (+103,+29,-36)
    for外で参照するんなら定義も外で、しないのならfor文のとこでってしてる。
    一緒なんだけど、ブロックスコープがないことを知らない人にでも違和感がないようにと。
    デメリットもなさそうだし。
    581 : Name_Not - 2012/01/23(月) 17:56:44.10 ID:??? (+70,+29,-3)
    >>580
    一個や二個ならいいけどそれ以上だと読みにくいでしょ
    582 : Name_Not - 2012/01/23(月) 18:06:34.08 ID:??? (+52,+29,-3)
    んで答え分かる奴は1人もいないと
    583 : Name_Not - 2012/01/23(月) 18:07:01.32 ID:??? (+57,+29,-20)
    ちなみにこの問題、今日のクックパッドのトイレで出題されている問題らしい
    584 : Name_Not - 2012/01/23(月) 18:18:07.51 ID:??? (+52,+29,+0)
    答えって何やねん
    585 : Name_Not - 2012/01/23(月) 18:19:51.66 ID:??? (+57,+29,-4)
    ごめん今日じゃなくて先週でてた問題だった
    586 : Name_Not - 2012/01/23(月) 18:35:42.17 ID:??? (+12,-23,-1)
    >>580 でFA
    587 : Name_Not - 2012/01/23(月) 18:54:03.86 ID:??? (+43,+15,-14)
    他の言語だと、重複宣言は大抵エラーになるから、
    JavaScript でも重複は避ける習慣にしてる。
    588 : Name_Not - 2012/01/23(月) 19:00:27.13 ID:??? (+57,+29,-19)
    入っとくけど作法の違いを聞いてる質問じゃないからね
    589 : Name_Not - 2012/01/23(月) 19:06:04.13 ID:??? (+52,+29,-4)
    言っとくけど作法と習慣は違うからね
    590 : Name_Not - 2012/01/23(月) 19:07:44.89 ID:??? (+7,-29,-5)
    var a;
    a =1;
    var a;

    ってたまにやるけどやめたほうがいいんですか?
    変数aを空っぽにするためにたまーにやるのですが
    591 : Name_Not - 2012/01/23(月) 19:14:04.76 ID:??? (+76,+29,-51)
    >>514
    ありがとうございます、動きました!
    確かに古いんですが分かりやすく、これでほとんど終わりなので
    最後までやってみます。
    ちなみに、入門書にはダブルクオートで囲ってないんですが
    誤植でしょうか?
    今までもdocument~は囲ってなかったと思うんですが。
    なぜダブルクオートで囲わなければいけないのか教えてくれると助かります。
    592 : Name_Not - 2012/01/23(月) 19:14:09.47 ID:??? (-6,-29,+1)
    a = null;でいいじゃん
    593 : Name_Not - 2012/01/23(月) 19:31:50.66 ID:??? (+85,+29,-28)
    配列を破壊的にフィルターして削る方法はないですか?
    非破壊的な方法しか見つからないのですが破壊的な方法を伝授してください
    594 : Name_Not - 2012/01/23(月) 19:34:44.91 ID:??? (+47,-30,-181)
    >>591
    http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/intro/sgmltut.html#h-3.2.2
    「属性の値を引用符で囲わなくてよいケースもある。」の段落を参照
    今回は空白やアスタリスク、イコールが含まれているので、クオートで囲まねばならない

    514の後半で指摘した部分について
    ・<script type="text/javascript">
    ・name属性の代わりにid属性を付けてdocument.getElementById('myimg').src
    ・setTimeoutの第一引数は文字列を渡すと、その度に再パースが必要になる(無駄)
     関数オブジェクトをそのまま渡してsetTimeout(changeimage, 1000)とすべし

    特に<script language="javascript">と書いている本・サイトはそれだけで古いと判断していい
    595 : Name_Not - 2012/01/23(月) 19:37:06.54 ID:??? (+11,-30,-68)
    >>593
    var ary = [1, 2, 3, 4, 5];
    var i = ary.length;

    while (i--) {
      if (ary[i] % 2 === 0) {
        ary.splice(i, 1);
      }
    }

    alert(ary);
    596 : Name_Not - 2012/01/23(月) 19:39:24.86 ID:??? (+2,-29,+0)
    >>593
    splice で自作。
    597 : Name_Not - 2012/01/23(月) 19:39:50.69 ID:??? (+19,+1,+0)
    oh...
    598 : Name_Not - 2012/01/23(月) 19:42:36.77 ID:??? (+78,-30,-59)
    letが使えれば>>580とかのは解決するんだけどな
    現状使えない(使えても限られてる)し>>575-576のがベスト

    >>590
    それ空になってない

    >>593
    [].filter(function (value,index,thisArray) {
    });
    こんな感じで引数くるからthisArray書き換えれば良いよ
    599 : Name_Not - 2012/01/23(月) 19:48:41.54 ID:??? (+61,+27,-1)
    >>598
    それはコピーを生成してる
    600 : Name_Not - 2012/01/23(月) 19:49:23.84 ID:??? (+98,+29,-3)
    >>594
    よくわかりました、本当に参考になります。
    ありがとうございます。
    本も最近のものをもう1冊買ってやってみようと思います。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について