暇つぶし2chat HP
- 暇つぶし2ch250:Name_Not_Found
15/05/09 12:11:02.23 .net
遅延評価で無限を表せるっていうのは知っていたが、
>>217
> Array.prototype.filterは遅延評価向きではないので今回は使いません。
無限とは直接関係ないはずの話で遅延評価が出てきたので
他にも何かあるのかと思ってググってみたらこういうのを見つけた。
Lazy.js を紹介してみる
URLリンク(ayato.hateblo.jp)
> var result = _.chain(array).map(square).map(inc).filter(isEven).take(5).value();
> この場合 underscore.js だと遅いんですね。
> それを解決するのが Lazy.js というわけです。
> var result = Lazy(array).map(square).map(inc).filter(isEven).take(5);
あまり良くわからなかったが、以下の文章でピンときた。
> 大事なこととして each を呼ぶまで Lazy.js は繰り返し処理をしないし、
> 配列を何度も作るようなことはしないということかな。 Lazy.js は全てのクエリを
> シーケンスの中で結合して振る舞いを手続き的なコードと同じようにしている*1。
つまりメソッドチェーンの話か。メソッドチェーンを使った時、mapしてmapしてmapとかやると
配列から新しい配列を作って、その配列からまた新しい配列を作る・・・となってムダな処理をしてしまう。
そういう単純な動きではなく、map(f)してmap(g)してmap(h)するっていうメソッドチェーンを書くと、
map(f+g+h)という形のメソッドが作られて、一回のループで処理するわけか。
値を取得するメソッドを呼ばない限り、メソッドをくっつけるだけで処理自体は行わない。だから遅延評価
その遅延評価がlodash 3.0に入ったね。互換性の話があるから遅延評価されるのは_.chainを使って
メソッドチェーンを始める場合だけみたいだけど、頭の片隅に入れておこう。

251:Name_Not_Found
15/05/09 12:11:30.87 .net
>>241
すれ違い。JavaScriptの話ではない。

252:Name_Not_Found
15/05/09 12:20:12.75 HK2xHVEq.net
>>243
ツールを分けないと行けないのは不便に感じました
15インチのディスプレイで開発ツールとfirebugを2つ出すのは厳しいです
>>244
これもひとつの選択肢になりますがプロジェクトごとにデバックするときに大変な気がしました
Chromeだとdevtoolsだけで削除できますが追加ができないんですよね
データに関するツールってどれも一長一短ある感じでオールマイティなものってないですよね
javascriptでコード書いた


253:りデバッグもやりやすいなあと思いました



254:Name_Not_Found
15/05/09 12:24:27.64 .net
>>247
だからスレ違い。>>1を読め

255:Name_Not_Found
15/05/09 12:44:30.00 .net
JavaScriptに関する質問だから問題ない。

256:Name_Not_Found
15/05/09 12:46:52.29 .net
最近自治厨うざいよな。
JavaScript関係なんだから問題ないだろ。

257:Name_Not_Found
15/05/09 12:58:03.56 .net
ブラウザでのJSデバッグもここの範疇だったし問題ないでしょ
そもそもDevTools扱ってFirefox蹴っちゃおかしいし

258:Name_Not_Found
15/05/09 12:59:23.46 .net
JavaScriptの質問じゃない。
ブラウザがOKなら○○のプラグインありませんか?
みたいな話までOKになってしまう。
けじめはしっかりつけないといかんよ。

259:Name_Not_Found
15/05/09 13:06:31.30 .net
>>237
やっぱ後方参照ぐらいしかないですか
先に進めそうでありがとうございます

260:Name_Not_Found
15/05/09 13:09:14.04 .net
正規表現ばかりに頼ってはいけない
URLリンク(blog.anatoo.jp)
文字列のパースをする必要がある時、どんな文字列にでも
何でもかんでも正規表現で処理しようとするエンジニアをたまに見かける。
正規表現は確かに文字列を扱うための強力な手段だが、万能ではない。
正規表現の性質上、そもそもパースできない文法があるからだ。
従ってそういうケースの時には正規表現ではなく別の方法を使ったほうが良い。
正規表現を無理やり使っても、バグを埋め込んだり、メンテナンスが難しかったり、
正しく文字列をパース出来なかったりで良いことはあまりない。

261:Name_Not_Found
15/05/09 13:09:40.13 .net
なんとなく低レベルな人がここで自治してこれ禁止あれ禁止って言っている印象がある

262:243
15/05/09 13:15:17.68 .net
>>247
> Chromeだとdevtoolsだけで削除できますが追加ができないんですよね
出来るよ。Key/value欄で右クリック。
空欄の中で一番上だけしか反応しないから、若干罠だけど。
ちなみに、この程度の事で揉める方が面倒だと思うのだが、、、
逆に、この質問を「こんなプラグインはありませんか?」のスレでやる方が迷惑だ。

263:Name_Not_Found
15/05/09 13:18:57.57 .net
>>242
確認していないのだから不定だろう?
むしろ、n倍遅いと決めつけるあなたがおかしい
あなたのために実験してあげる気は毛頭ないし、それを押しつけられても困る

264:Name_Not_Found
15/05/09 13:27:24.72 .net
>>255
ルールなのだから禁止。ルールを守れない奴は失格

265:Name_Not_Found
15/05/09 13:29:36.43 .net
JavaScriptを書くということはこういうツールを使うのは常識なわけで禁止にする意味がわからん

266:Name_Not_Found
15/05/09 13:30:57.22 .net
それを言ったら、テキストエディタの話題まで含まれるだろ。
JavaScriptとは関係ない話は禁止だ。

267:Name_Not_Found
15/05/09 13:32:19.13 .net
>>259
お前の常識ってだけだろ。使うのが当たり前だろうが、
使わなくても出来るなら、使わなくていい。
使わずに出来るなら、それはこのスレの対象外

268:Name_Not_Found
15/05/09 13:37:32.60 .net
>>257
> むしろ、n倍遅いと決めつけるあなたがおかしい
ベンチマークをn倍で話したらだよ。
ブラウザメーカー(に限らないが)がよくやるのは
今までよりもn倍になりましたって宣伝。
だけど実際に使ってみたら、それだけの速度向上には見えない。
なぜなら、全体の0.1%がn倍になっただけだから。
n=10だとして、100%の0.1%が10倍になっても、101%になるだけ。
体感速度が変わるわけじゃない。
だからベンチマークで重要なのは実時間。
1マイクロ秒でも10マイクロ秒でも体感速度は変わらない。
1回の実行で10ミリ秒の差があったとしても、一回しか
実行されないような処理なら体感速度に影響はない。
ベンチマークはn倍だけではなく実時間と実行回数も調べるように

269:243
15/05/09 13:57:57.81 .net
>>245
まだ若干勘違いがあるようだけど、こちらの目的は確かにそのページ冒頭に書いてあるとおり。
_.chainが遅延評価ラッパになるのなら、それは便利だとは思う。俺は使わないけど。
遅延評価の利�


270:_は、必要な物が揃ったところで break 出来る点にある。 だから、結果的に「無限」を表せるのであって、「無限」を表すための方法ではない。 全部に対して処理するのなら、snapshotItem も iteratePrevious() も iterateNext() も filter も大した差はない。 ごくごく一部だけのチェックで済むなら、遅延評価はダントツで速くなる。 俺の場合は更新部分のチェックだから、iteratePrevious()が必要。 iteraterをfor文の別記法と思っているのならただの馬鹿。



271:Name_Not_Found
15/05/09 14:17:00.17 .net
> 遅延評価の利点は、必要な物が揃ったところで break 出来る点にある。
それ遅延評価関係ないし
そもそもお前が話してるのは遅延評価の話じゃなくて
ノードリストがliveかstaticかの話だろ。
用語を全くわかってない。

272:Name_Not_Found
15/05/09 14:39:25.22 .net
遅延評価は、物が必要になった所で、評価するから"遅延"評価なんだろ。
物が揃った所でbreakするだけなら、普通にreturnすればいい。
それはforでもforEachでもできること。

273:Name_Not_Found
15/05/09 16:46:36.60 .net
ここ、質問スレだよ

274:Name_Not_Found
15/05/09 16:49:19.79 .net
>>266
質問していいですよ。どうぞ。

275:Name_Not_Found
15/05/09 18:19:02.03 .net
遅延評価とはいかなるものかを言い争っても仕方ないだろ
それがなんという名前のものだろうがやろうとしてることができればいいんだよ

276:Name_Not_Found
15/05/09 19:43:42.25 .net
>>242
後方検索と遅延評価に関連性はない
条件後出しが多すぎるね

277:Name_Not_Found
15/05/09 21:00:03.83 .net
黙って会話を見ていたが、俺以外の回答はどれも
頓珍漢なものばかりだなw

278:Name_Not_Found
15/05/09 21:17:32.33 .net
他の人も多分同じこと思ってるよ

279:Name_Not_Found
15/05/09 21:20:11.68 .net
全ては回答の質できまる。

280:Name_Not_Found
15/05/09 22:08:00.41 .net
>192の質問者もうざい
どれだけ上から目線なんだ

281:Name_Not_Found
15/05/09 22:10:23.34 .net
> どれだけ上から目線なんだ
3メートルぐらい上から目線だよ。

282:243
15/05/09 22:40:18.31 .net
>>245
相変わらずおかしな流れにしかならないから、これで終了にする。
もっと確認したければ、以下を見るといい。
URLリンク(itchyny.hatenablog.com)
ここのEvaluate内で if (v.evaluated) でキャッシュされているところを、
XPathとiterateNext()に置き換えれば、
外部からの制御なしに、無駄な検索/操作を全く行うことがなくなることを理解できるだろう。
これが遅延評価の利点だ。
querySelecter後のfor文中でのbreakではノード探索を中断することは出来ない。
XPathのiterateNext()での中断なら、これができる。
ただし、今回の俺の用途は後方からの探索であり、必要なのはiteratePrevious()だから、惜しかった。
俺の質問は >>192, ベストな回答は >>194,
>>196 から別推薦があったからそれを採用しない理由を >>217 に回答した。
さらに >>220 から物言いが付いたから >>228 で回答、マトモなのはここら辺まで。
>>245 には勘違いがあるけども、彼は自分自身で前に進もうとしているのだから、
質問に回答してもらっている礼として、学習用の情報をこのレスで提供した。
遅延評価とメソッドチェーンは関係ない。
ただ、遅延評価をわざわざ行うのは、Haskellみたいな思想的なものでなければ、
配列的な物のショートカットにしか使えないと思う。
なお、getterに関数を突っ込めばプロパティも全部遅延評価に出来るが、
評価されるのは実際にそれが使われる時だから、
通常のjavascript=記述した時点での評価のノリで書いているとバグる。
ただ、XPathのイテレータはDOMの変更がないことを要求しているので、
おそらくXPath/iterateNextのコンビについては、機械的に置き換えることも可能だと思われる。

283:Name_Not_Found
15/05/09 23:24:06.09 .net
この人は相変わらず、Working Draft な仕様を平然と使うんだな

284:Name_Not_Found
15/05/09 23:37:28.14 .net
速度の話題になるとあやふやな発現が多いね
>>228

285:Name_Not_Found
15/05/09 23:44:51.20 .net
>>275
> 相変わらずおかしな流れにしかならないから
いつもそうなるなら、お前が原因なんじゃね?

286:Name_Not_Found
15/05/10 00:08:26.91 .net
結局、質問者が考えるXpathの総合的な問題(>>242のA2.)とは何だ?
・後方からの遅延評価ができない(>>228) ← querySelectorAll も同じ
・配列が1から始まる(>>228) ← セレクタの nth-child() も同じ
・In IE 5,6,7,8,9 first node is[0](>>232) ← xml.setProperty("SelectionLanguage","XPath"); だけで解決。あるいは Polyfill(>>220)
・速度が遅い(>>228) ← 一回しか実行されないような処理なら体感速度に影響はない(>>262)
それよりかは明らかに:scopeの問題の方が多いと思うが
・Working Draft である(>>220)
・IE, Opera, 古いFF で未サポート(>>194)

287:Name_Not_Found
15/05/10 00:15:02.10 .net
まーた、遅延評価って間違った言葉使ってる。
こいつ、自分の間違いを素直に認めれんのなw

288:Name_Not_Found
15/05/10 00:19:48.74 .net
>>279
XPathも:scopeも両方問題があるように見えるが?

289:Name_Not_Found
15/05/10 04:26:23.46 .net
最近はセレクタにもキャッシュとJITが効くし、
結論としては毎度同じく、実際問題になってから対処すればいいだけ
しかし、原理的に遅いだろうという考え方は危険
この前のhasOwnPropertyの件で分かるように、
よく使われるものほど特別に最適化されるようになっていく

290:Name_Not_Found
15/05/10 08:22:02.86 .net
>>280
こういうヤツJavascriptスレに多いよな、ガキ臭いヤツら
たくさんのブログで大体同じ傾向だから自分で性能評価する必要は無いとかもうね、声出して笑っちゃったwwwww

291:Name_Not_Found
15/05/10 09:48:04.47 .net
IE7またはそれより古いIEは既にどうでもいいが、特にIE5まで遡っているから今更敢えて言うが、おまえらの殆どはブラウザのHTMLでsetPropertyなんてできないだろ。
俺は15年前からできているというか、たぶん地球で最初にやり始めたのが俺だと思うが、IE5だとセキュリティ設定が邪魔してくれる場合は多々ある。5.5からは余裕。というか、5.5みたいなジューシーなブラウザを忘れるわけがないから、おまえらは本当にニワカだよな。

292:Name_Not_Found
15/05/10 09:58:30.56 .net
今時比較検討要項が実行速度なのかね?馬鹿なのか?
なぜfilter/map/reduceを使うのか、誰彼が言わずとも知っているよな?

293:Name_Not_Found
15/05/10 12:18:27.28 .net
実行速度を問題視してるのに、それを比較検討するのはバカなのかwwwww

294:Name_Not_Found
15/05/10 17:24:00.00 .net
ここはお悩み相談所じゃないから。
実際に問題になってから質問してください。

295:Name_Not_Found
15/05/10 17:29:12.64 .net
>見たところ、遅くていいのなら積極的に使うべきかもしれませんが、それにしても遅すぎます。
>機能が多いので仕方ないとして、単品で61倍はきついです。
>querySelectorは17倍なのでまだマシです。
質問者は速度を思い切り問題にしてるんですが…

296:Name_Not_Found
15/05/10 17:34:06.40 .net
本当に速度を気にしているのなら、
速くする意味があるか無いかをちゃんと考えてるよ。
何も考えてない奴は、とりあえず速くしようとする。

297:Name_Not_Found
15/05/10 17:41:14.91 .net
だったら速度の話なんて出さなければいいのでは?質問者が速度の事書いてるから答えてるだけだし

298:Name_Not_Found
15/05/10 17:47:45.87 .net
文字列の変数aの中に、文字列bが何回登場するかをカウントするスクリプトを組みたいのですが、うまくいきません。
var a = 短い単語とか
var b = 長めのテキストとか
var match = b.match(new RegExp(a,"g"));
alert(match.length);
例えばa="あいう";b="あいうあいうお"でしたら、2になります。
しかし、aにある文字(*とか)を入れると、バグることが分かりました。
a="***";b="******"だと2になりません。
調べてみると、new RegExp()は文字列じゃなくてパターン?なので、ちょっと違うようです。
どうすれば*とかの文字もちゃんとカウントできるようになりますか?

299:Name_Not_Found
15/05/10 17:52:08.44 .net
回答はたまには俺以外の奴に任せよう。

300:Name_Not_Found
15/05/10 18:30:28.70 .net
今回は俺も任せようかな

301:Name_Not_Found
15/05/10 20:08:36.70 .net
>>291ですが、良さそうな他のスレを見つけたのでそこで質問し直します
ありがとうございました

302:Name_Not_Found
15/05/11 04:03:52.31 .net
最新ブラウザではセレクタはキャッシュやJITが効くようになってきてるから速度なんて一概に言えん。
無駄に拘ると文字列結合を配列に入れてjoinするみたいにすぐバッドノウハウになるだけ。
本当に代替手段を使わないとどうしようもない自体になってから真剣に検討すべき。

303:Name_Not_Found
15/05/11 05:50:53.09 .net
只今個人でウェブサイトを作っていて複数の画像を回転させようとしているのですが
ひとつづつに動作を記述すのがめんどいので同じ所は関数を作ってまとめようと思い
自分なりに考えてやってみたのですがうまくいきません汗
よかったらどうすればいいのか教えてください
一応個別で一つづつ書いた場合は回転しました。
サンプル
html---------------------
<html>
<head>
<script src="jQueryRotate.js" type="text/javascript"></script>
<script src="rolling.js" type="text/javascript"></script>
</head>
<body>
<img id="imge001">
<img id="imge002">
</body>
</html>
rolling.js-----------------------
$(function(){
function rollin(nam1,nam2){
$(function(){
var angle = 0;
setInterval(function(){
angle+= nam1;
$("nam2").rotate(angle);
},10);//
rollin(5,image001);
rollin(2,image002);
});

304:Name_Not_Found
15/05/11 06:28:30.13 .net
>>295
言ってる事には完全に同意なんだけどさ、今回は質問者がその状態で、選んだ手段がDraftの機能だからこんだけ言われてるんだと思うよ。

305:Name_Not_Found
15/05/11 06:53:25.03 .net
>>296
> (9) ライブラリ関連の話題は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
>>1を読んでから該当スレへ

306:Name_Not_Found
15/05/11 07:27:03.81 .net
>>298
これもライブラリ関連の話になるんですか、、、
関数定義のやり方と使い方だからてっきり本家のjavascriptスレで問題ないと思ってしまいました。
教えてくださり有難う御座います
該当スレで質問しなおさせて頂きます。

307:Name_Not_Found
15/05/11 13:08:53.72 .net
というか使う必要があるコードだろうか

308:Name_Not_Found
15/05/11 16:53:45.79 .net
もうほんとしつこいな。
ライブラリ使ってたら絶対ダメってことじゃねえけど、
明らかに自作自演で荒らすことを目的とした適当なコード挙げんのはやめろ。
もし万が一わざとじゃないとしたらスレの流れくらいは読め。

309:Name_Not_Found
15/05/11 17:07:14.62 .net
>>296
括弧の数があってないじゃないかあ!

function rollin(step,item){
  var angle = 0;
  return setInterval(function(){
    angle = (angle + step) % 360;
    item.rotate(angle);
  },10);
}
$(function(){
  var tid1 = rollin(5,$('#image001'));
  var tid2 = rollin(2,$('#image002'));
});
と思ったらもういないのか…

310:Name_Not_Found
15/05/11 17:07:21.72 .net
ちゃんと荒らしが立てた方じゃないとこで質問し直してるし別人でしょ
テンプレをきちんと読んだ上で区切りがわからずにここで聞いたっぽいけど
彼に色々端折ってjQueryだけ断片的に教えた人は何考えてんのか

311:Name_Not_Found
15/05/11 17:35:58.90 .net
関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間
URLリンク(www.amazon.co.jp)

312:Name_Not_Found
15/05/11 17:50:13.42 .net
JKとかババア乙
JSが至高

313:Name_Not_Found
15/05/11 18:06:06.47 .net
>>303
きちんと読めば何やっても許されるわけじゃないし、
間違いなく故意だね

314:Name_Not_Found
15/05/11 20:22:38.91 .net
まーたやってんのかw
俺が回答しなくても、結局荒れるんだな。
荒らしにレス(荒らし)するぐらいなら
無視するということを覚えようぜ?

315:Name_Not_Found
15/05/11 20:42:30.99 .net
無視することを覚えていない人に言われたくないね

316:Name_Not_Found
15/05/11 22:06:57.48 .net
今回は回答ではなく質問できたね偉いね

317:Name_Not_Found
15/05/12 15:08:03.57 .net
ボタン押下でポップアップ画面開くんだけど
閉じずにもう一回ボタン押下したとき
新規ウィンドウ開かないで、1回目のウィンドウを上書きするのってどうやるの?

318:Name_Not_Found
15/05/12 22:03:29.10 .net
自己解決しました

319:Name_Not_Found
15/05/12 23:32:16.35 .net
for(){//A
for(){//B
break;
}
}
ってbreakしてもBのしか終了できないんですけど
BのforでAも一気にbreakさせる方法ってありますか?

320:Name_Not_Found
15/05/13 00:09:15.17 .net
自己解決しました

321:Name_Not_Found
15/05/13 08:50:58.23 .net
してないです

322:Name_Not_Found
15/05/13 09:33:16.87 .net
ちょっと上で答えが出てるだろ
過去スレ検索どころかこのスレも見ないで質問するのは流石に失礼

323:310
15/05/13 15:26:48.67 .net
自己解決してないです( ; ; )

324:Name_Not_Found
15/05/13 16:03:55.31 .net
Aをくくってreturn;

325:Name_Not_Found
15/05/13 16:37:07.36 .net
これでいいだろ
try{
for(){//A
for(){//B
broke
}
}
}catch(e){}

326:Name_Not_Found
15/05/13 16:39:41.57 .net
>>310
window.open("URL", "何でもいいから文字を入れる")
厳密に言えば、既にあるウィンドウ名に被らず、"_"で始まらない文字。
分からないなら"hoge"でも"piyo"でも適当に。
>>312
label: for(){//A
for(){//B
break label; // Aまで抜ける
break; // Bだけ抜ける
}
}

327:Name_Not_Found
15/05/13 19:47:11.43 .net
>>319
ありがとう
ここでのlabelは他の文字でもいいの?

328:Name_Not_Found
15/05/13 19:51:56.00 .net
いいよ

329:Name_Not_Found
15/05/13 20:07:41.48 .net
つーか自分で調べられない奴は
質問するなよ。レベル低すぎ。

330:Name_Not_Found
15/05/13 20:22:26.02 .net
まあアレだけ人を追い出していれば
レベルも低くなるさ。

331:Name_Not_Found
15/05/13 21:18:40.42 .net
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。

332:Name_Not_Found
15/05/13 22:03:15.44 .net
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)

333:Name_Not_Found
15/05/13 22:14:14.39 .net
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。

334:Name_Not_Found
15/05/13 22:22:47.96 .net
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。

335:Name_Not_Found
15/05/13 23:09:40.83 .net
結局仕様書読めばほとんどのことが分かるだろう
IntlAPIみたいに仕様が未熟で実際の挙動がこうあるべきなのかどうか
ベテランの皆さんの意見を聞かせてくださいみたいな質問以外はいらない

336:Name_Not_Found
15/05/13 23:31:34.86 .net
初心者に仕様書嫁とか無茶すぎる

337:Name_Not_Found
15/05/14 00:30:00.57 .net
>>329
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。

338:Name_Not_Found
15/05/14 00:33:13.75 .net
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)

339:Name_Not_Found
15/05/14 00:38:50.46 .net
>>319
ありがとうございます助かりました!
自分は>>312だけです

340:Name_Not_Found
15/05/14 00:56:22.66 .net
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。

341:Name_Not_Found
15/05/14 04:39:21.53 .net
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。

342:Name_Not_Found
15/05/14 06:22:27.73 .net
>>332
トリップ付けろって過去スレで散々言われただろ
後から出てきてそれじゃ済まねーよ

343:Name_Not_Found
15/05/14 07:31:35.28 .net
>>335
>>329
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。

344:Name_Not_Found
15/05/14 08:17:17.85 .net
>>336
2chの公序良俗は十分守れてる
あんたのようなテンプレコピペ魔神の方が迷惑だということを自覚しなさい

345:Name_Not_Found
15/05/14 08:52:12.81 .net
さすがにやりすぎだとは思うが、公序良俗が守れているとは言い難いな

346:Name_Not_Found
15/05/14 09:02:15.90 .net
>>337
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

347:Name_Not_Found
15/05/14 09:10:33.62 .net
>>335
トリップ?
んなもんしらねーよ

348:Name_Not_Found
15/05/14 17:43:24.58 .net
コピペ荒らしくんかわいい
ちゅーしてあげたい

349:Name_Not_Found
15/05/14 18:04:15.09 .net
CHU!

350:Name_Not_Found
15/05/14 21:51:36.41 .net
今日も質問なしか。本当に廃れてしまったな。

351:Name_Not_Found
15/05/14 22:30:29.77 .net
もうここ5年以上いると思うけどレス頻度は数年前からこんなもんだよ
まあ確かに質問が減って無駄話の割合は増えたね

352:Name_Not_Found
15/05/14 22:45:37.31 .net
困っている人がいないことはいいことだ

353:Name_Not_Found
15/05/15 08:18:52.12 .net
数少ない質問の9割方が同じ人の質問で気に入らない回答に煽りを帰すだけになってしまっている感はある

354:Name_Not_Found
15/05/15 08:34:38.09 .net
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

355:Name_Not_Found
15/05/15 08:47:49.76 .net
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。

356:Name_Not_Found
15/05/15 15:46:18.92 pPJkHPnS.net
XmlHttpRequestのresponsTypeってMDNでは標準のAPIではないって説明書いてあるけど
whatwgみるとちゃんと載ってました
ってことは標準のAPIってことですか?

357:Name_Not_Found
15/05/15 17:07:02.06 .net
XmlHttpRequestとはXMLHttpRequestか?
responsTypeとはresponseTypeか?
こんだけテキトーかませるということはナメた態度の馬鹿だよな?

358:Name_Not_Found
15/05/15 17:18:16.86 .net
>>350は俺の弟の戯言なので許してくれ
responseTypeは標準。これは真実。
英語版では非標準なんてマークはついていない。
非標準マークは、恐らくミスか、註に書いてある"moz-json"のことを指してるのだと思われる。

359:Name_Not_Found
15/05/15 20:11:42.42 .net
今日ここのスレのノリでtempみたいなのをver sex とかvar mankoとか書いたまま出したら上司にスッゲー怒られた
お前らも気をつけろよ

360:Name_Not_Found
15/05/15 21:03:20.33 .net
テスト出力でoppaiとかよくやるよな

361:Name_Not_Found
15/05/15 23:31:03.65 .net
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。

362:Name_Not_Found
15/05/16 04:34:36.83 .net
俺も10年位前厨房の時こういったスレをテンプレコピペで荒らしたわ
すまんな

363:Name_Not_Found
15/05/16 08:36:43.73 .net
ええんやで

364:Name_Not_Found
15/05/17 01:31:34.10 .net
callとapplyがひとつのファイルに入りまじるようなことってありますか?
どっちかに統一して使ったほうがいいですか?

365:Name_Not_Found
15/05/17 01:36:46.76 .net
>>357
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。

366:Name_Not_Found
15/05/17 01:37:20.31 .net
>>357
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。

367:Name_Not_Found
15/05/17 01:38:33.04 .net
>>357
そもそもcallもapplyも使わないほうがいいと思います。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

368:Name_Not_Found
15/05/17 01:44:26.59 .net
使われてないスレに書いたのでもう一度書きます
普段はbootcampでwinを使っているのですが
winがおかしくなったのでosxで作業してます
chromeの場合は同じアプリがosxでも使えるのでありがたいですが
tweetdeckが、winと比べるとクッソ重いことに気づきました
jsの実行速度はOSによってかなり違うのでしょうか?

369:Name_Not_Found
15/05/17 02:43:46.94 .net
jsの実行速度は変わらないだろう。
問題があるとすればtweetdeckだろうな。

370:Name_Not_Found
15/05/17 03:28:10.54 .net
(9) ライブラリ関連の話題は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。

371:Name_Not_Found
15/05/17 04:47:25.22 .net
ライブラリ質問スレではなくプログラム板のJavaScriptスレで聞いてください

372:Name_Not_Found
15/05/17 06:42:13.07 .net
>>357
call, apply は混在することがありますし、一方に統一すべき理由もありません。
その質問は「String#match, RegExp#test をどちらかに統一すべきか」と質問しているようなものです。
用途によって使い分けます。

373:Name_Not_Found
15/05/17 17:09:37.99 .net
レスを分けないでください。
無駄にスレを表皮しないでください。
伝えたいことをまとめてから書くようにしましょう。

374:Name_Not_Found
15/05/17 19:27:53.89 .net
そういうお前がまず自分のレスをきちんと遂行精査してから書き込め

375:Name_Not_Found
15/05/17 19:36:31.31 .net
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。

376:Name_Not_Found
15/05/17 19:51:10.59 .net
>>368
好き好き!!ちゅーっ!

377:Name_Not_Found
15/05/18 20:22:56.86 .net
windowsが起動しなくなり、
幸いbootcampだったので、データだけ救出しました
制作中のサイトの、
chromeのlocalstorageのデータを他のマシンに移したいのですが
単純に、Local Storageフォルダの、該当URLの
.localstorage
.localstorage-journal
両ファイルをコピーするだけで可能でしょうか?

378:Name_Not_Found
15/05/18 22:57:05.88 .net
>>370
やってみたら見事復活しました!

379:Name_Not_Found
15/05/18 23:05:25.71 .net
>>1のテンプレを読んだけど、
別にスレ違いの質問をしたらだめとは書いてないな。
なら問題ないか。

380:Name_Not_Found
15/05/19 05:00:34.59 .net
スレより上位のレイヤーで常識で禁止されてること
まずURLリンク(peace.2ch.net)を読もう

381:Name_Not_Found
15/05/19 06:56:05.80 .net
ここは自治スレです
自治厨の理不尽なレスを楽しむ自治厨のための社交場なので質問者が来る場所ではありません。

382:Name_Not_Found
15/05/19 09:41:35.17 .net
荒らしが大手を振って歩いているが、質問が来るまでまったり待とう

383:Name_Not_Found
15/05/19 09:50:21.61 .net
>>358
こういう質問ってググって分かるもんなの?

384:Name_Not_Found
15/05/19 16:38:01.03 .net
>>376
call, apply の仕様を読んで機能を理解すれば各々の用途がわかりますよ。
下記は ES3 ですが、英語を読めるなら ES5.1 が望ましいですね。
URLリンク(www2u.biglobe.ne.jp)
URLリンク(www2u.biglobe.ne.jp)
仕様書を読むほうが確実ですが、あえてぐぐるなら Function.prototype.call, Function.prototype.apply でしょうか。

385:Name_Not_Found
15/05/19 16:58:42.25 .net
そもそも~した方がいいですかとは言うけど
どうしてそうした方がいいのか悩んだわけ?
明らかな間違いでない場合それを聞かないと答えようがない

386:Name_Not_Found
15/05/20 13:28:21.02 .net
この質問者がどうかは知らないが、「特定の状況ではないが、今後の為に~した方がいい」という判断材料を得たいと考えて質問する人は過去にいた
その人にとっては各関数の機能や背景はどうでもよくて「~した方がいい」という回答を得ることが重要となる
本質的には状況によっては答えが異なる内容であっても「全てにおいて~した方がいい」と考えたがる
そもそも、その辺りの基礎知識がない(基礎勉強するのが面倒くさい)からシンプルな解である「全てにおいて~した方がいい」を求めるのだろう
「ケースバイケース」という考えがないんだな

387:Name_Not_Found
15/05/20 18:27:21.17 .net
俺なら今後のためというのならよっぽどのことでない限りダメとは言わない。
何故なら幅広い機能や書き方を沢山試し、自分で善悪を判断することが、
自分でケースバイケースに対応できるようになるために重要な過程だと思うから。
よって一般的に言うと、一般的にどうですかという質問に対しては、
もっと具体例を示すか自分で試して判断しろと結局言うことになる。

388:Name_Not_Found
15/05/20 19:12:50.70 .net
最終的に自分で自分仕様のライブラリを作って普及させるのがよい

389:Name_Not_Found
15/05/20 20:56:37.97 .net
Extensible Web Manifestoですね分かります(違う)

390:Name_Not_Found
15/05/21 15:54:11.59 JG4SIWns.net
すみません、初心者で上手く行かず困っています。
htmlソースの中の#fffffを#cccccに変更するjavascriptを考えているのですが
簡単そうでなかなかうまく行きません・・・
cssでやればいいのですが
ASPで提供されているためソースを無理やり変更させるしか方法がありません。

391:Name_Not_Found
15/05/21 16:11:47.17 .net
質問が大雑把すぎるからもっと具体的に
HTML文書内の文字列#ffffffを単純に置き換えたい訳ではないよね
既に適用されたCSSの値を後から変更したいってこと?

392:Name_Not_Found
15/05/21 16:40:15.27 .net
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は URLリンク(validator.w3.org) で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。

393:Name_Not_Found
15/05/21 16:56:23.72 .net
>>383
とりあえず変更したい要素が取得できるかだけでも教えてくれ

394:Name_Not_Found
15/05/21 19:14:42.89 .net
>>383
- document.styleSheets を書き換える
- 新たなstyle要素を生成して既存のスタイルを上書きする

395:383
15/05/21 22:42:38.68 JG4SIWns.net
お返事遅れました。
>>384
そういうことになります。
スタイルシートで!importantとかではどうにも出来ないのです。
>>386
要素、id、classともにありません。
table border="1" bordercolor="#333333" みたいになってます。
>>387
スタイルシートではどうすることも出来なくて・・・。
実は楽○市場でして、ソースを見ると不要なタグなどあり
またスタイルシートでどうすることも出来ないものがあるので
jsで何とかしようかとしているのですがなかなかうまく行かずです。

396:Name_Not_Found
15/05/21 23:11:33.49 .net
○天市場って、スタイルはダメなのにjs使えるの?
セキュリティ大丈夫か
それはともかく、要素はgetElementsByTagName("table")[n]なりquerySelector("table[border=1]")なり前後の要素から攻めるなり、
いくらでも取得する方法はある。
HTMLを見ないとどの方法が使えるのかは


397:ズバリ言えないが、取得できないことはあり得ない。 ただしiframeのクロスドメインは例外。 あと>>387は確かにスタイルシートだが、JS経由での操作なので、JS利用可ならまず使える。 まあ、ソース見せてくれないことにはヒントしか言えない。 とりあえずソースを見せてくれ



398:Name_Not_Found
15/05/22 07:21:12.92 .net
楽天市場でCSS使えそうだけどね。
URLリンク(sumahoya.blog.fc2.com)
「!importantとかではどうにも出来ない」ってCSS指定間違ってるようにしか見えない。

399:Name_Not_Found
15/05/24 17:14:34.26 .net
URLリンク(mechaag.tumblr.com)
ここは6の段階を通り越して「そして誰もいなくなった」に近いな

400:Name_Not_Found
15/05/24 18:44:23.08 .net
住民である回答者は常に十分にいる
5年位前か、追えないくらい進行が速かった時は全く無視される質問も多かった
今はどんなくだらない質問も少なからず相手にされてる
新参者である質問者が来ないだけ

401:Name_Not_Found
15/05/24 19:16:30.32 .net
Android標準ブラウザでJavaScriptのデバッグをする方法を知りたいです。
ググったところ、url欄に「about:debug」と入力するとデバッグモードを設定できるらしいのですが、
上手く行きませんでした。
上記情報は2013年とかのもので、今は状況が変わっているのかも?と思っています。
これについて知っている方がいたら、ご教示お願いしますm(_ _)m

402:Name_Not_Found
15/05/24 19:46:50.57 .net
>>393
Remote Debugging on Android with Chrome
URLリンク(developer.chrome.com)

403:Name_Not_Found
15/05/24 19:50:03.26 .net
>>394
ありがとうございます!
リモートなんですね…

404:Name_Not_Found
15/05/24 20:22:44.69 .net
べつに昔ながらのtry-catch-alertもしくはonerror-alertでもええのよ

405:Name_Not_Found
15/05/24 20:31:31.02 .net
>>396
FW使ってるので、特定環境のみとなるとそっちも疑わなくちゃいけなくて
追うの大変そうで…。
というか>>394ものすごい簡単でした
端末の設定をデバッグモードにしたら、後はPC上のchromeのコンソールに全部出てくれる感じで
しかしデバッグモードにした途端再現しなくなったという…
ともあれありがとうございました

406:Name_Not_Found
15/05/25 13:16:02.37 .net
みんなサイ本買って勉強してるの?
勧められて買ってみたけど、くっそ厚くてつらい。
やっぱり先頭から全部読んで、さらに必要になったら読み返して…
って感じで勉強するのがいいのかな?

407:Name_Not_Found
15/05/25 14:21:14.62 xIaomuQs.net
教えてください。スライドショーでカウンターを設置してますが
説明用画像の最初の数ページだけ総ページに入れずにまた、カウンターも出ないようにする方法ありますか?
例えば実際は22枚リストされているが、1枚目のカウンター:0/20、2枚目:0/20、3枚目:1/20、4枚目:2/20、...
この場合どのように記述すれば良いでしょうか?
ちなみに現在のカウンターはこちらです。
(opts.currSlide + 1) + ' / ' + opts.slideCount

408:Name_Not_Found
15/05/25 17:26:59.55 .net
>>399
var skipCount = 2; // カウントしない枚数
Math.max(opts.currSlide - skipCount + 1, 0) + ' / ' + (opts.slideCount - skipCount)
でどうじゃろ

409:Name_Not_Found
15/05/25 17:47:57.66 .net
>>398
勧める奴の殆どは読んでない。
いい本だってわかってるだけ。

410:399
15/05/25 18:30:49.91 xIaomuQs.net
>>400
素晴らしいです。。有り難うございます。
ちなみ・・「x/20」とか「_/20」のように文字を入れることは可能でしょうか?
「 skipCount + 1, 0」この0を'-'や'x'とするとNaNとなったりスライドショー自体がうまく動作しなくて・・。

411:Name_Not_Found
15/05/25 18:38:22.18 .net
>>398
サイ本が読むにあたっていい本かどうかは知らないが、
JSer中級になるために抑えておかないといけない内容が網羅されてるのは確か、
また、仕様書ベースなのでよくある筆者のクセや間違いに極めて近い記述が少ないのもオススメされるポイント。
でも結局は仕様書読めるんならそっちのほうがいい。
仕様書は読めないけど、仕様を抑えたい人、まさに中級者向け。

412:Name_Not_Found
15/05/25 20:07:08.65 .net
DOMNodesがリークするのですが、対処方法はありますか?
とりあえず対症療法的でも構いません。
或いは、リークする条件が明確に分かればいいです。
A:生成コード
var body = document.getElementsByTagName('body')[0];
for (var i=0;i<10000;i++) {
var elem = document.createElement('input'); // ------(α)
elem.setAttribute('type','checkbox'); // ------(β)
body.appendChild(elem);
}
B:削除コード
var body = document.getElementsByTagName('body')[0];
for (var i=0;i<10000;i++) body.removeChild(body.lastChild);
環境:
Chrome最新版+DeveloperTool
再現方法:
1. どこでもいいので、DevToolを起動します。(Chrome新規タブデフォのgoogle検索窓でいい)
2. TimelineタブでMemoryにチェックを付け、Record(●)-CollectGarbage(ゴミバケツ)-Stop(○)を行います。
3. MEMORY 欄にグラフが表示されます。JSHeapが落ちているところがGCで、その後のところにマウスを持っていくと、
 JS Heap Size:xxxx, Documents: xxxx, Nodes:XXXX, Listeners:xxxx と表示されます。
 このXXXXを記録しておきます。
4. 生成コード(A)を実行し3と同様に確認します。なぜかNodesが20,000(1万ではなく2万)ほど増えます。
5. 削除コード(B)を実行し3と同様に確認します。Nodesは減りません。(リーク)
6. タスクマネージャで見たメモリは、(A)で増加し、(B)で減少するものの、A以前と同様のレベルまでは戻りません。

413:404
15/05/25 20:07:45.82 .net
なお、色々試した結果は以下です。
①(α)が'div'で(β)無し=完全に戻る。(リーク無し)
②(α)が'input'で、(β)無しまたは'text'=完全に戻る。(リーク無し)
③(α)(β)そのままで、(B)で一旦別ノードの子として集めてinnerHTML=''で消す=リークしたまま。
④(α)(β)そのままで、(B)でremoveAttributeしてからremoveChild=リークしたまま。
⑤(α)(β)そのままで、(B)でsetAttribute('type','text')してからremoveChild=リークしたまま。
上記①では増加するNode数は10,000です。そしてリークしません。
上記②では増加するNode数は30,000です。そしてリークしません。
そのままだと増加するNode数は20,000です。そしてリークします。

414:Name_Not_Found
15/05/25 20:19:53.57 .net
>>402
カウンターの文字を変数rに代入するとして
var skipCount = 2; // カウントしない枚数
var skipChar = 'x'; // 代わりの文字
if(opts.currSlide - skipCount + 1 <= 0) r = skipChar + ' / ' + (opts.slideCount - skipCount);
else r = (opts.currSlide - skipCount + 1) + ' / ' + (opts.slideCount - skipCount);
ここらへんは基本中の基本なので頑張れ

415:Name_Not_Found
15/05/25 22:12:03.00 JoOwykG5.net
>>406
勉強になります。本当に有難うございました。

416:Name_Not_Found
15/05/26 01:00:06.43 .net
>>405
ノード減ってる。何かのプラグインが原因では?

417:Name_Not_Found
15/05/26 01:26:19.32 .net
>>408
試行ありがとうございます。
こっちは減らないんですよね。
設定は、プラグインは全部Off、設定のプライバシーは全部チェックを外して、
ついでにデベロッパーモードも止めてみましたが駄目です。
ただまあ、この記述なら「減るはず」というのが確認できただけでも助かります。
ありがとうございました。

418:Name_Not_Found
15/05/26 09:50:42.58 .net
>>403
なるほど、結局中級者になるには読まないといけないなら、
はじめからこれで勉強したほうがいいか…。
しかし成り立ちとか、実装がグラグラしてるとことか
最初に読むと無性にやる気がなくなるw
もっとこう、イコールでビシッと決まってると理解しやすいんだけど、
この場合はこうなるが、この場合はならない。
これはブラウザによって解釈が異なり、バージョンによってもとか言われると、
覚えていいのか迷うわw

419:Name_Not_Found
15/05/26 13:46:11.70 .net
原書で5版まで買い続けた。
5版は新品同然だが4版までは手垢にまみれている。
なぜなら、いつでもどこでも高速回線を利用できるようになったのが丁度4版と5版の間の時期で、その頃から紙の実用書を開かなくなったから。
例えばDOMならW3CにあるIDLをコメントとしてコピペして見ながらスクリプトを書けば捗っているような気がする。
サイ本を活躍させたいなら、例えば383に真面目に回答してみたらよい。階層構造になっている物をフラット化してフィルターして。サイ本のDOM-Style/CSSの項目を通り一遍以上は読む事になるだろう。

420:Name_Not_Found
15/05/26 16:09:20.28 .net
>>410
まあ結局一番初級者と中級者を分けている部分である、
new演算子の振る舞いと継承の仕組みや成り立ちについて理解することが一番大事。
その次にJSの沢山の細かな点を知ることが大事だと思う。
そのどちらもがよくまとまっているのがサイ本だけど、別にそれが唯一の方法ってわけじゃない。
それとJSコア部分自体にブラウザの差異は無いと考えていいよ。
大昔はIEがJScript仕様だったりしたけど、ES5の時代からは準拠してると考えていい。
DOM周りに関してはそういうもの。
日々最適解が変化し新しく学び続けていかないといけないもの。

421:Name_Not_Found
15/05/26 20:49:29.43 .net
>>410
JavaScriptとDOM APIをしっかり区別した方がいいよ。
ECMAScriptと読んだときはもっとはっきりしていて、
ここにはDOM APIはでてこない。
JavaScript(ECMAScript)の部分はブラウザ間の差は
無いと考えていいよ。

分かりやすく言うならば、ブラウザに関係するものは
DOM API。こっちは正確に言えばJavaScriptじゃない。
実装がグラグラしている大部分はDOM API部分。
DOM APIとはブラウザだから、昔のIEは~って話がでてくるわけ。
なおこのスレはスレタイから言えば、JavaScriptのスレなので
DOMは対象外であるべき。だけど>>1にはDOMをごっちゃにしていて
なんだかぁって思ってる。こういうのが初心者を混乱させる元になる。

422:Name_Not_Found
15/05/26 21:20:05.31 .net
JavaScript は正式には Netscape (現在では Firefox) で実装されたスクリプトエンジンの名前。
当時は IE が JScript だった為、両者は区別されていたが、ECMA が ECMAScript として標準化し、多くのブラウザで採用されるようになって広義ではブラウザに実装されているスクリプトエンジンを JavaScript と呼称するようになった。
だから、今では IE, Safari, Opera, Google Chrome が実装するスクリプトエンジンも JavaScript と呼ばれる。
よって ECMAScript === JavaScript ではない。
Web制作板に純粋JavaScriptスレとかいう ECMAScript だけのスレが立っているが、純粋な JavaScript は Firefox が実装しているそれであり、ECMAScript ではない。
JavaScript は ECMAScript だけでなく、様々な API を実装されており、W3C, WHATWG で多くが規定されている。
DOM はその代表だが、Selectors API, XMLHttpRequest 等、他にも重要な API が多く存在する。
URLリンク(www.w3.org)
URLリンク(whatwg.org)
ここではWeb制作における JavaScript が主題なので DOM もここで扱って問題はない。
ECMAScript だけに特化して語りたければ、プログラム板に行くと良いだろう。

423:414
15/05/26 21:33:41.55 9fjMVnLy.net
失礼。スクリプトエンジンは「Google V8 JavaScript Engine」のようなものだから「スクリプトエンジン === JavaScript」ではないな。
「多くのブラウザで実装するスクリプト言語名が JavaScriptと呼ばれる」に訂正する。
>>410
私は ECMAScript 仕様書を読んだ後に『JavaScript 第5版』を読んだが、良い復習になったように思う。
クロスブラウザを気にするのであれば、ECMAScript, DOM, DOM Events 等のよく使う仕様書は読んだ方が良い。
そして、現在見ているコードが実装依存なのか標準仕様なのか意識すれば、実装がグラグラしているポイントもわかるようになるだろう。
『JavaScript 第5版』を読んで、読んだ箇所に該当する仕様の本文を読み直すと良い勉強になる。
JavaScript の勉強で面倒なのは仕様書のURLが分散していることだ。
PHP と違って「PHPマニュアル一つだけ読めば問題ない」というわけにはいかない。
>>414で紹介したURLや>>4のリンク先をブックマークしておいて該当仕様をすぐに引けるようにしておくと良いだろう。

424:Name_Not_Found
15/05/26 22:20:48.33 .net
初心者が仕様書読むのは難易度高すぎじゃないか?
ドキュメントやマニュアルとはわけが違う
MDNあたりがまだマシだと思うよ

425:Name_Not_Found
15/05/26 22:28:52.38 .net
そもそもプログラミング初心者がマスターできる言語でもない

426:Name_Not_Found
15/05/26 22:30:13.36 .net
>>414
× JavaScript は ECMAScript だけでなく、様々な API を実装されており、W3C, WHATWG で多くが規定されている。
DOM はその代表だが、Selectors API, XMLHttpRequest 等、他にも重要な API が多く存在する。
○ HTML5 は 様々な API を実装されており、W3C, WHATWG で多くが規定されている。
DOM はその代表だが、Selectors API, XMLHttpRequest 等、他にも重要な API が多く存在する。

ほんと、勘違いしている人が多くて困るw

427:Name_Not_Found
15/05/26 22:57:41.27 .net
JavaScript、javaサープレット、PHP、CGI、フラッシュの長所、短所、使い分けを教えて下さい。

428:Name_Not_Found
15/05/26 23:07:33.32 .net
JavaScriptはw3cが標準化してるわけじゃないんだよね。

URLリンク(developer.mozilla.org)
ECMAScript は JavaScript の基礎を成すスクリプト言語です。
ECMAScript は標準化団体 Ecma International によって
ECMA-262 specification として標準化されています。
次のような ECMAScript 標準が承認されています。

429:Name_Not_Found
15/05/26 23:19:03.35 .net
>>418
> ○ HTML5 は 様々な API を実装されており、W3C, WHATWG で多くが規定されている。
> DOM はその代表だが、Selectors API, XMLHttpRequest 等、他にも重要な API が多く存在する。
HTML5 と DOM と XMLHttpRequest は別個の存在。
現在では HTML5 ではなく、HTML Living Standard というわけだが、バズワードに踊らされてるんじゃないか?

430:Name_Not_Found
15/05/26 23:31:56.28 .net
HTML5 は広義では XMLHttpRequest Level 2 を含めるとする見方もある。
URLリンク(ja.wikipedia.org)
HTML5 が生まれた時代に生まれた仕様を総称して HTML5 と広義しているのだろうが、CSS3 まで HTML5 と定義するのは仕様書単位で見ている人にとっては違和感を禁じえないだろうな。

431:414
15/05/27 00:01:47.17 6sp8PRvy.net
>>416
あの分厚いサイ本を読めるのなら仕様書も読めると思うのだが、そうでもないだろうか。
実装がグラグラしているように感じられるのはそのAPIが標準仕様なのか、独自拡張なのか区別出来ていないからだと思う。
サイ本に悪いコードはないが、仕様の所在を明らかにしていないからわかりづらく感じるのではないかと。
MDN も悪いとは言わないが、情報が古い故に仕様リンクが紹介されていない事が多々あるからな…。
MDN英文を読めば多少はマシだが、それでも間違っていることがあるので、結局MDNを鵜呑みにできず、原書を探してしまう。

432:Name_Not_Found
15/05/27 02:06:45.94 .net
>>398
俺は外様だから、一般論になるけど、
結局、今の実力によると思うよ。
仕様さえ知っていれば後はどうにでもなるのなら、仕様書を読むのが一番効率がいい。
それは「知らない」だけだから。
仕様が分かったところで実装できないのなら、基本的なところを抑えた後はまずはコードを書くべき。
それは「プログラミング能力自体がない」のだから。
いわゆる入門書はそういう作りになっていると思う。
そもそもプログラミング能力がないのに仕様を網羅的に知っていても、大して意味はない。
何も出来るようにはならないでしょ。
仕様書は基本的に、分かる人が読んだら分かるように書かれている。
だから、「ああ、こういう作りなのね」とさらさら読めないのなら、それはレベルが合っていない。
いわゆる入門書は、解説するべきところを重点的に取り扱う分、網羅的ではない。
だから、何冊読んでも結局重複が多くて全体が見えなかったりする。
このため、本来仕様書を読むべきレベルの人が入門書を読むと、同じ事ばかりでくどくてウザイ、と感じるはずだ。
逆に、入門書に書いてあることに学ぶことが多いのなら、それはまずその入門書を完読した方がいい。
仕様書は結局、こういう道具がありますよ、こういう作りになっています、という紹介でしかない。
電動ノコギリが使えるところで普通のノコギリでエイヤコラする必要はないのだが、
普通のノコギリでやればいいだけのところを電動ノコギリで無理矢理やられても困るんだ。
だから、普通のノコギリは使えないといけないけど、(単純なプログラミングは出来ないと駄目)
電動ノコギリがあるとは知らずにしこしこ普通のノコギリで汗掻いても無駄でしょ。
(そのものずばりのメソッドがあるのならそれを使え)
仕様書を読むべきレベルになれば、仕様書を読んだ方が効率がいいと自分で感じれるはず。

433:Name_Not_Found
15/05/27 07:26:53.23 .net
まあ、仕様書のどこを読んだらいいのかってのはあるかもな
困ったときに読むというのはまた別の話として、
中級者でも見て欲しい部分はちらほらあると思う。
特に
Equality ComparisonとSameValue
Type Conversion
といった型変換周り
ここらへんはいろんなところで少しづつ覚えてきたと思うけど
復習も兼ねて仕様書で知識を完璧に確定させておきたい所
継承周りは仕様書で初めて理解するってのは無理だからサイ本とか
URLリンク(www.slideshare.net)
こういった優秀な資料に頼るしか無い
それと困ったとき、それこそブラウザ間で差異があるみたいなときに
何が正しいのか確かめるためには仕様書、そしてJSエンジンのソースを見る力もいる
実際このスレでも時たま挙げられてるよね
まあそこまで行けばJSコア部分に関しては上級者なんじゃないかな

434:Name_Not_Found
15/05/27 07:27:44.15 .net
それと、仕様書は読めるようになろうとチャレンジしていけば
誰でも1年くらいで読めるようになるよ

435:Name_Not_Found
15/05/27 07:40:12.26 .net
>>422
URLリンク(www.w3.org)
>>HTML5は、W3Cが推進するOpenWeb Platformの根幹を担っており、
>>ビデオやアニメーション、グラフィクス、スタイル、タイポグラフィ、およびデジタルパブリッシング向けのその他ツール、ネットワーク機能拡張など、
>>デバイス機能へのアクセスを行うクロスプラットフォームアプリケーションに対応するフルプログラミング環境です。
HTML5は文書のための言語から環境に変化した。
環境とは当然そこに関わり、活動する物事を含んでこそ環境だ。

436:Name_Not_Found
15/05/27 09:00:31.49 .net
JavaScriptとHTMLの仕様がごっちゃになってるからね。
JavaScriptの仕様を見るのに、w3.orgとか見ても意味ないしねw
JavaScriptの仕様だとこっちになる。
URLリンク(www.ecma-international.org)
標準仕様はこっちにまとまってる。
URLリンク(www.ecma-international.org)
もっと具体的な仕様、EcmaScript 5.1はこっち
URLリンク(www.ecma-international.org)
最新のharmonyに関してはこっちを参照すると良い。
URLリンク(wiki.ecmascript.org)

437:Name_Not_Found
15/05/27 09:18:09.01 .net
切っても切り離せない関係だよ
ES仕様の方にもString.prototype.bold()なんかの拡張やHTMLコメントについても記述されてるし、
PromiseやTypedArrayみたいにDOMから取り入れたものもある。

438:Name_Not_Found
15/05/27 09:27:46.64 .net
>>427
HTML5 を学ぶ人が参照する仕様書は URLリンク(www.w3.org) だが、ここには Canvas も XMLHttpRequest も CSS3 も規定されていない。
URLリンク(www.w3.org) でも HTML5 というカテゴリは存在しない。
URLリンク(www.w3.org) でHTML5 の枠組みとして策定された仕様は当時、デファクトスタンダードとしてあったが、標準仕様が策定されていなかった innerHTML 等の古いAPIと Canvas 等の新しいAPIがある。
ただし、DOM Level 2 HTML 等の古くから標準化されていたAPIまで統合したわけではないし、HTML5 策定以降に標準化される API も HTML5 の枠組みに含まれない。
URLリンク(www.w3.org) より後に WHATWG は HTML Living Standard として HTML5 からバージョン番号をなくして策定された。
W3C で策定された HTML5 は HTML Living Standard のスナップショットに留まっている為、Web製作者は最新仕様を追うために HTML Living Standard を確認しなければならない。
この流れは他の仕様にも影響しており、DOM4 や XMLHttpRequest Level 2 も Living Standard として再策定された(仕様書は HTML Living Stanard に含まれない)。
つまり、HTML5 をこれから学ぶ人が仕様書を読むにあたって「HTML5が環境だ」という知識は直接役に立つ知識ではない。
あれは存在を認知してもらうための広報活動の一環だろう。
当時、CSS3 もいつまでもアップデートしない IE の影響で実用的ではないという考え方が大多数だったから、多少強引でも HYML5 の枠組みの中に入れて存在を認識してもらいたかったのだろう。

439:430
15/05/27 09:35:19.14 .net
改めて考えると、DOM Level 2 HTML は HTML Living Standard に統合されたといえなくはないかもしれない…。
統合されていない API は DOM Level 3 Events あたりか。

440:430
15/05/27 09:46:11.35 .net
>>428>>428
細かい事だが、「JavaScript の仕様」ではなく、「ECMAScript の仕様」が正しい。
JavaScript は ECMAScript 仕様を根幹とした言語だが、実装によって採用する仕様(DOM や Canvas)が異なる。
「SpiderMonkey の仕様」や「V8 Engine の仕様」ならわかるが、「JavaScript の仕様」っていわれると「では、JavaScript の仕様書はどこだ?」という疑問が生まれてもやもやする。
細かい事だが、「JavaScript の仕様」ではなく、「ECMAScript の仕様」が正しい。
JavaScript は ECMAScript 仕様を根幹とした言語だが、実装によって採用する仕様(DOM や Canvas)が異なる。
「SpiderMonkey の仕様」とか「V8 Engine の仕様」ならわかるが、「JavaScript の仕様」っていわれると「では、JavaScript の仕様書はどこだ?」という疑問が生まれてもやもやする。

441:Name_Not_Found
15/05/27 10:21:44.67 .net
そもそも論で言うならHTMLはLS化し、ブラウザもWHATWGのHTMLや
いろんなところ(主にgithub)に散らばってるドラフトの方を参考にしてるのだから
W3CのHTML5についてどうこう言ったって仕方ない
>>432
JavaScriptに直接はDOMやBOMは含まれない
URLリンク(javascript.spec.whatwg.org)
歴史から言うと、ESのスーパーセットのJSというより、JSのサブセットのESと考えるべき
ESはJSをブラウザから引き離して標準化したもの
とは言っても文字列やコメントの拡張程度で、それ自体が立派な仕様になっている外様オブジェクトによる拡張はきりがないのでJSには含めない
そしてそうは言うもののこれらの拡張は一応ES仕様にもほぼ乗っている
つまりESとJSは結局ほぼ同じもの
強いて言うならブラウザ関係なく必要そうで、将来ESに取り込まれそうなDOMコアでないWebAPIはJSとしてもいいだろう。
PromiseやTypedArrayなんかもそうだったし、これからはStreamやLoderもそうだ

442:Name_Not_Found
15/05/27 13:03:51.35 .net
よくrequire("xxx")っていうの見かけますがこれってブラウザで動くんでしょうか?
例えばURLリンク(github.com)
ブラウザの開発ツールでログを見るとUncaught ReferenceError: require is not definedてなりました
こういうrequireっていうのはクライアントサイドで動かすものではないってことですか?

443:Name_Not_Found
15/05/27 13:24:54.25 .net
それはNode用だよ、ただしrequire関数を使っているもの全てがNode用ではない。
あとはggr

444:Name_Not_Found
15/05/27 15:44:57.40 .net
>>433
> URLリンク(javascript.spec.whatwg.org)
それは『JavaScript, a.k.a. Web ECMAScript』であって JavaScript の言語仕様を規定しているわけではない。
歴史的に見るならば Firefox が実装する JavaScript が JavaScript の仕様といえなくはない。

445:Name_Not_Found
15/05/27 15:51:26.70 .net
え?Firefoxの実装についてて話してたの?
......屁理屈はいいからw

446:436
15/05/27 16:10:52.69 .net
JavaScript の仕様についての話じゃなかったのか?
JavaScript の仕様は存在しないが、あえていうならば Firefox が実装する仕様がそれ。
元々は Mozilla が作った Netscape のスクリプト言語名だからな。

447:Name_Not_Found
15/05/27 16:34:06.64 .net
同じことの繰り返し
しかも全く理屈になっていない
もう喋らなくていいよ

448:Name_Not_Found
15/05/27 16:53:25.58 .net
プログラマってすぐ0か1かで話そうとするからやーね

449:Name_Not_Found
15/05/27 18:38:51.21 .net
いや理屈にはなってるだろ
つうか屁理屈はいいとかって、お前の方が何を言いたいのかさっぱり分からん

450:Name_Not_Found
15/05/27 19:03:22.38 .net
JavaScriptの仕様なんて聞いた事がない

451:Name_Not_Found
15/05/27 20:19:59.34 .net
誰もJavaScriptの仕様についての話をしようなんて言ってない件

452:Name_Not_Found
15/05/27 21:37:37.71 .net
>>432にあるが、同じ事を二回言ってるな
重要な事だったのかw

453:Name_Not_Found
15/05/27 21:45:00.08 .net
もういいよ。
どちらが正しかろうが生産性のない話はコリゴリ。

454:じゃがりきん
15/05/27 22:36:08.80 .net
新作です
評価お願いします><

ソードフィッシュ

455:Name_Not_Found
15/05/27 22:43:13.93 .net
すごい!
次回作も期待してます!

456:Name_Not_Found
15/05/28 12:45:02.91 .net
>>446
評価不可能ですね

457:Name_Not_Found
15/05/28 15:05:06.96 S4k6+FRO.net
【やりたいこと】
記事の中の特定の情報を「表示」「非表示」クリックで出したり消したりしたい。
イメージとしてはこんなかんじ↓

<Aについて>
詳細を表示(クリック)

Aの詳細(詳細を表示を再クリックで消える)
<Bについて>
詳細を表示(クリック)

Bの詳細(詳細を表示を再クリックで消える)
以下、C~Gまで。

458:449
15/05/28 15:06:01.43 S4k6+FRO.net
【スクリプト】
<p>
<a href="#" id="link_view2" onclick="toggle_view2();return false;">詳細を表示</a>
<a href="#" id="link_hidden2" onclick="toggle_hidden2();return false;" style="display:none;">非表示</a>
</p>
<div id="area_hoge2" style="display:none;">
<p>詳細<br />&nbsp;</p>
</div>
<script language="JavaScript" type="text/javascript">
<!--
var elem2_1 = document.getElementById("area_hoge2");
var elem2_2 = document.getElementById("link_view2");
var elem2_3 = document.getElementById("link_hidden2");
function toggle_view2() {
elem2_1.style.display = "";
elem2_2.style.display = "none";
elem2_3.style.display = "";
}
function toggle_hidden2() {
elem2_1.style.display = "none";
elem2_2.style.display = "";
elem2_3.style.display = "none";
}
-->
</script>

459:449
15/05/28 15:09:12.12 S4k6+FRO.net
【聞きたいこと】
上記のスクリプト書いてみたんだけど、これだと最初の「詳細A」だけにしか対応してないんだよね。BやCの表示をクリックしても、詳細Bや詳細Cが表示されずに詳細Aだけが表示されてしまう。
AはAの詳細、BはBの詳細というかんじで個別に表示・非表示を切り替えるためには、どう書き換えたら良いか教えていただければ幸いです…。

460:Name_Not_Found
15/05/28 17:37:50.31 .net
スクリプトは必要ない
details要素でやれ

461:449
15/05/28 18:03:00.69 S4k6+FRO.net
>>452
あなたが神か…
本当ありがとー!できたできた、マジ助かった。

462:Name_Not_Found
15/05/28 18:05:23.79 .net
ソードフィッシュhotcode入り

463:Name_Not_Found
15/05/28 21:10:54.93 .net
[][10000]これがundefinedになるのはなぜですか?
何でエラーにならないんですか?

464:Name_Not_Found
15/05/28 22:44:45.56 .net
マウスが動き出したら関数○○を動かしたい、という場合ググったところ
window.event.onmousemove = ○○()
という書き方と
document.onmousemove = ○○  //()は不要
という書き方を見つけたんですが
この2つの違いはなんなんでしょうか

465:Name_Not_Found
15/05/28 23:11:22.80 .net
()はその時点で動いちゃうからよくないんじゃないかな

466:Name_Not_Found
15/05/29 02:33:34.52 .net
>>456 event.onmousemove???

467:Name_Not_Found
15/05/29 03:36:51.72 .net
>>455
存在しないプロパティへのアクセスはundefinedが帰る仕様だから

468:Name_Not_Found
15/05/29 04:51:29.10 .net
>>456 妄想でなければどこで見つけたのかもちゃんと書け

469:Name_Not_Found
15/05/29 12:18:02.48 .net
n文字目やm文字目(5個ぐらいある場合も)をxxx'に変換したいのですが
var str ='0123456789';
replace().replace().replace()みたいにやると/.{n}/みたいにやるとn文字目ががxxxになったりして
次のmから位置がズレてしまったりどうも上手くいきません
もっと良い方法ってあったりするんでしょうか?

470:Name_Not_Found
15/05/29 12:24:01.22 .net
sliceしてjoinしちゃいなよ

471:Name_Not_Found
15/05/29 12:32:48.36 .net
>>462
うおー頭良い!
物凄く楽で確実なんでそっちにします、ありがとうございます

472:Name_Not_Found
15/05/29 17:37:12.16 tfSkmKse.net
【やりたいこと】
今アンケートの結果ページを作ってるのですが、リストされた意見に訪問者が直接コメントできるようにしたい。
うまく説明できないから図で↓

アンケートの結果がリストされてるページ。
URLリンク(i.imgur.com)
コメント欄に、特定の意見へ2chみたいなアンカーをつけてコメントすると…
URLリンク(i.imgur.com)
このように、右端に意見へのコメントが直接表示されるようにしたい。
できれば、「コメントする」をクリックするとコメント欄に自動的に飛ぶか、もしくはポップアップでコメントフォームが出てくる、みたいなのがいいけど、難しいなら無しで構わない。
うまく説明できなくて申し訳ないのですが、 上記のようなものはJSで実現可能なのでしょうか?

473:Name_Not_Found
15/05/29 17:43:54.96 .net
>>461
replaceの第二引数に関数を渡して、渡されるインデックス値を利用する

474:Name_Not_Found
15/05/29 19:26:43.32 .net
>>464
コメント入力フォームをJavaScriptで生成する事は可能だが、サーバに保存するのはサーバサイドスクリプトが必要
保存先をDBにするならDBも必要

475:Name_Not_Found
15/05/29 21:


476:50:02.11 ID:tfSkmKse.net



477:Name_Not_Found
15/05/29 21:53:01.53 .net
>>467
無理。コメントを書いた本人だけが
そのコメントを見れるなら作れるけどなw
他人が見れるようにするならば
サーバーが必要。

478:Name_Not_Found
15/05/29 21:59:58.61 .net
>>467
> 同じページ内のテキストを別の場所に表示できればいい
それはJavaScriptで可能

479:Name_Not_Found
15/05/29 22:01:30.31 .net
>>467
いいことを教えてあげよう。
なぜプロがデータベースを使うのか?
なぜプロが高度な○○という技術を使うのか?
それはその技術を使ったほうが簡単だからなんだよ。
その技術を使わないというのはプロでも嫌がる難しいことなんだよ。
素人なのにデータベースを使わないという難しいことを
あえてやる意味は何?

480:Name_Not_Found
15/05/29 22:02:22.72 .net
>>467
> 同じページ内のテキストを別の場所に表示できればいい
それはJavaScriptで可能
ただし、他人はそのコメントを見れない。

481:Name_Not_Found
15/05/29 22:44:58.52 .net
重複して表示するということじゃいのかね?
たとえば、471は467へのコメントなので467内に471のコピーが表示されるような。
たとえばこれは471へのコメントだがアンカーが無いからコメント判定困難となって471内にこれのコピーが表示される見込みは無いに等しいみたいな。

482:Name_Not_Found
15/05/29 23:29:48.07 tfSkmKse.net
>>468
>>470
なるほど…。やっぱりしっかりとサーバーサイドスクリプトとかCGIの知識も学ばないと次にいけないんだよなぁ…。
敷居が高いように思えてついローカルな知識でやろうとしてしまう。

483:Name_Not_Found
15/05/29 23:32:44.08 tfSkmKse.net
>>473
そうそう!まさにそういうことがやりたい。
本文の下にあるコメント欄セクションのテキストを、重複して記事内に表示したい。
たぶん、これなら双方向性がなくてもそれらしく表現できるような気がする…。
よろしければどういうスクリプトを書けばいいのか、ヒントだけでもご教授していただければ幸いです…

484:Name_Not_Found
15/05/29 23:38:44.00 .net
>>464,467
俺は専門ではないので、他の人と相違があった場合は総合的に判断してくれ。
1枚目のHTMLをサーバー側で生成して配信した場合、
2枚目の画面をクライアント側のjavaScriptで作成することは可能。
HTMLがちゃんとタグ付けされていれば、非常に簡単に実現できる。
ただ、固定的でいいのなら、
最初から2枚目の画面になるようなHTMLをサーバー側で作る方が自然のような気がする。
多分PHPで書くことになる。
既に1枚目のHTMLを作成できる環境があり、それは変更せず、
見た目だけの再配置をしたいのなら、JavaScriptで可能。
(ただし、PHPという選択肢と比べて妥当かどうかは知らない。)

485:475
15/05/29 23:53:13.37 .net
>>474
> ヒント
1. Chromeで該当ページを開く。
2. F12を押す。
3. 該当ページで移動したいコメントの上で右クリック、「要素を検証」
4. ハイライトされた要素の上で右クリック、Copy CSS Path ---(A)
5. 同様に差し込みたい場所を探し、 Copy CSS Path ---(B)
6. document.querySelector(' (B)の内容 ').appendChild(document.querySelector(' (A)の内容 '));
コピーしたいのなら cloneNode か innerHTML を使えばいい。
安価を捜すのは textContent が使える。

486:Name_Not_Found
15/05/30 03:00:47.97 .net
別にサーバサイド学ばなくとも今なら良いAPIサーバ提供してくれるサービスがゴマンと有る

487:Name_Not_Found
15/05/31 02:57:14.66 kQtU+l0l.net
javascriptでAjaxを触ってみたのだけど、XMLHttpRequestで画像を扱うのは面倒そう。
でも、考えてみれば
var image = new Image();
image.src = "./img.jpg";
document.body.appendChild(image);
とするだけで動的に画像の読み込みと表示はできるよね。
成功チェックとか諸々の非同期通信の仕組みがないのでこれはAjaxには含まれないのかな?

488:Name_Not_Found
15/05/31 03:53:06.85 .net
馬鹿外人が何周も遅れて発したバズワードなんて適当な使用で構わない。

489:Name_Not_Found
15/05/31 04:20:36.81 .net
>>478
それは成功チェックもあれば非同期通信でもある
またXHRを使うのも別に難しくない
目的にあった機能を適切に使えばいいだけ

490:Name_Not_Found
15/05/31 17:56:56.46 .net
Dateオブジェクトについてですが、
Javaと違ってset???()の段階で内部の値が確定するようです
これって、実装依存ではなくて、仕様になってますか?
var d = new Date(2015, 4, 31);
console.log(d); // Sun May 31 2015 00:00:00 GMT+0900 (東京 (標準時))
d.setMonth(5); // 6月
d.setMonth(6); // 7月
console.log(d); // Wed Jul 01 2015 00:00:00 GMT+0900 (東京 (標準時))
ちなみにJavaで同様のことをすると 7/31 になる

491:Name_Not_Found
15/05/31 18:49:14.82 .net
>>481
仕様書は読んだのでしょうか?
URLリンク(www.ecma-international.org)
URLリンク(www2u.biglobe.ne.jp)

492:Name_Not_Found
15/05/31 18:54:38.26 .net
そこまで仕様に拘るくせに仕様書を読もうとしないのは怠慢
特に当該の項目は見易いんだから

493:Name_Not_Found
15/05/31 23:55:14.29 .net
chrome
"12345"[0]
これで"1"が返りますが何で文字列なのに配列みたいにアクセスできるんですか?
これはどのブラウザでもこういう仕様ですか?

494:Name_Not_Found
15/06/01 05:30:03.74 .net
JScriptは違う

495:Name_Not_Found
15/06/01 06:00:10.57 .net
>>484
オブジェクトでないものに対してのプロパティアクセスはオブジェクトにラップされるから。
文字列はラップされると配列調にされるので結果として配列のようにアクセスできる。
別に文字列に限ったことでもないが。
Object.defineProperty(Number.prototype, 'minus', {get(){ return -this }})
123.4.minus // -123.4

496:Name_Not_Found
15/06/01 07:28:52.74 .net
>>484
> これはどのブラウザでもこういう仕様ですか?
>>481にもいえることですが、なぜテンプレ(>>4)のリンク先を読もうとしないのでしょうか
URLリンク(www.ecma-international.org)
URLリンク(kangax.github.io)

497:Name_Not_Found
15/06/01 07:44:15.84 .net
昔からES仕様にNoteとして繰り返し書いてある通りベンダー依存だな。
いちいち試したわけじゃないが今のJavaScriptでは基本的に破壊的メソッドはgenericにされていないように感じる。
一時期(pythonにまみれたJavaScript 1.7の頃)は破壊的とか関係なくできていたような気がするが、記憶が定かではない。あの時期は[:]なんかも使えたな。
[]があるからこそ出来るんだろうなあと思われることはせいぜい、
[for (i of '1234') if (i % 2) i * i]
とか、
Array.filter('1234', i => i % 2).map(i => i * i).reduce((s, ii) => s + ii, 0)
とか。
おれは情報学畑ではないから無知だが、いわゆる配列のメソッドは、言語一般に、型をまたいでgenericに適用できる印象がある。
だからJScriptや前世紀のJavaScriptで出来ない方がむしろ珍実装なんじゃないか?

498:Name_Not_Found
15/06/01 07:49:48.05 .net
>>486
> オブジェクトでないものに対してのプロパティアクセスはオブジェクトにラップされるから。
プリミティブラッパーオブジェクトの事を言いたいのだと思うが、「オブジェクトではない全ての値」がラップされるわけではないので訂正しておきたい。
null, undefined は ToObject できない。
null[0]; // TypeError: Cannot read property '0' of undefined
undefined[0]; // TypeError: Cannot read property '0' of undefined
> 文字列はラップされると配列調にされるので結果として配列のようにアクセスできる。
> 別に文字列に限ったことでもないが。
配列化されるのは ES5 で取り込まれた String の機能。
個々の規定なので「文字列に限らず配列化される」という意味なら誤り。

499:Name_Not_Found
15/06/01 08:34:52.53 .net
>>488
あなたは>>487を読んでから書き込むべきだったと思う
> 昔からES仕様にNoteとして繰り返し書いてある通りベンダー依存だな。
実装依存当時の ES3 を指しているのだろうが、どこに書いてあった?
探してみたが、見つからなかった
URLリンク(www2u.biglobe.ne.jp)

500:473
15/06/01 14:30:21.51 kL9LGs1I.net
>>475
>>476
丁寧にお答えいただきありがとうございます!
書いてあること試してみます。取り急ぎお礼まで…。

501:Name_Not_Found
15/06/01 21:54:38.45 .net
×ベンダー依存
○ES仕様
Property Accessors
MemberExpression . IdentifierName
MemberExpression [ Expression ]
MemberExpression ⊃ PrimaryExpression ⊃ Literal ⊃ StringLiteral

502:Name_Not_Found
15/06/01 22:41:04.04 .net
>>481
>>484
他の人も指摘しているけど、「仕様かどうか」だけを聞きたいのなら、仕様書を読んだ方が早いよ。
個人的にはMDNがオススメ。(厳密な意味での仕様書ではない)
各機能について、サンプルコードと各ブラウザの対応バージョンが記載されている。
あなたが知りたいことは全てそこにそのまま書いてある。
URLリンク(developer.mozilla.org)
URLリンク(developer.mozilla.org)
上記の通り、ブラウザの対応状況については、個別にはMDNで調べが付く。
それでも聞くのなら、ターゲットブラウザ、特にIEのバージョンは指定するべきだ。
正直、そのレベルでIEの旧バージョンまで対応するのはかなり無理があると思うし、
実際にそうではないと思うから、指定さえあれば、回答者も無駄に空回りせずに済む。
大半の機能はそれぞれの最新版では問題なく使える。
あなたは自分の「脳内仕様」と違っているから問題だと思っているようだが、
それがJavaScriptの仕様だし、それぞれの最新版では差異はないはず。
ちなみに俺は 481,484 の動作について、奇妙だと思う点は無い。
仕様として一貫しているし、直感的に分かりやすい。なおC出身。

503:Name_Not_Found
15/06/01 23:19:33.53 .net
MDNは最も信用できる情報源の1つだが、
独自実装と、特に和訳での情報の古さによる間違いが少なくない。
MDNのみを見て鵜呑みにするのは良くない。
やはりこの手の問題解決にはECMAの仕様書を読む以外にない。
それが最も手っ取り早く確実。

504:Name_Not_Found
15/06/02 08:35:47.13 .net
>>494に同意
MDNはECMAの補完的に見るなら役に立つ
また、MDNは「Firefoxの仕様書」と認識したほうが間違いが少ない

505:Name_Not_Found
15/06/02 19:40:47.14 .net
つまり、JavaScriptの仕様書ってことですねわかりますん

506:Name_Not_Found
15/06/02 20:22:05.74 .net
WinXP,8 + chrome で以下のコードがcomboboxが開きません(disableみたいな挙動)。mac + chromeやFFだと動きます。
これってどう対処したらいいでしょうか。最悪scriptを全角化したり別の文字に置き換えるつもりではいるのですが。
URLリンク(jsfiddle.net)

507:Name_Not_Found
15/06/02 21:45:58.86 .net
>>497
ブラウザのバグと思われるときはここで聞く前にissueを検索してください。
URLリンク(code.google.com)
すでにstableの2つ次のバージョンで修正されており、
おそらく次期バージョンにマージされるでしょうから気にしなくていいです。

508:497
15/06/02 22:20:18.16 .net
>>498
こういう挙動がwinのchromeの仕様なんだろうなあとか思ってたんですが、ブラウザのバグなんですね。完全に想定外でした。
ありがとうございました。

509:Name_Not_Found
15/06/04 19:50:28.31 .net
はじめまして。
HTML、WEB製作に関して全くの初心者の質問なのですが(C++などは書けます)、
以下のような二種類の配置のHPをVisual Studio2013で初めて作っているのですが、
UD.html
□□■□□□□□□□
□□■□□□□□□□
□□■□□□□□□□
□□■■■■■■■■
□□■□□□□□□□
□□■□□□□□□□
□□■□□□□□□□
LR.html
□□■□□□■□□□
□□■□□□■□□□
□□■□□□■□□□
□□■□□□■□□□
□□■□□□■□□□
□□■□□□■□□□
□□■□□□■□□□

510:Name_Not_Found
15/06/04 19:51:03.73 .net
(続き)
左側の縦の部分にはボタンなど配置したUD、LRに共通のメニューです。
その部分は、
<div id="left-canvas" style="width: 8%; height: 100%;float:left">
...
</div>
な感じで書いています。UD,LRの二つのhtmlのbodyの中に同じものが書かれていているので
毎回二か所を修正するのが面倒なのです。それで、この部分を
left-canvas.html
というファイルにして、
HTML Imports
っていう機能を使って
<link rel="import" href="left-canvas.html" >
ってやれば簡単に出来ると思ったのですがchromeでもIEでも表示されません。
質問なのですが、JavaScriptでやる方法ありますか?
よろしくお願いします。

511:Name_Not_Found
15/06/04 20:46:15.68 .net
>>500,501
普通はCSSを切り換えるんだと思うぞ。
URLリンク(allabout.co.jp)

512:Name_Not_Found
15/06/04 21:34:20.22 .net
good parts P43
URLリンク(www.oreilly.co.jp)

var myObject = function (){
var value = 0;
return {~略~};
}();

var myObject = (function (){
var value = 0;
return {~略~};
}());
ってなってて驚いたのですが、
即時関数を代入するときって、
やり方01
var myObject = function (){
}();
やり方02
var myObject = (function (){
}());
やり方03
var myObject = (function (){
})();
やり方01~03のどれでもいいって考えてましたけど、
明確な決まりがあるのですか?

513:Name_Not_Found
15/06/04 21:35:48.97 .net
>>502
情報ありがとうございました。
教えていただいたHP見てみたのですが、CSSというのを使ってスタイルを
切り替える例が載っているようですが、502さんのアドバイスとしては、
UD,LRの二つのhtmlを作るんではなくて一つのhtmlファイルでスタイルを
切り替えてUD,LRのレイアウトを動的に切り替えるべきだということでしょうか?

514:Name_Not_Found
15/06/04 21:43:12.96 .net
>>501
そういうことは一般的にはJavaScriptでやらない。JavaScriptは
表示された後何かを動かしたりする時に使う
どういう同じ内容を埋め込む処理は通常サーバーサイドのプログラムでやる
一番簡単(だけど低機能)なのはSSI。
埋め込み程度はできるが低機能なんでプログラマはあまり使わない。
PHP、Ruby、Perl、Pythonなどの言語、そしてその言語で使える
テンプレートエンジンの機能を使ってやるのが多い。
またローカルでファイルを生成してそれをアップロードすることもあるな。
多少面倒だし、ブログのコメントみたいに動的に書込されるようなことはできないが、
一番サーバーの負荷は小さいし、書き込みできない分セキュリティも高い。
HTML Importsとかは最近の機能なんで使えないと思った方がいい。
使えるのはiframeぐらいだな。iframeを使えば一応HTMLだけでもやれる。
だけど検索エンジンとの相性を考えるとHTML自体に埋め込んだほうがいい。
JavaScriptでも出来ないことはないけど、iframeよりも更に検索エンジンとの相性が悪い。
それもあるんでみんなやらない。どうしてもJavaScriptでやりたいのならAjaxで調べるといい。
古いブラウザの対応とか大変だけどな。
その中でも比較的簡単なのは、jQueryというよく使われてる有名なJavaScriptライブラリの
loadメソッドを使う方法、たったこれだけで出来るが、この程度でJavaScriptは普通使わない。
URLリンク(js.studio-kingdom.com)

515:Name_Not_Found
15/06/04 21:44:12.10 .net
>>504
おそらくUD,LRの二つのhtmlは共通部分を除き内容が違うので
>>502のやり方は間違い。

516:Name_Not_Found
15/06/04 21:52:38.27 .net
>>500-501
> <link rel="import" href="left-canvas.html" >
import したら JavaScript で読み込む必要がある
URLリンク(blog.agektmr.com)
URLリンク(www.html5rocks.com)
実際のところ、Working Draft である HTML Imports を積極的に使う理由はまずない
実験的に使うのならともかく本運用に使うのは現実的ではない
URLリンク(www.w3.org)
テンプレートを読み込むならサーバサイドで読み込むか、DreamWeaver 等のテンプレート機能を使ってローカルでテンプレートを読み込んでHTMLを生成してやるのがいい

517:Name_Not_Found
15/06/04 22:00:27.88 .net
>>503
> やり方01~03のどれでもいい
あなたの認識が正しい
ECMAScript 5 では function で始まる関数式を許さない為、先頭に function キーワードを含めないように括弧で括るテクニックがあるが、function が先頭で始まらないなら括弧で括る必要はない
括弧で括るコードに修正されているのは「括弧で括った方がわかりやすい」と感じている Douglas Crockford の感性によるものだろう

518:Name_Not_Found
15/06/04 22:06:33.89 .net
>>505
さん、詳しい情報ありがとうございます。
と言っても、WEBプログラミング初心者の私には
完全には理解できていません。
WEBページを昨日から作成し始めて、JavaScriptも初めて書いて、適当に
コピペしてきて良く分からないまま動かしています。
SSIは初耳で、JQueryも知りません。
難しいことばかりです。
>>506
言うのを忘れていたのですが
UD,LRは同じ内容を上下か左右かの表示の違いだけです。
>>507
CやC++の#includeみたいに、HTML Importって言う方法が手っ取り早いと
思ったのですが、この機能は新しい機能のようですね。不思議です。
別のファイルを読み込みたいという要望なんて、至る所であると思うん
ですが、長いWEBの歴史の中で、最近までそういう機能が無かったというのは。
ということで、とりあえずCSSっていうのを試してみます。

519:Name_Not_Found
15/06/04 22:26:00.87 .net
>>509
昔からある。データバインディング、XBL、ViewLink(HTC)。
ていうかサーバーでいわゆる部分テンプレートを使えよ。楽するためのVSだろうに。

520:Name_Not_Found
15/06/04 22:35:54.34 .net
>>503
> 別のファイルを読み込みたいという要望なんて、至る所であると思うん
frame, iframe 要素がそれだが、フレームには問題があるので現在では主流ではない
URLリンク(www.google.co.jp)
C言語経験者ならサーバサイドスクリプトも習得できると思うのだが、クライアントサイド言語に拘る理由があるのかね
> ということで、とりあえずCSSっていうのを試してみます。
フレーム用途で CSS は用途が間違っている気がしてならないが、あえて選択するなら :target 擬似クラスか
URLリンク(developer.mozilla.org)
:target 未対応ブラウザで全コンテンツが表示される仕様にするなら選択肢として有りだが…

521:Name_Not_Found
15/06/04 22:44:06.34 .net
frame, iframe, layer, ilayer はブラウザのタブとか別窓とかなので、今回は似て非なる物だろうな。

522:Name_Not_Found
15/06/04 22:50:09.54 .net
>>509
> 別のファイルを読み込みたいという要望なんて、至る所であると思うん
> ですが、長いWEBの歴史の中で、最近までそういう機能が無かったというのは。
HTMLというのは、ドキュメント。つまり文書なわけだよ。
紙の文書で別のファイルを読み込んでいるものなんて無いだろう?
それと一緒。

523:502
15/06/04 23:41:32.72 .net
>>504
いえす
>>509
やりたくないこと:
完全に重複した内容のHTMLを2つ用意すること
やりたいこと:
左右/上下のレイアウトの用意
だろ?
>>511の言うとおり、
> フレーム用途で CSS は用途が間違っている
のだが、今回はそもそもフレームを使うのが間違いだと思う。
ただ、CSSで切り換えるのはレイアウトではなく装飾のことが多いように思うから、
一般的な使い方かどうかは分からない。(偏見かもしれないが)

524:502
15/06/04 23:42:04.04 .net
LR:
<div id="left-canvas" style="width: 8%; height: 100%;float:left">
<div id="hoge0" style="float:left">
<div id="hoge1">
UD:
<div id="left-canvas" style="width: 8%; height: 100%;float:left">
<div id="hoge0">
<div id="hoge1">
のように、レイアウトはhoge0のスタイルを切り換えるだけで行けるんじゃないかと思う。
CSSは要するに「どのノードのstyleはこれ」というのが書いてあるだけだから、
LR:id==hoge0のノードは float:left
UD:特に何も無し
の2つのCSSを用意すれば、分割は切り替え出来るはず。
width, height等も同時に指定できるから、それで希望のレイアウトに出来るはず。
ただこの方法だとまずLRかUDを開いて、ボタンを押して切り換えることになる。
URLを2つ持って切り分けしたい場合は、
・サーバー側で2つ用意するか、
・onloadでJavaScriptを実行してwindow.location.hrefを見てCSSを切り換える
ことになる。後者の場合は一旦表示されるから、切り替わる場合はちらつく。
これがいやな場合は、
hoge0,hoge1共にHTML内ではdisplay='none'にしておいて、
CSSを切り換えた後にdisplay=''にすればいい。
ただし一般的な使い方かどうかは分からない。
それはASP.NETだと思うのだけど、そっちでも聞いてみたほうがいい気がする。
ここはJavaScriptのスレであって、HTMLページ作成のスレではないので。

525:Name_Not_Found
15/06/05 00:48:36.21 .net
>>515
一般的以前に良くない手法をなぜ勧めるかな
JavaScript使ってるし、JavaScript無効環境で全コンテンツが表示されないし

526:Name_Not_Found
15/06/05 00:55:45.42 .net
>>516
もっといい方法があるのなら書けばいいだけだと思うぞ。

527:Name_Not_Found
15/06/05 01:30:23.04 .net
>>517
サーバサイドでやれと再三いわれてるよ

528:Name_Not_Found
15/06/05 06:01:53.28 .net
理不尽な現実を背景に暴論・極論を断言するが、今JS無効なのってそもそもJS非対応である検索クローラーしか存在しない。
とっくにそんな時代。

529:Name_Not_Found
15/06/05 06:48:28.02 .net
>>509
>>500のような感じで、コンテンツ内容が同じの配置換え程度ならば、
CSSとJSで動的に切り替えてもいいだろう。
また、HTMLImportは別に大した機能ではない。
今までもいろんなフレームワークで使われてきたものを標準化しただけ。
これはテンプレートの読み込みに使うもので、基本的に他のWebComponentのパーツと組み合わせて使うもの。
読み込んだ後それをどう使うかと言う部分も書かないといけない。
ページの左端まるごとの表示を共有したいと言うような場合にはiframeを使ったほうが手っ取り早いだろう。

530:Name_Not_Found
15/06/05 07:07:36.10 .net
>>519
クローラを無視していい理由がないし、明示的にJavaScriptを無効にしているブラウザがあれば、スクリーンリーダーもある

531:Name_Not_Found
15/06/05 09:22:46.41 .net
皆さん色々アドバイス有難うございます。
Webページ作成は色んな手法や言語など有りますから難しいですね。
>>520
iframe少し試したら見た目は希望通りの
段組みができそうなんですが、canvas-leftを別のhtmlに分けたらその中にあるボタンクリックしてもjavascript.jsに記述した
関数が実行され無くなりました。朝の7時
まで徹夜して今仮眠中で、これから2-3時間また寝ます。
ああ、そうそう、今はjavascript.jsも複数のファイルに分けた場合の関数呼び出し方法やグローバル変数のスコープが別ファイルからどうなるかなどがよく分からないので一つの長いファイルに全コードを書いています。
.jsファイルを分割してc++の#includeみたいなのは可能ですか?そんな事はしませんか?よろしくお願い申し上げます。

532:Name_Not_Found
15/06/05 16:50:27.76 .net
というかc++やってんならそのくらいテキパキとJSで実装できるだろハゲ。

533:Name_Not_Found
15/06/05 17:40:08.65 .net
JavaScriptにはCやC++みたいに、ソースを複数のファイルに分割して
他のファイルの関数を自由にコールするような概念は無いのでしょうか?
ググるといろんな方法があるようですが、難しくて困っています。
ソースが数千行くらいになったのですが、結局、一つのファイルのままデバッグするのが
手っ取り早いということになるのでしょうか??

534:Name_Not_Found
15/06/05 17:54:44.89 .net
単に分割したいだけなら、分割してそれぞれ同じ所で読み込ませれば使える。
別freme同士のやりとりはggr。
モジュール化はいろんな方法があるが、概ねES6で統一される。
統一されるといってもJSファイルはネット越しに読み込まれるので、
多段インポート時のオーバーヘッドが問題となり得て
結局1ファイルに統合するのが良い時代がまだまだ続く

535:Name_Not_Found
15/06/05 18:05:43.56 .net
>>525
レスありがとうございます。
開発する時にはCやC++やVB.NETなど他の言語と同じように
単純に複数のファイルに分割してデバッグや実行が出来て、
最後にWEB発行する時に、自動的に一つのファイルのマージしてくれる
ような機能がVS2013にあると便利なのですが。そんな都合の良い機能やツール
は無さそうですね。

536:Name_Not_Found
15/06/05 18:59:41.26 .net
>>526
C++はコンパイラ言語、JavaScriptはインタプリタ言語
C言語でincludeしてもコンパイルされる一瞬しかincludeされないが、JavaScriptでincludeしたら読み込まれる度にネットワークトラフィックを使用してincludeされる
通常はそんなコストがかかる手段をとらないからサーバサイドでincludeするなり、制作環境でincludeしてHTMLに出力する
だから何度もJavaScriptでやるな、と指摘されてるわけだが、どういうわけかあなたは無視し続けているからな…
C言語と同じようにincludeしたいなら制作環境でコンパイル(minified)するときにincludeするのが無難ではないか?

537:Name_Not_Found
15/06/05 19:05:07.34 .net
>>526
vsならwindowsサーバーにそのものズバリがあるだろ。
もう出てくんな馬鹿。

538:前スレ355
15/06/05 20:35:18.93 .net
>>527
> だから何度もJavaScriptでやるな、と指摘されてるわけだが、どういうわけかあなたは無視し続けているからな…
俺と勘違いしているのなら、そいつは別人だよ。
俺がJavaScriptを使っているのはGMだからだ。
それはさておき、それ以外のところは同意だ。
ES6については知らないが、それ以外の>>525についても同意。

539:Name_Not_Found
15/06/06 02:10:55.17 .net
フレームワークってどういうときに使うのが有用なの?
初心者で全然ピンときてないのでtodoアプリの例とかで教えてもらえないだろうか。

540:Name_Not_Found
15/06/06 02:26:10.91 .net
>>526
あるよ。ただ君のレベルでは
使えるようになるのは何年も後になるだろうね。
君のレベルが低いから。
まあヒントをやろう。require.js
もちろん公式サイトは英語だからがんばれよw

541:Name_Not_Found
15/06/06 04:01:03.89 .net
質問者の状況ならTypeScriptで書いてモジュール機能使ったり、
ES6で書いてトランスパイラの連結機能使ったほうがいいと思う。

542:Name_Not_Found
15/06/06 08:04:55.74 .net
>>529
「俺」といわれてもあなたがどの発言をしているかわからん
いきなり「前スレ355」が出てきた理由もわからん
自己主張したいのなら初めから固定HNを名乗るか、自分の発言にレスアンカーをつけてくれ
どうでもいいならオレオレ詐欺まがいの事はやめてくれ

543:Name_Not_Found
15/06/06 08:49:31.97 .net
>>533
すまん、自意識過剰だったようだ。
ファイル差し込みはサーバーサイドでやるべき、というのは俺も同意だが、
>>500はどっちでもいい案件だとは思う。
片方しか実装しない場合のそれぞれの利点は以下。
・クライアントサイド
切り替えの際にリロードが必要ない。
・サーバーサイド
JavaScript無効のユーザーでも切り替え可能。
個人的にはいちいちリロードを強いるのはどうなのかね?というのがある。
ただ、この界隈では問題なさそうなのも事実。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch