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

私的良スレ書庫

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

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

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
51 : Name_Not - 2014/07/02(水) 23:51:17.69 ID:???.net (+69,-30,-47)
var a = [1,2];
var b = 3;

aとbを足してcに[1,2,3]を代入する方法を方法を教えてください
やっぱり
c = a
c.push(b)しかないんですかね
52 : Name_Not - 2014/07/03(木) 00:12:56.38 ID:???.net (+62,+29,-30)
>>51
何種類か方法があると思うけど、何が最適かは場合によると思う。連続で何回も配列の値を増やし続けなきゃいけないとか、単純に一回だけとか。
53 : Name_Not - 2014/07/03(木) 00:49:16.68 ID:???.net (+57,+23,+1)
>>49
するよ
54 : Name_Not - 2014/07/03(木) 00:50:41.86 ID:???.net (+39,-29,-1)
>>51
c = a.concat(b);
55 : Name_Not - 2014/07/03(木) 02:13:23.65 ID:???.net (+66,+29,-30)
>>51
それだとaの内容も変わっちゃうから>>54以外にない
56 : Name_Not - 2014/07/03(木) 08:32:49.28 ID:???.net (-10,-28,+0)
condog
57 : Name_Not - 2014/07/03(木) 10:29:36.53 ID:???.net (+90,+29,-12)
引数の型が決まっている関数は毎回型チェックし、異なれば例外を投げるべきですか?
58 : Name_Not - 2014/07/03(木) 11:34:34.91 ID:???.net (+67,+27,-3)
>>57
例外を投げるか型変換すべき
59 : Please C - 2014/07/03(木) 17:21:42.45 ID:???.net (+21,-11,-3)
intって使えたっけ?
60 : 59 - 2014/07/03(木) 18:17:06.69 ID:???.net (+38,+15,+0)
スレ間違えました
61 : Name_Not - 2014/07/03(木) 21:27:36.88 ID:???.net (+9,-30,-75)
var a = "<hoge1hoge2>";
a.match(/<[^<>]+>/); // ["<hoge1hoge2>"]

返り値を"hoge1hoge2"にしたいのですがどうしたらいいですか
a.match(/<([^<>]+)>/)[1];としたらいけましたがマッチが一つだけのときこれは一般的でしょうか
あと<>以外は使わないからという理由で[^<>]+としてますけどこれも一般的な方法でしょうか
62 : Name_Not - 2014/07/03(木) 22:05:13.61 ID:???.net (-1,-29,-1)
<([^<>^])>
にしたら顔に見える
63 : Name_Not - 2014/07/03(木) 22:45:32.62 ID:???.net (+43,-18,-3)
letが使えるなら全てletにするべきですか?
64 : Name_Not - 2014/07/03(木) 22:54:42.99 ID:???.net (+63,+29,-31)
>>63
古いブラウザの対応が要らないってことだよね?
ならletでいいんじゃないかな。

するべきとまでは言わないけど、letの方が好ましいし、
varを使う理由はないと思う。
65 : Name_Not - 2014/07/04(金) 00:53:47.66 ID:???.net (-1,-29,+0)
let it go~ let it go~
66 : Name_Not - 2014/07/04(金) 05:10:53.80 ID:???.net (+4,-30,-42)
>>61
例えば、http://aaa/bbb/ccc のaaaを取り出すには、
http://([^/]+)/ とする(エスケープを無視しています)

matchはオプション無しで、複数箇所に該当するの?
普通は、/パターン/g と、gオプションを付けると、
すべてにマッチするんだが
67 : Name_Not - 2014/07/04(金) 16:42:12.84 ID:???.net (+87,-30,-48)
<div>
<p>a</p>
<p>b</p>
<p>c</p>
</div>

子要素がいくつあるかわからないjqueryでこんな感じで書いてるんですけど
$(document).on('click', 'div>p', function(e){
});
これを生のjavascriptでどういうふうに書くのか教えてください
68 : Name_Not - 2014/07/04(金) 16:50:02.33 ID:???.net (+20,+2,+0)
ソース読め
69 : Name_Not - 2014/07/04(金) 17:43:43.23 ID:???.net (+2,-30,-28)
var a = {a:1}
var b = {b:2}
aとbを結合して{a:1,b:2}にする方法を教えて下しあ
70 : Name_Not - 2014/07/04(金) 20:07:30.10 ID:???.net (-1,-29,-23)
>>69
forで回して片方に一個ずつ追加、あるいはjqueryのextend
71 : Name_Not - 2014/07/04(金) 20:55:30.15 ID:???.net (+57,+29,-3)
そんな地道な方法しかないのですかショック
72 : Name_Not - 2014/07/04(金) 21:05:18.30 ID:???.net (+3,-30,-44)
一行でかけるのに地道ってよくわからないが。


lodashを使ったら、一行で書ける。これより単純なものはないと思うけどね。

http://lodash.com/docs#merge

_.merge(names, ages);
// → { 'characters': [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }] }
74 : Name_Not - 2014/07/04(金) 22:19:32.72 ID:???.net (+44,-30,-146)
>>67
html
<div id="hoge">
<p>a</p>
<p>b</p>
<p>c</p>
</div>

javascript
var div = document.getElementById('hoge');
var nodes = div.childNodes;
var i=0,n;
for (;n=nodes[i++];) {
if (n.nodeName !== 'P') { continue; }
n.addEventListener('click',function(e){alert(e.clientY);},false);
}
75 : Name_Not - 2014/07/04(金) 22:28:11.42 ID:???.net (+68,-30,-21)
>>73
複数ある$(".hoge")のすべてに、animate()の終わりに自分以外のanimate()が終了していたら
コールバック実行それ以外スルー、というフラグを立てる
76 : Name_Not - 2014/07/04(金) 22:44:39.74 ID:???.net (+114,+29,-21)
>>75
それはダサいね。
最近はフラグ=バッドノウハウ と考えていいぐらいだと思うわ。

promise使えるんだからそれでできるじゃない?って
思ったらこんなの見つけた。

http://tsmd.hateblo.jp/entry/2013/01/18/173509

試してないけど、これでいいんじゃね?
77 : Name_Not - 2014/07/04(金) 22:47:29.36 ID:???.net (+4,-29,-69)
>>74
そりゃだめだろw

$(document).on(イベント, セレクタ)の形をとってるんだから
addEventListernerはdocumentiに対して実行しなきゃ。

と問題の指摘はするけど、面倒だから俺は書く気無いけどね。
素直にjQuery使えと。
78 : Name_Not - 2014/07/04(金) 23:15:32.17 ID:???.net (+49,-30,-102)
>>67
document.addEventListener('click', function (event) {
 var target = event.target, parentNode = target.parentNode;
 if (target.tagName !== 'P' || !parentNode || parentNode.tagName !== 'DIV') {
  return;
 }
 // 処理
}, false);
79 : Name_Not - 2014/07/04(金) 23:23:51.14 ID:???.net (+7,-30,-97)
意外と知られてないけど、jQueryで

$(document).on('click', 'div>p', function(e){
});

ってやったとき、div>p にマッチする要素だけじゃなくて、その子要素をクリックしてもハンドラが呼ばれる

ソースを読むと、targetがセレクタにマッチしてるかどうかだけではなくて、
targetの祖先要素がセレクタに引っ掛かるかも調べてる
80 : Name_Not - 2014/07/04(金) 23:35:12.72 ID:???.net (+32,-30,-64)
>>79
つまり、

<a href="URL"><strong>ここ</strong>をクリック</a>

っていう場合の、「ここ」をクリックしてもリンクが
発動するのと同じことでしょ?

あたりまえだと思うのだけど。
81 : Name_Not - 2014/07/04(金) 23:39:24.24 ID:???.net (+44,+5,+2)
>>75
>>76
ありがとうございました。
82 : Name_Not - 2014/07/04(金) 23:39:33.40 ID:???.net (+63,+29,-1)
>>78がそうなってないって言いたいんだろ
83 : Name_Not - 2014/07/04(金) 23:41:06.06 ID:???.net (+57,+29,-5)
意外と知られてないって書いてあるから、
よく知られてるって言ってるんだよ。
84 : Name_Not - 2014/07/04(金) 23:41:22.65 ID:???.net (+48,+5,+2)
>>75
>>76
ありがとうございました。
85 : Name_Not - 2014/07/04(金) 23:42:06.63 ID:???.net (+57,+29,-32)
jQueryと同等のものを書こうとすると
大変だなぁってのがよく分かるね。
86 : 78 - 2014/07/04(金) 23:56:09.26 ID:???.net (+64,+29,-24)
>>80
確かにそうだけど、>67では接触しないから端折った
parentNodeを遡ればいいから修正はそれほど難しくないかと
87 : Name_Not - 2014/07/05(土) 17:43:16.25 ID:???.net (+57,+29,-27)
イベントハンドラを設定した要素を削除したときってイベントハンドラの情報はメモリに残ったままになりますか?
88 : Name_Not - 2014/07/05(土) 17:45:49.76 ID:???.net (+57,+29,-59)
ブラウザにバグとかなければ大丈夫だと思うが、
そういう時でも安全に要素を削除できるというのが
jQueryのメリットの一つだし、特定のブラウザでは問題あるかもね。
89 : Name_Not - 2014/07/05(土) 18:04:10.93 ID:???.net (+84,+27,-21)
つまりイベントハンドラを削除してから要素を削除するべきですか?
90 : Name_Not - 2014/07/05(土) 18:44:26.85 ID:???.net (+68,+29,-8)
>>74
そもそもこれは子要素全てにイベント定義してるから>>67のとずれてるよね
91 : Name_Not - 2014/07/05(土) 18:55:07.45 ID:???.net (+70,-22,-36)
仕事でやる場合javascriptをそのまま書くのとjqueryなどの総合ライブラリを使うのどっちが多いですか?
92 : Name_Not - 2014/07/05(土) 19:07:07.29 ID:???.net (+56,+23,-18)
>>91
いろんな企業のサイト見て、jQuery使っているかどうか判断すればいい。
93 : Name_Not - 2014/07/05(土) 19:09:42.01 ID:???.net (+57,+29,-39)
jQuery使っている所が大半だろ。

そうじゃない所はjQueryでは力不足で
もっと大きなライブラリを使うような所
94 : Name_Not - 2014/07/05(土) 20:22:35.36 ID:???.net (+50,+11,-13)
>>89
jqueryを使ってないならそうする
95 : Name_Not - 2014/07/05(土) 20:23:22.09 ID:???.net (+67,+29,-19)
>>91
jqueryはもはやJavaScriptの一部みたいなものなので使わないことはあり得ない
96 : Name_Not - 2014/07/05(土) 20:53:22.99 ID:???.net (+88,+26,-18)
プログラマ業界ではjavascriptの仕事は多いですか?
97 : Name_Not - 2014/07/05(土) 21:10:38.47 ID:???.net (+9,-30,-78)
>>89
removeChild してから removeEventListener でも良い
どちらにしても removeEventListener は実行する
98 : Name_Not - 2014/07/05(土) 22:57:42.42 ID:???.net (+103,+29,-55)
>>96
いわゆるフロントエンドエンジニアになりたいならjsに精通してて1から書けたりメンテナンスができるような知識が必要。最近はそういう需要が増えていると思う。
99 : Name_Not - 2014/07/06(日) 00:10:16.15 ID:???.net (+70,-30,-55)
foo && ( bar = func(c) );

こんな形の式ってどういう処理になるんですか?
if条件になってるわけでも、結果を何かに代入してるわけでもないし、ビット演算かと思ったら違うみたいだし
100 : Name_Not - 2014/07/06(日) 00:25:17.72 ID:???.net (+34,-30,-23)
糞コードだねw

if (foo) {
 bar = func(c);
}

これと一緒。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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