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

このエントリーをはてなブックマークに追加
952Name_Not_Found:2014/03/13(木) 17:28:24.20 ID:???
単にむやみにグローバル関数をつかうなってことでは
953Name_Not_Found:2014/03/13(木) 17:47:43.54 ID:???
よくないというより、そのコーディングスタイルは初心者だと言ってる様だけど。
954Name_Not_Found:2014/03/13(木) 17:52:23.08 ID:???
>>949
デバイスに依存しないよう、Pointer Eventsが考案されたのでは
955Name_Not_Found:2014/03/13(木) 19:51:57.71 ID:???
>>950
一つ上位の「(2)ノーマル(基礎的な知識があり,ある程度の動くものを作れるようになった段階)」で「JavaScriptで,プロトタイプベースのOOPができる。」とあるので、それと対比しているのでは?
956Name_Not_Found:2014/03/13(木) 21:55:36.77 ID:???
レベル低すぎって思ったらWeb制作か
WebProgじゃなかったな。
957Name_Not_Found:2014/03/14(金) 07:17:45.09 ID:4E7MHRK7
教えてください!
↓のような構造のコンストラクタのインスタンスを作成し、
_closer変数の中身を確認したい場合、

HogeClass = function(n){
 this.initialize(n);
};

HogeClass.prototype = {
 initialize: function(n){
  var _closer = n;
  this.getCloser = function(){ return _closer; };
  this.setCloser = function(n){ _closer = n + 1; };
 }
};

実行ステップがprototypeの中であれば、
Chromeで"Closure"という項目で確認できるのですが、
実行ステップがprototypeを抜けた後も確認する方法はありますでしょうか?
値を保持しているという事は、どこかにはあるはずなんですよね・・・?
958Name_Not_Found:2014/03/14(金) 08:14:25.62 ID:???
なんかIE11でdomのnormarizeにバグがあるっぽいです
normarizeと同じことをする汎用的なライブラリみたいなものはないでしょうか
959Name_Not_Found:2014/03/14(金) 08:35:32.93 ID:???
>>957
よくわからないけどクロージャーを外に出せばいいんじゃないの
var hoge = (function(){
 function foo(){
  var count=0;
  return function(){
   count++;
   console.log(count);
  };
 }
 var bar = foo();
 console.log('foobar-----');
 bar();
 bar();
 bar();
 console.log('-----------');
 return bar;
})();
console.log('hoge');
hoge();
960Name_Not_Found:2014/03/14(金) 09:11:24.54 ID:???
今クロームで確かめてみたけどステップインで実行ステップが
クロージャーの中に入ればClosureの項目に変数確認できたよ
ステップオーバーだとだめだと思う
961Name_Not_Found:2014/03/14(金) 09:22:46.06 ID:???
あ実行ステップがクロージャーにないときに変数を確認したいって意味か?
だとしたら分からない
どっかに保持してるだろうけど表示させていない以上は見れないんじゃないかな
962Name_Not_Found:2014/03/14(金) 10:28:24.45 ID:???
return で関数も返せるなんて始めて知ったわ。最強の言語や。
963Name_Not_Found:2014/03/14(金) 11:39:15.29 ID:???
見つけたわ
実行ステップがconsole.log('hoge')の時に
global→hoge(小文字変数は下の方)→<function scope>→Closure
964Name_Not_Found:2014/03/14(金) 22:20:06.05 ID:???
>>958の件ですが自分で書いたらうまく動きました
短いコードで、いったいどこにバグが入り込む余地があるのか分かりません
MSのプログラマーはあほなのでしょうか
965964:2014/03/14(金) 23:39:21.66 ID:???
わたしが間違っているわけはありえません。
わたしは絶対正しいです。
IEのバグです。そしてMSは無能です。
966Name_Not_Found:2014/03/15(土) 01:31:47.09 ID:???
aa.turn({id_click:"zet_01", id_show:"q01"});
aa.turn({id_click:"zet_02", id_show:"q02"});
aa.turn({id_click:"zet_03", id_show:"q03"});
aa.turn({id_click:"zet_04", id_show:"q04"});
aa.turn({id_click:"zet_05", id_show:"q05"});
aa.turn({id_click:"zet_06", id_show:"q06"});
aa.turn({id_click:"zet_07", id_show:"q01"});

って書いているのですが、なんか短縮して書く方法ないでしょうか?
967Name_Not_Found:2014/03/15(土) 01:44:54.93 ID:???
for(var i=1;i<=7;i++){
 var hoge = 'zet_0' + i;
 var fuga = 'q0' + i;
 if(i==7){
  fuga = 'q01';
 }
 aa.turn({id_click:hoge, id_show:fuga});
}
968Name_Not_Found:2014/03/15(土) 01:52:36.73 ID:???
変数宣言いらなかった
for(var i=1;i<=7;i++){
 aa.turn({id_click:'zet_0' + i, id_show:'q0' + (i==7?1:i)});
}
969Name_Not_Found:2014/03/15(土) 01:56:24.66 ID:???
なんで7だけ
970Name_Not_Found:2014/03/15(土) 03:47:48.59 ID:???
http://jsbin.com/qeyokozi/1/edit

aタグのhrefを読むと、末尾に書いてもいない / が付きます
何故/が付くのでしょうか?
付かない場合はありますか?
971Name_Not_Found:2014/03/15(土) 03:59:36.63 ID:???
1.html
などを付けると/が付かないことが分かりました
/が付くか付かないかをどういうアルゴリズムで判定したらいいでしょうか
972Name_Not_Found:2014/03/15(土) 04:22:29.64 ID:???
/が付くか付かないかを判定する必要があるのですか?
973Name_Not_Found:2014/03/15(土) 04:23:25.84 ID:???
「URLの中に一つも/がない場合は末尾に/が付く」というアルゴリズムを思いつきました
これで合ってるでしょうか?
974Name_Not_Found:2014/03/15(土) 04:24:11.42 ID:???
>>972
答えはイエスです
975Name_Not_Found:2014/03/15(土) 04:25:44.82 ID:???
>>973
答えはイエスです
976Name_Not_Found:2014/03/15(土) 05:00:02.62 ID:BP1ZeuMu
977Name_Not_Found:2014/03/15(土) 06:32:28.19 ID:???
>>963
ありがとうございました!
978Name_Not_Found:2014/03/15(土) 06:40:07.55 ID:???
>>975
ありがとうございました
979Name_Not_Found:2014/03/15(土) 06:43:54.77 ID:???
urlに/が入ってない場合に末尾に付ける関数を書きました

function addSlashToUrl(url){
var result;
result = url.match(/(ht|f)tps?\:\/\/(.*)/i);
return (result && result[2].indexOf('/')<0)?url + '/':url;
}

これ以上クールにすることは出来ますか?
980Name_Not_Found:2014/03/15(土) 07:12:51.56 ID:???
クールではないことをクールに書こうとしているように見える…
981Name_Not_Found:2014/03/15(土) 07:53:45.49 ID:???
>>979
末尾に/を入れてはならない(or入れると全然別の意味になる)場合もあるが、それはどう考えてる?
982Name_Not_Found:2014/03/15(土) 08:14:07.74 ID:???
>>967-968
ありがとうございます。
983Name_Not_Found:2014/03/15(土) 11:35:19.78 ID:???
今までdocument.getElementsByTagName('body')[0]とかdocument.body || document.documentElementとかやってたのですが
単にbody要素への参照を取得したいのであればdocument.bodyで問題ないのでしょうか?
984Name_Not_Found:2014/03/15(土) 11:38:48.22 ID:???
そんなの自分で試せばいいし、知らない環境があるかもって
思うのなら、jQueryを使えば良い。
$('body')[0]
985Name_Not_Found:2014/03/15(土) 11:52:49.09 ID:???
>>970
hrefプロパティは絶対URLを返すからドメイン末尾に / がなければ / がつく
getAttribute を使えばhref属性値の文字列を取得出来るので / がつかない
しかし、hrefプロパティで困る状況は全く思いつかない
具体的にどうして困っているのか、補足が欲しい

>>979
replace一つで書ける
986Name_Not_Found:2014/03/15(土) 12:16:33.83 ID:???
>>970
なぜつくのでしょうか?って

http://example.com/hoge/ ← hogeディレクトリ
http://example.com/hoge ← hogeファイル


http://example.com/ ← example.comディレクトリ
http://example.com ← example.comファイルなんてのはねぇ。

だからでしょ。

正しいURLになおしてくれてるだけ。
987Name_Not_Found:2014/03/15(土) 16:12:32.72 ID:???
>>985
dom.href と dom.getAttribute('href') が違うなんてはじめて知りました
ありがとうございました
hrefが勝手に/を付けるので困るのは、aタグの同一性チェックのためです
完全に同じかを知りたかったので

>>986
言われてみれば、ドメインもディレクトリなんですね
なんか目から鱗でした
ありがとうございました
988Name_Not_Found:2014/03/15(土) 16:23:39.24 ID:???
うーん・・・

詳しくは「urlルーティング」とか「dns」で検索かけて自分で調べましょう
989Name_Not_Found:2014/03/15(土) 19:13:55.27 ID:???
hrefプロパティとhref属性は別物のようですが
プロパティと属性の違いは何ですか?
今までずっと同じ意味で使っていました
990Name_Not_Found:2014/03/15(土) 19:19:51.61 ID:???
http://e-words.jp/w/E5B19EE680A7.html

ぞくせい
属性 【 attribute/property 】
やっぱり同じ意味で使われていますね
なぜhrefだけ違うのでしょう
991Name_Not_Found:2014/03/15(土) 20:28:35.15 ID:???
URLドメイン名の次につくスラッシュはドキュメントルートのスラなんじゃないの?
992Name_Not_Found:2014/03/15(土) 22:52:05.41 ID:???
>>987
a要素ノードの比較ならオブジェクトをそのまま比較すればいいだろう
同じURL参照しているa要素の比較ならhrefプロパティで十分だろう
わざわざ、文字列比較する意味は全くないように思える
993Name_Not_Found:2014/03/16(日) 01:34:52.82 ID:???
>>992
aタグ同士の同一性チェックではなく、
URL自動リンク時の、a要素とリンク文字列の同一性チェックです
994Name_Not_Found:2014/03/16(日) 04:16:09.68 ID:???
array.indexOfはIE9からしかありませんが
やはり皆様はjqueryのinArrayを使っているのでしょうか?
995Name_Not_Found:2014/03/16(日) 04:30:32.13 ID:???
IE使ってない
996Name_Not_Found:2014/03/16(日) 04:42:18.93 ID:???
いまだにIE7がシェア一位と言われていますがそれを切り捨ててるのですか?
997Name_Not_Found:2014/03/16(日) 05:03:25.47 ID:???
はい
998Name_Not_Found:2014/03/16(日) 05:46:34.18 ID:???
おじいちゃんおばあちゃんにも見て欲しいと思ったことは一度もありません
999Name_Not_Found:2014/03/16(日) 06:02:53.53 ID:???
そうですか
でもそれは偉くもなんともないことですよ
むしろIEにも対応する方が偉いんです
1000Name_Not_Found:2014/03/16(日) 06:23:19.02 ID:???
はい ここで質問してIEにも対応するあなたはとても偉いと思います1000ゲット
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。