5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :Name_Not_Found:2014/08/30(土) 13:42:31.84 ID:???
JavaScript に関する何でも質問スレです。
お気軽にどうぞ。

2 :Name_Not_Found:2014/08/30(土) 13:43:07.31 ID:???
■前スレ
+ JavaScript の質問用スレッド vol.119 +
http://peace.2ch.net/test/read.cgi/hp/1409325796/

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■関連スレ
ECMAScript デス 4
http://toro.2ch.net/test/read.cgi/tech/1325448978/
【jQuery】JavaScript ライブラリ総合質問所 vol.3
http://toro.2ch.net/test/read.cgi/hp/1369444026/
【WHATWG】HTML5 Part6【W3C HTML WG】
http://toro.2ch.net/test/read.cgi/hp/1393153279/
Webサイト制作初心者用質問スレ part239
http://toro.2ch.net/test/read.cgi/hp/1393828207/
CSS初心者スレッド=12th=
http://toro.2ch.net/test/read.cgi/hp/1343429848/
Canvasについて語ろう
http://toro.2ch.net/test/read.cgi/hp/1305093769/

3 :Name_Not_Found:2014/08/30(土) 13:43:42.20 ID:???
■各種仕様 ( http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
◆ Standard ECMA-262
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)

4 :Name_Not_Found:2014/08/30(土) 17:44:10.83 ID:???
>>1
おまえはどれだけ無駄に新スレを生産すれば気が済むんだ?
テンプレを改変されたくないからか?

5 :Name_Not_Found:2014/08/30(土) 17:47:58.81 ID:???
>>4
全然違いますね
テンプレに何が書かれていようが質問しにくくなったりすることはありません
他人がうざいテンプレを作るのは自由だし構わないが
自分がそれを再生産する気はない、ということです
だからと言って自分のテンプレを再生産させる気もないので
次に立てる人は自由して頂ければと思います

6 :Name_Not_Found:2014/08/30(土) 17:53:06.48 ID:???
このアホなスレは削除依頼してほしい。

7 :Name_Not_Found:2014/08/30(土) 18:17:40.75 ID:???
>>1
立てるのちょっと早すぎるだろw

8 :Name_Not_Found:2014/09/09(火) 22:09:28.38 ID:???
はぁ?ケンカ売ってんのかお前?
文句があるなら今から上野駅13番ホームまで来い
薄毛童貞キモ豚をナメんなよこの肛門野郎が

9 :Name_Not_Found:2014/09/13(土) 17:06:08.49 ID:???
次スレのテンプレ案
http://jsfiddle.net/fH4cC/38/show/

10 :Name_Not_Found:2014/09/13(土) 19:13:58.32 ID:???
>>9


+ JavaScript の質問用スレッド vol.121 +
http://peace.2ch.net/test/read.cgi/hp/1410603104/

11 :Name_Not_Found:2014/09/13(土) 22:28:51.21 ID:???
>>10
またお前か
教えて君を擁護するためのテンプレで新スレを無駄に量産するな

12 :Name_Not_Found:2014/09/15(月) 23:06:55.13 ID:???
まあ荒らしとはっきりしたからシカトしてちゃんとしたテンプレのスレ立てれるね

13 :Name_Not_Found:2014/09/17(水) 12:22:19.03 ID:AB5QR+DM
落ちないようにこっちも保守しとくか
誰が何のために立てたのかしらんけど
折角立てたんだから無駄にしたらもったいないからな

14 :Name_Not_Found:2014/09/18(木) 20:07:15.80 ID:???
>>13
そのスレを残す為の言い訳は聞き飽きた

15 :Name_Not_Found:2014/09/19(金) 08:16:45.99 ID:???
お前の妄想も聞き飽きたわw

16 :Name_Not_Found:2014/09/19(金) 19:31:19.45 ID:???
このスレは削除してテンプレ修正して次スレ立てれば解決

17 :Name_Not_Found:2014/09/19(金) 21:03:54.66 ID:HBJTqyi5
お前の中ではそうだろうな

18 :Name_Not_Found:2014/09/20(土) 10:02:42.03 ID:???
どうしてもこのスレを存続させたいようだな

19 :Name_Not_Found:2014/09/20(土) 11:39:23.03 ID:???
はい、存続させたいです。
あなたが諦めてください。

20 :Name_Not_Found:2014/09/20(土) 13:46:25.42 ID:???
相手するだけ無駄
荒らしとはっきりしたし、適当な時を見計らって新スレ立てればいいんじゃない

21 :Name_Not_Found:2014/09/20(土) 15:59:45.85 ID:???
勝手に立てればいいだろw
スレ立て権は有限だから立てられる奴が積極的に立てれば、みんなが助かるからな

22 :Name_Not_Found:2014/09/20(土) 16:05:47.32 ID:MSLISnVY
あげあげ

23 :Name_Not_Found:2014/09/20(土) 16:21:02.53 ID:???
擁護する輩は相変わらずだな

24 :Name_Not_Found:2014/09/21(日) 12:14:38.37 ID:???
このスレは荒らしが立てたスレなので下記スレッドに投稿して下さい

+ JavaScript の質問用スレッド vol.119 +
http://peace.2ch.net/test/read.cgi/hp/1409325796/

25 :Name_Not_Found:2014/09/21(日) 17:12:10.36 ID:???
このスレはそのスレの次スレだろ

26 :Name_Not_Found:2014/09/22(月) 10:15:34.96 ID:???
だから荒らしだろ

27 :Name_Not_Found:2014/10/03(金) 17:37:50.27 ID:???
そろそろ次スレの時期だな

28 :Name_Not_Found:2014/10/03(金) 17:56:26.23 ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
>>29-32のテンプレを読んだ上で質問してください。

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけ「問題の事象が再現されること」を確認したサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

29 :Name_Not_Found:2014/10/03(金) 17:58:00.95 ID:???
■前スレ
+ JavaScript の質問用スレッド vol.119 +
http://peace.2ch.net/test/read.cgi/hp/1409325796/

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■テンプレ案
http://fiddle.jshell.net/fH4cC/159/show/

■関連スレ
ECMAScript デス 4
http://peace.2ch.net/test/read.cgi/tech/1325448978/
JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/
Webサイト制作初心者用質問スレ part242
http://peace.2ch.net/test/read.cgi/hp/1411718322/
CSS初心者スレッド=12th=
http://peace.2ch.net/test/read.cgi/hp/1343429848/
Canvasについて語ろう
http://peace.2ch.net/test/read.cgi/hp/1305093769/

30 :Name_Not_Found:2014/10/03(金) 18:01:37.08 ID:???
■主要FAQ (全部は http://fiddle.jshell.net/vSqKr/33/show/ )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
  DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
  JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
  グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
  IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
  「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
  「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。

31 :Name_Not_Found:2014/10/03(金) 18:03:31.31 ID:???
■各種仕様 ( http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
◆ Standard ECMA-262
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)

32 :Name_Not_Found:2014/10/03(金) 18:05:01.25 ID:???
■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。

33 :Name_Not_Found:2014/10/03(金) 18:27:32.38 ID:KMNsghfK
890 Name_Not_Found[sage] 2014/10/02(木) 15:07:00.99 ID:???

newでインスタンス生成するのは古いやり方で
これからは廃れていくのでしょうか?

という質問をした者ですが、
ES6のclassでもnewでインスタンスを生成するので、
廃れるということはないですね

34 :Name_Not_Found:2014/10/03(金) 18:30:36.08 ID:KMNsghfK
JSにおけるインスタンスとは、プロトタイプチェーンに繋がっている、という意味でしょうか?
だとすると、あるクラスを継承したクラスは、
親クラスのインスタンスになるのでしょうか?

35 :Name_Not_Found:2014/10/03(金) 18:37:23.99 ID:???
javascriptのsetTimeoutとsetIntervalってPHPとかJavaとかC#とかの言語のタイマーと同じぐらいの精度ですか?

36 :Name_Not_Found:2014/10/03(金) 19:38:47.69 ID:???
>>34
function Hoge(){
}

function Moge(){
}

Moge.prototype = new Hoge();
Moge.prototype.constructor = Hoge;
var hoge = new Moge();

console.log(Moge instanceof Hoge);
console.log(hoge instanceof Hoge);

としたら違うということが分かりました
どうもまだ自分の中で消化できていないようです
失礼しました

37 :Name_Not_Found:2014/10/03(金) 19:52:00.37 ID:???
>>36
function Hoge(){}
function Moge(){}

Moge.prototype = new Hoge();
Moge.prototype.constructor = Moge;

var hoge = new Hoge();
var moge = new Moge();

console.log(hoge instanceof Hoge); //true
console.log(moge instanceof Hoge); //true
console.log(moge instanceof Moge); //true

38 :Name_Not_Found:2014/10/03(金) 19:52:45.44 ID:???
>>35
他の言語は知らないけど、精度はあまり高くないよ

39 :Name_Not_Found:2014/10/03(金) 22:12:20.22 ID:???
(function(global){

}(window));

この無名関数の中でwindowにaddEventListenerを付ける時は
global.addEventListenerって書くのとaddEventListenerって書くのどっちがよいですか?

40 :Name_Not_Found:2014/10/03(金) 22:24:19.84 ID:???
>>39
その2択なら global.addEventListener
だが、循環参照しているので window の bind のさせ方が良くない

41 :Name_Not_Found:2014/10/03(金) 22:30:27.11 ID:???
どう書くのが一番いいですか?

42 :Name_Not_Found:2014/10/03(金) 22:36:00.68 ID:???
>>41
Function.prototype.call
何でもすぐ人に聞く人は成長しないぞ

43 :Name_Not_Found:2014/10/03(金) 22:48:36.34 ID:???
prototypeプロパティって、
Functionオブジェクトをクラス代わりにするという設計ミスの副産物ですよね?
Object.createの思想に依れば
この盲腸のような属性をなくすことができるでは?

44 :Name_Not_Found:2014/10/03(金) 22:53:05.57 ID:???
prototypeプロパティが何故良くないかというと、
プロトタイプオブジェクトは__proto__プロパティなのに、
prototypeといういかにもそれっぽいプロパティがあるので、
これのことか?と思ってしまうからです

45 :Name_Not_Found:2014/10/03(金) 22:53:25.79 ID:???
また、蒸し返すのか
お前が沿う思っているんならそうなんだろうな

46 :Name_Not_Found:2014/10/03(金) 22:56:36.82 ID:???
>>42
それってthisを指定する時に使う時ですけど何故それを使うと循環参照しないのですか?
何で
(function(global){

}(window));
で循環参照するんですか?
皆こう書いて有りますが皆循環参照した事を書いているという事ですか?

47 :Name_Not_Found:2014/10/03(金) 23:08:38.65 ID:???
>>46
教えて君も程々にね
http://d.hatena.ne.jp/babu_babu_baboo/20100417/1271465430

48 :Name_Not_Found:2014/10/03(金) 23:12:59.56 ID:???
つまり、
オブジェクトのプロトタイプオブジェクト=親クラスのprotytypeプロパティ、
という固定概念が、
JavaScriptの核とは違うところにあるのです
JavaScriptの本質的な可能態はこうなります
「あるオブジェクトのプロトタイプオブジェクトは、親オブジェクト」
本来は__proto__は親オブジェクトを指すべきなところを
歪められているのです
このことがJavaScriptにおけるオブジェクト指向の理解を困難にしていると思います
JavaScriptは長らく変態言語と言われていましたが、
「本当の」JavaScriptは別に変態ではありません
付け焼き刃の実装が変態性を生んでいるのです

49 :Name_Not_Found:2014/10/03(金) 23:17:37.96 ID:???
>>48
ここは質問板だから質問か回答のどちらかにして下さい
啓蒙したいならblogでも作ってやって下さい

50 :Name_Not_Found:2014/10/03(金) 23:25:13.92 ID:???
>>49
啓蒙ではなく考察ですよ
俺はこう思うのですが、どう思いますか?
という質問が省略されているとお考え下さい

51 :Name_Not_Found:2014/10/03(金) 23:26:56.13 ID:???
いますぐラーメンが食べたいです
でもお金がないとお考えください

52 :Name_Not_Found:2014/10/03(金) 23:39:53.34 ID:???
>>46
単純な循環参照でメモリリークが起きるブラウザは今ないから気にしなくていいよ
jQuery本体で同じような書き方してるけどメモリリークが起きるのであれば
多くのサイトで起きることになるけどもちろんそんなことはないわけだしね

53 :Name_Not_Found:2014/10/03(金) 23:45:15.64 ID:???
>>52
jQueryは対策してるから問題が起きないだけ

54 :Name_Not_Found:2014/10/03(金) 23:50:36.33 ID:???
jQueryは循環参照対策はしてるが、無駄にクロージャを生産してるから書き方の参考にはならないと思う

55 :Name_Not_Found:2014/10/03(金) 23:56:15.97 ID:???
>>53
じゃあ対策しなければ今のブラウザでもメモリリークが起きるんだー?
>>39使って実際に起きる例書いてみて
僕にはできないなー

56 :Name_Not_Found:2014/10/04(土) 00:08:36.77 ID:???
循環参照でメモリリークするのは、リファレンスカウント式のGCの時だけで
それ以外のGCはルートオブジェクトから辿れないものはGCの対象になるはずだけど、
なんでリークするんだろ?しないよね?

57 :Name_Not_Found:2014/10/04(土) 00:18:16.14 ID:???
循環参照は現在のブラウザではメモリリークしないが、バグを誘発しやすいので出来るだけ回避する人もいる
分かりづらい上に影響範囲が広いので知らない人も多いようだけど
あと、無駄にクロージャを作るのはメモリ効率的に良くないので同様に避けるべき

58 :Name_Not_Found:2014/10/04(土) 00:28:20.93 ID:???
前スレ>>963

jQueryの該当コードはこんな感じだから
それで良さそうですね。

contents: function( elem ) {
return jQuery.nodeName( elem, "iframe" ) ?
elem.contentDocument || elem.contentWindow.document :
jQuery.merge( [], elem.childNodes );
}

59 :Name_Not_Found:2014/10/04(土) 00:29:33.20 ID:???
>>54
JavaScriptは名前が付いているかついていないかの違いはあるけど
すべての関数はクロージャーだよ。

60 :Name_Not_Found:2014/10/04(土) 00:40:13.99 ID:???
>>46
その例では循環参照しないよ。

理由は言わない。
なぜなら、何でもすぐ人に聞く人は成長しないぞ
だから。

61 :Name_Not_Found:2014/10/04(土) 00:44:44.93 ID:???
↑優越感に浸りたいだけのダメ回答

62 :Name_Not_Found:2014/10/04(土) 00:45:32.47 ID:???
>>60
×理由は言えない
○よくわからない

63 :Name_Not_Found:2014/10/04(土) 00:45:59.32 ID:???
>>61
いやいや、自分で考えることの大切さを
教えてるんだよ。

俺の言うことは正しいので、素直に聞け。
理由はググれ。

64 :Name_Not_Found:2014/10/04(土) 00:48:25.80 ID:???
まあ、確かに無名関数の外に listener を置けば循環参照しないな

(function(global){
 global.addEventListener('load', function (event) { console.log(event); }, false);
}(window));

これで循環参照する

65 :Name_Not_Found:2014/10/04(土) 00:50:21.12 ID:???
>>64
それもしてないよ。

何が何を参照して、何が何を参照しているか
ちゃんと言える?

そこに循環してるものなんて無いでしょ?

66 :Name_Not_Found:2014/10/04(土) 00:52:09.89 ID:???
>>65
いや循環してる。

理由は自分で考えろ。

67 :Name_Not_Found:2014/10/04(土) 00:53:00.72 ID:???
>>66
してないだろw

あれ? もしかして理由を聞きたいの?


何でもすぐ人に聞く人は成長しないぞw

68 :42:2014/10/04(土) 00:57:30.24 ID:???
なぜか俺の発言を繰り返している奴がいるが、その言葉は自分で調べられるだけの情報が出ている時しか使わないぞ
この質問者は自分で考える気ゼロだから厳しくしたが、相手次第ではちゃんと教える

69 :Name_Not_Found:2014/10/04(土) 00:57:58.15 ID:???
↑優越感に浸りたいだけ

70 :Name_Not_Found:2014/10/04(土) 01:00:13.79 ID:???
>>67
循環してるから、理由は言わなくていい
本気で自分で考えることを望むならもう黙れ
相手を馬鹿にするのが目的なら去れ

71 :Name_Not_Found:2014/10/04(土) 01:00:52.52 ID:???
>>70
その言葉は自分で調べられるだけの情報が出ている時しか使わないように。

72 :Name_Not_Found:2014/10/04(土) 01:01:39.24 ID:???
>>70
循環してないから、理由は言わなくていい

とも言えるよな?

73 :Name_Not_Found:2014/10/04(土) 01:03:36.15 ID:???
質問で聞いてるのは、答えじゃなくて、
その答えの理由なんだがねぇ。

その理由を聞いてるのに、ぐぐれって
それ質問に答えてることにならないし。

まあ、教えるのが下手でも
別に2ちゃんねるは強制じゃないから
いいけどねw

74 :Name_Not_Found:2014/10/04(土) 01:06:24.06 ID:???
どちらの意見も説得力は同じぐらい。
どちらが正しいかわからない。

75 :Name_Not_Found:2014/10/04(土) 01:07:48.94 ID:???
あぁ、説得力は同じぐらいだね。

同じぐらい説得力が低いw

だってどちらも循環参照する・しない
とだけしか言ってないんだもの。

76 :Name_Not_Found:2014/10/04(土) 01:07:59.68 ID:???
循環参照は>>47で情報が出てるから自分で調べられるはず

77 :Name_Not_Found:2014/10/04(土) 01:09:07.84 ID:???
>>47よりも前に>>42
「何でもすぐ人に聞く人は成長しないぞ 」って言ってますがw

78 :Name_Not_Found:2014/10/04(土) 01:11:12.68 ID:???
要するにvar func = function() {・・・}って書いたら駄目ってことでしょ?
function func() {・・・}とかけと。

過去スレで出てたじゃん。わざわざ変数に入れるやつなんなの?
普通に名前つければいいじゃないって。

そういうことだよ。

79 :Name_Not_Found:2014/10/04(土) 01:11:56.77 ID:???
>>72
>>67に答えただけなんだが…
俺はおまえを怒らせるために「理由を聞きたい?」とは質問するような偏屈な奴じゃない

80 :Name_Not_Found:2014/10/04(土) 01:14:41.73 ID:???
怒ってるのは「何でもすぐ人に聞く人は成長しないぞ 」って言われた人だよ。

81 :Name_Not_Found:2014/10/04(土) 01:14:53.36 ID:???
>>77
循環参照というキーワードが出ていれば、ぐぐるのは基本だろ
最近の人はWeb検索すら出来ないのか

82 :Name_Not_Found:2014/10/04(土) 01:25:18.35 ID:???
このテキストを書くことしかできない掲示板で、俺なんぞがグダグダ説明するよりも
ポインタだけわたしてググってもらったほうが
わかりやすい説明のページがいっぱいある

と思っておググりくださいって書くことはあるな

83 :Name_Not_Found:2014/10/04(土) 01:30:45.31 ID:???
https://www.google.co.jp/search?ie=UTF-8&q=javascript%20%E5%BE%AA%E7%92%B0%E5%8F%82%E7%85%A7
>>47は4件目にHITしたし、他にもたくさん情報が出てる
>>64は「スクリプト---DOM」間で循環参照してる

84 :Name_Not_Found:2014/10/04(土) 01:32:32.19 ID:???
>>47
無名関数に関しての内容が無いので答えになってない
よって>>47は記事を読んでないのが分かる

85 :Name_Not_Found:2014/10/04(土) 02:04:01.24 ID:???
>>84
原理が理解できれば>>64も応用できるはずだけどね

86 :Name_Not_Found:2014/10/04(土) 02:27:07.09 ID:???
>>84
>>47を読んだが、普通に理解できたぞ

87 :Name_Not_Found:2014/10/04(土) 04:16:23.67 ID:???
>>78
とんでもなく見当違いの認識をしてるよ

88 :Name_Not_Found:2014/10/04(土) 06:06:11.96 ID:???
循環参照
クロージャー

89 :Name_Not_Found:2014/10/04(土) 06:11:12.44 ID:???
いやあ、2chも捨てたもんじゃないな
勉強になる。考えるきっかけができた。

90 :Name_Not_Found:2014/10/04(土) 07:10:42.00 ID:???
>>64は、
(function(global) {
global.addEventListener("load",function(event) {console.log(event);},false);
global = null;
}(window));
こうすれば古いIEで問題になる循環参照が解消されるってことか?

91 :Name_Not_Found:2014/10/04(土) 09:48:12.83 ID:???
>>90
その通りだけど、そもそもローカル変数を使わなければ循環参照しないよ

92 :Name_Not_Found:2014/10/04(土) 11:17:11.94 ID:???
IE7以前とかもうサポートしないからどうでもいい

93 :Name_Not_Found:2014/10/04(土) 11:20:59.24 ID:???
循環参照は定期的に出る質問だからFAQに入れておくといいかもね

94 :Name_Not_Found:2014/10/04(土) 11:25:12.70 ID:???
>>91
解消されない。

95 :Name_Not_Found:2014/10/04(土) 11:32:23.93 ID:???
>>91の「ローカル変数を使わなければ」っていうのが
重要なヒントで、ローカル変数を使わないで
処理を記述するにはどうするか?を考えてみたこと有る?

それがメソッドチェーンにつながるんだよ。

96 :Name_Not_Found:2014/10/04(土) 11:40:08.21 ID:???
>>90-91
ローカル変数はスコープ抜けたら自動的にnullになるんだから
全く関係ないじゃん。なにしれっと嘘ついてるのさ。

循環参照はオブジェクトがお互いに相手を参照しているから
オブジェクトが消えない(参照カウンタ方式の場合)という問題であって

スコープが抜けたら参照が消える話とは別問題だぞ。

97 :Name_Not_Found:2014/10/04(土) 11:49:02.70 ID:???
>>96
おいおいおいおいwおまえクロージャーを理解できてないだろ?w
循環参照とか考える前にJavaScriptの仕様を勉強してこいよw

98 :Name_Not_Found:2014/10/04(土) 11:56:01.36 ID:???
JavaScript関係で話題になるときの循環参照でメモリリークっていうのは
通常のオブジェクト同士の循環参照の話じゃないんだ
そういうのはIE7以前でも普通にGCで回収される

99 :Name_Not_Found:2014/10/04(土) 12:00:56.43 ID:???
>>97
お前が勉強してこいってw

100 :Name_Not_Found:2014/10/04(土) 12:01:57.55 ID:???
「何でもすぐ人に聞く人は成長しないぞ」のやつか。
まず自分がちゃんと説明しろって話だな。

101 :Name_Not_Found:2014/10/04(土) 12:04:18.15 ID:???
循環参照するって言ってる奴が、
循環参照しているという証拠を持ってくれば
いいだけの話だと思うがね。

なんだかんだ言い訳ばかりして最後には
証拠示せずに自分で考えろと言って逃げるだけだし。

102 :Name_Not_Found:2014/10/04(土) 12:08:09.09 ID:???
> 通常のオブジェクト同士の循環参照の話じゃないんだ

なんかまた変なコト言い出してる・・・

103 :Name_Not_Found:2014/10/04(土) 12:09:03.91 ID:???
>>96
JavaScriptのローカル変数はC言語とかみたいにスタックに積んでるわけじゃないからな?
スコープから抜けたときに必ず解放されるわけじゃない
>>64みたいに、スコープを抜けてもローカル変数を参照可能なクロージャーが生き残る場合には、
クロージャーと一緒にそのローカル変数の存在も維持されるぞ?

104 :Name_Not_Found:2014/10/04(土) 12:09:50.38 ID:???
説明じゃなくて、なんかツールかコード使って
循環参照しているって証拠出して。

105 :Name_Not_Found:2014/10/04(土) 12:18:24.47 ID:???
そもそもまともな(参照カウンタ方式じゃない)GCを実装してるプログラミング言語は循環参照なんて問題にならんぞ
iOSとかが糞すぎるんだよ
そしてJavaScriptの場合に問題になるのは古いIEのバグみたいなもので
DOM要素とJavaScript側の要素が相互参照してるときにだけ
相互参照を検出して解放する仕組みが働かないってだけのことだ

106 :Name_Not_Found:2014/10/04(土) 12:30:07.70 ID:???
GCが流行りだした頃は、
自分でdeleteしないなんて!って言われたもんだ。

かってにdeleteされることが嫌で自分で明示的に
deleteするべきだって主張していた人もいた。

だが今は、GCに任せるのが主流となった。

循環参照も同じで、自分で明示的に循環を断ち切らなくても
どこからも参照されていなければ、自動的に消える。

だから明示的にdeleteするのと同じで、循環参照であっても
自動的にdeleteされるのだからGCに任せることに何の問題もない。

107 :Name_Not_Found:2014/10/04(土) 12:35:18.84 ID:???
JavaScriptでも循環参照なんて気にしなくていいよ
古いIEとか無視でいい

108 :Name_Not_Found:2014/10/04(土) 12:44:58.16 ID:???
[['a', 'aa'], ['b', 'bb'], ['c', 'cc']]
のような多次元配列を作るにはどのようにすればいいのでしょうか?
ar = new Array();
aa = ['a', 'aa'];
bb = ['b', 'bb'];
cc = ['c', 'cc'];
ar.push(aa);
などでは実現できません

109 :Name_Not_Found:2014/10/04(土) 13:14:26.69 ID:???
> [['a', 'aa'], ['b', 'bb'], ['c', 'cc']]
> のような多次元配列を作るにはどのようにすればいいのでしょうか?

ar = [['a', 'aa'], ['b', 'bb'], ['c', 'cc']]

110 :Name_Not_Found:2014/10/04(土) 13:23:22.93 ID:???
>>108
var arr1 = [],
arr2 = [],
aa = ['a', 'aa'],
bb = ['b', 'bb'],
cc = ['c', 'cc'];

arr1.push(aa, bb, cc);
console.log(arr1); //[Array[2], Array[2], Array[2]]

arr2 = aa.concat(bb, cc);
console.log(arr2); //["a", "aa", "b", "bb", "c", "cc"]

111 :Name_Not_Found:2014/10/04(土) 13:24:54.90 ID:???
多次元配列、教えてくれてありがとうございました

112 :Name_Not_Found:2014/10/04(土) 15:20:54.12 ID:???
お前ら今日休みだな
昨日に比べてスレの勢いが全くない

113 :Name_Not_Found:2014/10/04(土) 16:29:51.82 ID:???
循環参照しないはもする派もプロファイルで数字を貼ってよ

114 :Name_Not_Found:2014/10/04(土) 16:30:41.82 ID:???
俺はわかるけどお前は勉強不足だからわかってないとか文系みたいな主張はいらねえんだよ
相手を納得させたいのなら数字を出せ

115 :Name_Not_Found:2014/10/04(土) 17:00:02.93 ID:???
>>90-91
いい加減なこと書くな

(function(global){
'use strict';
global.a = 100;
console.log(a);
global = null;
}(window));
console.log(window.a); // 100

116 :Name_Not_Found:2014/10/04(土) 17:12:13.35 ID:???
www.

117 :Name_Not_Found:2014/10/04(土) 18:24:07.07 ID:???
お前ら今日何してた?
引きこもり?
それともJSの勉強?

118 :Name_Not_Found:2014/10/04(土) 18:35:46.87 ID:???
横山緑と鮫島の放送見てた

119 :Name_Not_Found:2014/10/04(土) 19:05:06.41 ID:???
循環参照をよく分かってないのに態度がでかい人がいるスレ

120 :Name_Not_Found:2014/10/04(土) 20:27:58.86 ID:???
循環参照とただの参照を混同している気がするね。

121 :Name_Not_Found:2014/10/04(土) 20:37:40.61 ID:???
>>115
それがどうかしたの?

JavaScriptのオブジェクトは参照型だから
>>115の例ではwindowとglobalは同じものを指すってだけだよ。
循環参照は関係ない。

122 :Name_Not_Found:2014/10/04(土) 22:07:04.46 ID:???
よくわからんけど、ちびくろサンボみたいな感じ?

123 :Name_Not_Found:2014/10/05(日) 01:42:19.66 ID:???
循環参照の例が全部イベントハンドラ関連でどうでもいいだろ
イベントハンドラなんて、ずっと束縛され続けるんだから

普通、循環参照っていえば↓これ
var obj0 = { value: 0, next: null };
var obj1 = { value: 1, next: null };

obj0.next = obj1;
obj1.next = obj0;
console.log(obj0, obj1);

{ value: 0, next: { value: 1, next: [Circular] } } { value: 1, next: { value: 0, next: [Circular] } }

ちゃんと[Circular]って認識してる
認識してなかったら、無限ループでハングアップする

124 :Name_Not_Found:2014/10/05(日) 02:15:15.86 ID:???
問題になるのはページ遷移無しで動的にDOM要素を入れ替え続けるような
単一ページWebアプリとかの場合だよ

「古いIEにおけるDOM要素を含む循環参照によるメモリリークパターン」のことを
JavaScript厨が省略して「循環参照」と呼ぶから話がややっこしくなるんだよね
>>40みたいに

125 :Name_Not_Found:2014/10/05(日) 06:34:39.95 ID:PMHOY3tT
>>123-124>>120みたいだな
DOMとスクリプトの循環参照は別だというのにソース出ててもなにも見てないと見える

126 :Name_Not_Found:2014/10/05(日) 08:03:48.27 ID:???
>>125は循環参照の本来の意味を理解できてないのね
>>123>>124はただの参照の話などしていない

127 :Name_Not_Found:2014/10/05(日) 09:02:42.89 ID:PMHOY3tT
>>127
同じ循環参照でも意味が違うんだよ
循環参照については>>47と下記URLを参照すべし
http://msdn.microsoft.com/ja-jp/library/bb250448.aspx

128 :Name_Not_Found:2014/10/05(日) 09:16:44.65 ID:???
>>127
省略せずに正しく「DOM要素とスクリプト要素の循環参照」と言えや
ただの循環参照と言ったら>>123みたいなことで、JavaScriptではこれは全く問題無い

129 :Name_Not_Found:2014/10/05(日) 10:45:07.77 ID:???
>>127みたいなのを循環参照っていうんでしょ?

130 :Name_Not_Found:2014/10/05(日) 11:03:16.44 ID:???
>>129
その>>127のページの最初の図で示してる状況は
JScriptスコープの変数とHTMLの要素が循環参照してるのが問題になるということ
それを「Internet Explorerリークパターンの内の循環参照パターン」と呼んでいる

仮にその図の変数obj3と変数obj4が互いに参照しあうような状況があったとする
その状況も「循環参照」だ。しかし「Internet Explorerリークパターン」では無い

131 :Name_Not_Found:2014/10/05(日) 11:28:34.41 ID:???
>>124
> 問題になるのはページ遷移無しで動的にDOM要素を入れ替え続けるような
> 単一ページWebアプリとかの場合だよ

そういうアプリでは動的にDOM要素を削除するので
その時に循環参照は断ち切られる。

132 :Name_Not_Found:2014/10/05(日) 12:27:02.91 ID:???
>>131
おまえ釣りだよな?
古いIEでは、DOM要素がスクリプト要素と循環参照してると、
そのDOM要素を動的に削除しても循環参照が残るせいでGCが領域を回収できないって話をしてるんだよ

133 :Name_Not_Found:2014/10/05(日) 13:44:51.68 ID:???
>>132
IEのバグの話はしていない。
そんなのJavaScriptの問題じゃなくて
特定のブラウザの問題じゃないか。

134 :Name_Not_Found:2014/10/05(日) 14:01:14.28 ID:???
>>132
> 古いIEでは、DOM要素がスクリプト要素と循環参照してると

ということなら、こういうコードは問題ないよね?

一見クロージャーを使っていて循環参照しているようだが(実際にしているが)
循環参照しているのは、DOM要素とスクリプトではなく、スクリプトとスクリプトである。

一旦addClickEventをかましてcallbacks変数に蓄えることで、
間接的にイベントハンドラを登録している。本当のイベントハンドラの登録はinit時の一回のみ。

function init() {
 var e = document.getElementById('id');
 e.attachEvent('onclick', onclick);
}
init();

var callbacks = [];
function onclick() {
 for (var i = 0; i < i.length; i++) {
  callbaks[i]();
 }
}

function addClickEvent(callback) {
 callbacks.push(callback);
}

(function main(global) {
 global.addClickEvent(function() {console.log(global) }
})(window);

135 :Name_Not_Found:2014/10/05(日) 15:03:53.04 ID:???
dom要素がJSを参照するってどんな状態?

136 :Name_Not_Found:2014/10/05(日) 15:06:27.15 ID:???
DOM要素に関数登録するだろ

137 :Name_Not_Found:2014/10/05(日) 15:22:34.21 ID:???
話が変わってきたな。DOM要素につけたコードと
循環参照してるのが古いIEでメモリリークするのであって
循環参照そのものが悪いわけではなく
>>134みたいなコードなら問題ないわけか。

138 :Name_Not_Found:2014/10/05(日) 18:42:31.51 ID:???
バグを持ってる古いIEって具体的にバージョン何?
IE6以下なら今ならもう問題ないよな

139 :Name_Not_Found:2014/10/05(日) 18:46:32.09 ID:???
jQueryのバリデーションのライブラリ探してるんだけど、今は何が良いの?
exValidationっての見たけど開発が止まっているようだ
最後の更新が3年前
validation-Engineってのは最終は2ヶ月前らしいけど
日本語対応してるのであればやっぱこの2つのうちどっちかなのかな?

140 :Name_Not_Found:2014/10/05(日) 19:15:55.82 ID:???
JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/

141 :Name_Not_Found:2014/10/05(日) 19:43:30.30 ID:???
あ、ありがと
移動します

142 :Name_Not_Found:2014/10/05(日) 19:53:06.82 ID:???
>>128
勿論、そのほうが親切だけど、あの文脈ではDOMとスクリプトの循環参照しか思いつかないでしょ
>>83のようにぐぐればすぐHITするし、>>47にもURLが載っているし、誤解した人は調査不足でしかないと思うよ

で、問題あるかといえば、現在ではないけど
・バグを誘発しやすいから避ける人もいる
・無駄にクロージャを生産すべきでない
という2つの理由から敬遠してる
少なくとも>>64に関してはどちらも当てはまる

143 :think49 ◆bKk/qcAKuM :2014/10/05(日) 22:20:06.05 ID:???
懐かしい話題だったのでメモリリークパターンについてまとめました。
http://d.hatena.ne.jp/think49/20141005/1412514367
>>40,42 辺りの Function,prototype.call で循環参照を回避するパターンの答えにもなっているかと。

144 :Name_Not_Found:2014/10/05(日) 23:13:28.16 ID:???
jsとdomで循環参照するとメモリリークするとか
そんな話はじめて聞いたって思ったらie6sp2でだけ起きるのか

145 :Name_Not_Found:2014/10/05(日) 23:15:35.36 ID:???
一顧だにする必要ないな。

146 :Name_Not_Found:2014/10/05(日) 23:23:05.62 ID:???
http://d.hatena.ne.jp/babu_babu_baboo/20100417/1271465430

いわゆるクロージャを生成した時点で、関数 (innerFunc) は、変数 (e) を、
いつでも参照できるようになっている。なので循環参照が成立する。

これマジ!?
クロージャは外側の全ての変数のGCを止めるの?

147 :Name_Not_Found:2014/10/05(日) 23:37:56.56 ID:???
http://msdn.microsoft.com/ja-jp/library/bb250448.aspx

これを読むと、バグというより仕様だったのかな?
恐ろしい仕様だなあ

148 :Name_Not_Found:2014/10/05(日) 23:39:01.25 ID:???
>>146
それがクロージャの性質だし、その為に使う
この性質が分かっていない人が多いから無駄にクロージャを生産するな、といわれる

149 :Name_Not_Found:2014/10/05(日) 23:47:14.28 ID:???
関数の中で使われている変数だけが保存されていると思ってたけど。
じゃあ関数を返り値にする場合はローカル変数にも気を遣わないといけないのかね
面倒くせーな

150 :Name_Not_Found:2014/10/06(月) 00:49:02.50 ID:???
>>149
そんなことも知らずに使っていたのか
文句いう前に勉強しろよ

151 :Name_Not_Found:2014/10/06(月) 01:32:23.59 ID:e0Ai2Gf5
>>150
は?
今のモダンブラウザではそんなダセー実装してないだろ
馬鹿じゃねえの

152 :Name_Not_Found:2014/10/06(月) 01:42:23.12 ID:???
でもDOM⇔JSエンジンの循環参照がリークになるかは、ブラウザがその辺を対策して
リークしないようにしてるかもしれないし、実際にリークしてるかを誰も証明してないな

しかもページ遷移すれば全部破棄されるから気になるようなリークにもならないだろ

153 :Name_Not_Found:2014/10/06(月) 01:46:17.74 ID:???
>>151
アンカー間違ってない?
>>149
> じゃあ関数を返り値にする場合はローカル変数にも気を遣わないといけないのかね
はクロージャの仕様そのものだろ

154 :Name_Not_Found:2014/10/06(月) 02:32:02.11 ID:e0Ai2Gf5
間違ってないが?
使われてない変数もクロージャになるのソースは?

155 :Name_Not_Found:2014/10/06(月) 03:02:49.42 ID:???
function hoge(){
var a = 100,b = 200;
return function(){
return function(){
return function(){
return eval('a');
}
}
}
}

function moge(){
var a = 100,b = 200;
return function(){
return function(){
return function(){
return a;
}
}
}
}

console.log(hoge()()()());
console.log(moge()()()());

chromeのデバッガでトレースすると、evalを使う場合、function scopeにbも含まれている
使わない場合、function scopeにaしかない
このことから使われない変数はクロージャに保存されないと分かる

156 :Name_Not_Found:2014/10/06(月) 03:11:06.89 ID:???
巻数かネストされていてもどの変数が使われるのかを把握しているようですが
どういう仕組みで把握していると思いますか?

157 :Name_Not_Found:2014/10/06(月) 05:31:06.47 ID:???
>>152
> しかもページ遷移すれば全部破棄されるから気になるようなリークにもならないだろ
ページ遷移しても開放されないのがメモリリークなんだが、全然わかってないな

158 :Name_Not_Found:2014/10/06(月) 06:32:31.82 ID:???
また循環参照のときみたいに勝手に言葉の意味を定義するアホが現れたな
メモリリークって言葉には、その現象がどういう範囲で生じるかなんて意味は含まれていない

そして、Internet Explorerリークパターンにおけるメモリリークはページ単位で発生する現象なので、
ページ遷移すればリークしたメモリは回収される
http://msdn.microsoft.com/ja-jp/library/bb250448.aspx

159 :Name_Not_Found:2014/10/06(月) 09:00:16.14 ID:???
>>157
お前じゃねーか、全然分かってないのw

160 :Name_Not_Found:2014/10/06(月) 10:55:33.80 ID:???
>>158-159
クロージャの事をまるで理解してないだろ。

---
"通常、関数のローカル変数と、関数を呼び出すときに使用されるパラメータは、関数自体の継続期間中のみ存在します。クロージャを使用すると、これらの変数とパラメータは、クロージャが有効である限り未解決の参照を持ち続けます。"
http://msdn.microsoft.com/ja-jp/library/bb250448.aspx
---

この挙動はクロージャの仕様であってバグではない。
クロージャは何もしなければ、ページを unload するまで参照を持ち続ける。
当然、IE6 SP2 だけでなく、Google Chrome でも Firefox でも同じ挙動になる(unload 時にローカル変数を参照すれば開放されてないことが分かるはずだ)。
IE6 SP2 は unload 時にメモリが開放されないから、window.detachEvent('onunload', handler) で明示的に開放してやってるんだよ。

161 :Name_Not_Found:2014/10/06(月) 11:00:04.11 ID:???
>>160
おまえほんとにアスペだよなw
クロージャーのことなんて話してませんよw
DOMとJSエンジンの循環参照の話ですw

162 :Name_Not_Found:2014/10/06(月) 11:49:05.31 ID:???
>>161
それだと>>>152の上と下の文が繋がらないだろ

> でもDOM⇔JSエンジンの循環参照がリークになるかは、ブラウザがその辺を対策して
> リークしないようにしてるかもしれないし、実際にリークしてるかを誰も証明してないな
>
> しかもページ遷移すれば全部破棄されるから気になるようなリークにもならないだろ
「どちらにしても循環参照を破棄する」ならメモリリークの有無を誰も証明してない文面がおかしい
もし、証明できるなら>>152がそれを証明しろよ

163 :Name_Not_Found:2014/10/06(月) 11:56:25.75 ID:???
>>162
その三行のどこにクロージャーなんて書いてあるんだ
DOMとJSエンジンの循環参照はクロージャだけが原因だと勘違いしちゃってる?

メモリリークは証明するも何もMSの公式発表だ

164 :Name_Not_Found:2014/10/06(月) 11:56:54.38 ID:???
このスレでアスペと発言する人は「自分の発言が期待通りに解釈する能力がない人」という意味で使ってるよな
自分の日本語がおかしくても伝わらない事に気が付いてないようだが

165 :Name_Not_Found:2014/10/06(月) 12:01:15.95 ID:???
>>163
今までクロージャに纏わる循環参照が問題にされていたんだからクロージャと認識するのが自然だろ
突然、なんに脈絡もなく、クロージャ以外の話をして、それが何の話かも明言してない(目的語を省略)のに周囲に理解されると思ってんの?

166 :Name_Not_Found:2014/10/06(月) 12:12:49.44 ID:???
>>165
DOMとJSエンジンの循環参照によるメモリリークはクロージャかどうかなんて関係無いんだよ
お前が勝手に同じ問題だと勘違いして議論に紛れ込んでただけだろ

167 :Name_Not_Found:2014/10/06(月) 12:30:08.59 ID:???
>>163
ページ遷移時に破棄されることが証明出来てないでしょ

168 :Name_Not_Found:2014/10/06(月) 12:37:38.46 ID:???
>>167
> 新しい Web アプリケーションは、より高い標準に従います。ページはナビゲートされずに何時間も実行され、
> Web サービスを通じて更新情報を動的に取得する場合があります。複合イベント スキーム、オブジェクト指向の JScript、
> およびアプリケーション全体を生成するためのクロージャを組み合わせることで、言語機能が限界点に達します。
> これらの変更およびその他の変更により、特定のメモリリークパターンが顕著になります。
> 以前はナビゲーションによって隠されていたメモリリークパターンは特に顕著になります。

169 :Name_Not_Found:2014/10/06(月) 12:38:07.13 ID:???
実際アスペが多いから仕方ない

170 :Name_Not_Found:2014/10/06(月) 12:45:57.38 ID:???
そもそもie6使ってる奴がいても普通はsp3にしてるだろ
ie6sp2のシェアなんてもはやほとんどないんじゃね

171 :Name_Not_Found:2014/10/06(月) 12:49:14.24 ID:???
http://msdn.microsoft.com/ja-jp/library/bb250448.aspx のどこにページ遷移したらメモリが解放されると書いてあるんだろう
MS IE以外のケースもの気になる

172 :Name_Not_Found:2014/10/06(月) 12:50:58.45 ID:???
chrome使ってるとページ遷移してもメモリ解放されてないと感じるな
ページ遷移のタイミングでは解放されない、というだけだが

173 :Name_Not_Found:2014/10/06(月) 12:52:03.07 ID:???
>>171
「サイト内の異なるロケーション間のナビゲーションは解放されたメモリをクリーンアップする〜」
って書いてあんぞ?

174 :Name_Not_Found:2014/10/06(月) 12:52:51.22 ID:???
http://ja.wikipedia.org/wiki/Internet_Explorer_6
2013年以降、Internet Explorer 6をインターネットから新規インストールしようとすると
「ダウンロードの場所情報は壊れています。」とエラーが出てしまい、
新規インストールすらできなくなってしまっている。

もうこんなブラウザのことなんてほっとけよww

175 :Name_Not_Found:2014/10/06(月) 12:57:43.45 ID:???
このスレは攻撃的な人が多くて嫌な感じだなあ
アスペとか荒れの火種でしかない発言は控えてほしいんだけどな

176 :Name_Not_Found:2014/10/06(月) 13:14:38.23 ID:???
アスペは不愉快だから仕方ない

177 :Name_Not_Found:2014/10/06(月) 13:16:33.61 ID:???
アスペの方から攻撃してくるからな
つい反撃しちゃうんだよ

178 :Name_Not_Found:2014/10/06(月) 14:42:15.70 ID:???
クロージャ作成時にその中で使う変数を再帰的に同定しているということは、
その処理はかなり重いものにならざるを得ませんね?

179 :Name_Not_Found:2014/10/06(月) 15:01:18.51 ID:???
関数は自分が使う変数のインデックスのようなものを内部属性として持ってるのでしょうか?

180 :Name_Not_Found:2014/10/06(月) 15:39:03.67 ID:???
evalとかが無ければ静的な文法スコープなんだから
関数の定義を外側から内側へ構文解析していくときに
どの関数がどの変数を補足してるかは決まってしまうんじゃないの?

181 :Name_Not_Found:2014/10/06(月) 16:08:38.13 ID:???
変数には再代入出来るので、やはり動的に決めているのでは?

182 :Name_Not_Found:2014/10/06(月) 16:11:38.25 ID:???
意味がよくわからない
再代入できるとなんで動的に決めないといけないの?

183 :Name_Not_Found:2014/10/06(月) 16:17:18.82 ID:???
aという変数に関数が入っていて
ある関数bの中でa()を実行していたとすると
どこがでaを別の関数に差し替えされると、それに従い関数bで使用される変数も変わります

184 :Name_Not_Found:2014/10/06(月) 16:21:26.24 ID:???
aに代入された関数はそのaを実行する場所のスコープに存在する変数を補足しません
aに代入された関数が定義された場所のスコープの変数を補足します
これが静的な文法スコープというものです

185 :Name_Not_Found:2014/10/06(月) 16:27:17.81 ID:???
実行される場所のスコープじゃなくて
定義された場所のスコープで補足する変数が決まる
だから構文解析の時点で補足する変数が決まる
だよね?

186 :Name_Not_Found:2014/10/06(月) 17:28:45.16 ID:???
>>179
スコープチェーンでぐぐるべし

>>184
構成によるのでは?
もう一度コード書いて再質問推奨
どれが誰かわからん

187 :Name_Not_Found:2014/10/06(月) 17:33:05.20 ID:???
alert("string "+a+b)
a,bはint
これって50,10だとすると
string 5010になるんですね

188 :Name_Not_Found:2014/10/06(月) 18:36:38.98 ID:???
>>184
クロージャ内でaを呼んでいたらaはクロージャが作成された空間の変数を取り込むはずだが?
はい論破

189 :Name_Not_Found:2014/10/06(月) 18:48:34.61 ID:???
と思ったら、確かめたところ、
既に作られた関数が外側から取り込むことはないようです
ナマ言ってすみませんでした

190 :Name_Not_Found:2014/10/06(月) 21:10:26.68 ID:???
関数が定義されたときに、
現在有効なスコープチェーンを保存しておきます。
関数が呼び出されたときに、新たにオブジェクトを生成し、
ローカル変数を保存します。
そして、この新しいオブジェクトを保存しておいたスコープチェーンに追加し、
関数呼び出し時のスコープチェーンを表す新たなスコープチェーンを生成します。

とJavaScript第六版にありました

191 :Name_Not_Found:2014/10/06(月) 21:32:47.02 ID:???
そこにwithがあったりすると…

192 :Name_Not_Found:2014/10/06(月) 22:21:32.52 ID:???
%指定したiframeの高さをJavaScriptで取得したいのですが、うまくいきません。
iframeでメニューとメインコンテンツを作っていて、メニューは折り畳み式になっています。
デフォルトのサイズstyleのheightしていでhtml96%のbody100%のiframe100%です。
メニューは展開するとそのiframeからはみ出すことがあり、その時は当然そのifameにスクロールバーが表示されます。
ですが、私はこの場合両方のiframeのサイズを拡大してbodyにスクロールバーが表示されるようにしたいと思っています。

document.getElementById("menu").height; //menuはメニューのiframeに付けているidです。
でiframeの高さを取得できると思ったのですが、alertで表示させてみてもなにも出力されませんでした。
どうやったら%指定したiframeの高さを取得できるでしょうか?

193 :134:2014/10/06(月) 22:30:15.67 ID:???
>>134だけどレスついてないよね?

これで、IEの場合におきるメモリリーク問題は起きなくなるってことであってるよね?

194 :Name_Not_Found:2014/10/06(月) 22:37:12.17 ID:???
よく分からないがDOMとハンドラの間に層を作るのはなんか気持ち悪い

195 :134:2014/10/06(月) 22:43:51.00 ID:???
気持ち悪いかどうかではなくてですね

196 :Name_Not_Found:2014/10/06(月) 22:55:43.15 ID:+Pnm18Z4
domとjsの間では循環してないから大丈夫そうだね

197 :134:2014/10/06(月) 22:58:59.34 ID:???
>>196
やっぱりそうなんですね! よかった安心しました。

198 :Name_Not_Found:2014/10/06(月) 22:59:30.77 ID:???
そもそも論で悪いけど、DOM-script循環参照ってそんなに気を使う必要あるかな?
1秒間に数十個レベルで要素を生成してるならともかく、通常範囲なら気にする必要はない気がする
IE6なんてもう捨てていいだろうし…

199 :134:2014/10/06(月) 23:30:19.68 ID:???
あ、すみません。
良かったの理由を書いていなかったですね。


まず、ここまでの話をまとめると、DOMとスクリプトの循環参照、
これをやることは本来問題はないわけです。
クロージャーをバンバン使っていいわけです。

問題は循環参照そのものではなく、古いIEで問題があったというだけ。
でも>>134のようにコードの書き方を工夫すれば、
クロージャーを使っても古いIEで問題が起こらない。

で、実はこれって、jQueryを使った場合のコードなんです。
jQueryを使った場合、

function init() {
 $('id').on('click', function() {})
}

のようなコードを書くんですが、みてください。DOMとスクリプトの循環参照になっていません。
jQueryは>>134で書いたように内部で独自にイベントハンドラのキューを持っているんです。

内部で独自にキューを持っているのは、そのほうが軽かったり、イベントハンドラを削除する時に
関数を渡さないでも名前空間でばっさり消せるようにするため、だろうと思っていたのですが、
もちろんそれもあるのでしょうが、メモリリーク対策もあったのですね。

jQueryを使うだけで知らないうちにメモリリーク対策された、問題ないクロージャーの
書き方をしていたってわけです。

いままで書いたコードに問題がないとわかったので良かったというわけです。

200 :Name_Not_Found:2014/10/06(月) 23:59:50.28 ID:???
>>199
ページ遷移しないWebアプリでDOM⇔JSエンジン間で循環参照したあとにDOM要素を
削除しても、ちゃんとGCされるのか?
結局、それを誰も証明してないわけで

201 :Name_Not_Found:2014/10/07(火) 00:07:08.07 ID:???
メモリリークしたという証拠がなければ、
しないってことでいいじゃね?

202 :Name_Not_Found:2014/10/07(火) 00:09:59.77 ID:???
>>201
お前天才だな

203 :Name_Not_Found:2014/10/07(火) 00:17:50.50 ID:???
まあ、普通のブラウザはしないわけで、
しない。がデフォだよ。
証拠をだすのは常識を否定する側の責任

204 :Name_Not_Found:2014/10/07(火) 00:18:29.81 ID:???
>>200
IE6のSP3未満に関してはメモリリークすることをMSが公式に表明した
他の環境でもリークすると言うのなら、
まずはおまえがその証拠を出してくださいよということです

205 :Name_Not_Found:2014/10/07(火) 00:44:51.38 ID:???
>>204
メモリリークする条件はDOMとスクリプトが混ざってる状態の話。
その条件を満たしていないのだからメモリリークしない。

メモリリークの話が出たからって何でもかんでも
メモリリークするって言ってるわけじゃないんだよ。

206 :Name_Not_Found:2014/10/07(火) 01:30:16.99 ID:???
ie6sp2という糞ブラウザで起きた現象が他のブラウザでも起きると思う理由がわからん
普通に考えて起きないだろ

207 :Name_Not_Found:2014/10/07(火) 01:44:20.52 ID:???
jQueryってこういう形でメモリリーク対策してたんだな。
勉強になった。

208 :Name_Not_Found:2014/10/07(火) 02:26:01.36 ID:???
全部デレゲーションにしたらいい

209 :Name_Not_Found:2014/10/07(火) 07:33:11.66 ID:???
>>200
すっごい以前のSafariでもそれは起こってて、メジャーアップデートで修正された思い出
当時、この問題について言及しても「そんなマイナーブラウザで起こることwww」扱いだったけど
今こうして熱く語られてるのはちょっと不思議

210 :Name_Not_Found:2014/10/07(火) 10:16:31.75 ID:???
んで>>39のケースではどう書くのは一番いいの?
>>42のような書き方なんてほとんど見かけたこと無いしこれがメモリリークするなら著名な人のコード全てを否定することになるぞ

211 :Name_Not_Found:2014/10/07(火) 12:38:07.94 ID:???
>>199
確かにメモリリークパターンではありませんが、>>134の下記コードはクロージャにする意味がない気がします。
(window依存をなくしてStrict Modeを利用するなら window を bind する価値はありますが)

(function main(global) {
 global.addClickEvent(function() {console.log(global) }
})(window);

addClickEvent(function() {console.log(window); });

他にもcallbacksがグローバル変数である、グローバル関数を多量に生産している事など、改良の余地はありそうですね。

212 :Name_Not_Found:2014/10/07(火) 12:41:12.76 ID:???
>>210
>>143に答えがあるんじゃないかな
不要だと主張しながら質問するのは意味がさっぱりわからないけど

213 :Name_Not_Found:2014/10/07(火) 15:02:55.93 ID:???
現実的にはイベントをjqueryを使わずに管理することはほとんどないから
問題になることはないじゃん

214 :Name_Not_Found:2014/10/07(火) 15:07:01.93 ID:???
今は脱jQueryが進んでるよ

215 :Name_Not_Found:2014/10/07(火) 15:30:53.39 ID:???
なんで?イベント周り面倒くさすぎるじゃん
別のライブラリ使ってんの?

216 :Name_Not_Found:2014/10/07(火) 15:33:58.88 ID:???
イベントもろくに書けないザコっていんの?

217 :Name_Not_Found:2014/10/07(火) 15:38:59.22 ID:???
YUIが潰れたしjQuery一極集中が進んでる

218 :Name_Not_Found:2014/10/07(火) 15:50:00.70 ID:???
単に面倒くさいだけのところはライブラリに任せるのが基本だろ
無能がいるようだが

219 :Name_Not_Found:2014/10/07(火) 15:56:11.56 ID:sMdzX1NX
別のライブラリに任せるとしたらそのライブラリが問題を吸収するよな
かつてこういう問題があった、という知識はあった方がいいと思うけど

220 :Name_Not_Found:2014/10/07(火) 15:58:49.10 ID:???
var Color;
(function (Color) {
Color[Color["Red"] = 1] = "Red";
Color[Color["Green"] = 2] = "Green";
})(Color || (Color = {}));
;
var a = Color.Green /* Red */;
console.log(a);

これどうして1って表示されるのか教えてください
どうしてColorに代入してないのにColor.Greenで2を返すのかわかりません

221 :Name_Not_Found:2014/10/07(火) 16:08:08.31 ID:???
>>220
TypeScriptのenumだな
Color["Green"] = 2
でメンバーに2を代入してるから
ちなみに、代入の戻り値は代入した値だから、その後Color[2] = "Green"が実行される

222 :Name_Not_Found:2014/10/07(火) 16:10:48.40 ID:???
>>220
ん?なんか変だぞ…1が表示されるはずがないな
多分どっかでColorが定義済みだろ

223 :Name_Not_Found:2014/10/07(火) 16:11:27.23 ID:???
あ、すいませんtじゃなくて2です
べんきょうになりあmした

224 :Name_Not_Found:2014/10/07(火) 19:43:30.28 ID:???
ついでにすいませんそのコードなんで無名関数の中で実行してるのにグローバルのColorに代入されちゃってるんですか?

225 :Name_Not_Found:2014/10/07(火) 20:16:24.71 ID:nCuNEytv
String変数が空であるかを調べる時は

if (str == '')

if (str === '')

if (str.length)

のどれが速いですか?
それとも他にやり方がありますか?

226 :Name_Not_Found:2014/10/07(火) 20:17:13.00 ID:nCuNEytv
訂正
>if (str.length)
↑は
if (str.length == 0)
if (str.length === 0)
です

227 :Name_Not_Found:2014/10/07(火) 20:26:26.84 ID:???
それは実測しだい。
==と===なら===のが早いだろうってのは期待できるが体感できるわけでねーし、
状況に応じて使い分けるのだろ。

str.lengthは事前に文字列って確定してること前提だから上二つと意味合いも違うし。

228 :Name_Not_Found:2014/10/07(火) 20:40:08.30 ID:???
>>192です。
もし無理そうなら初めからメニューの最大の高さに合わせておくことにします。

229 :Name_Not_Found:2014/10/07(火) 20:44:59.84 ID:???
>>226
if (!str) {
// str が null, undefine, 空文字列 でない
}
普通は↑これでいいんじゃないの?

230 :Name_Not_Found:2014/10/07(火) 20:46:45.60 ID:???
>>229
あれ?コメントが逆だったか…
// str が null, undefine, 空文字列

231 :Name_Not_Found:2014/10/07(火) 21:22:26.49 ID:nCuNEytv
>>227
ふむふむ

>>229
これが一番はやいんですか?意外でした
ありがとう!

232 :Name_Not_Found:2014/10/07(火) 21:34:07.01 ID:???
>>192
CSSじゃないんだからheightなんてプロパティはありません
javascript 要素 高さ 取得
でぐぐりましょう

233 :Name_Not_Found:2014/10/07(火) 21:37:49.11 ID:???
offsetHeigh

234 :Name_Not_Found:2014/10/07(火) 21:38:18.24 ID:???
t 

235 :Name_Not_Found:2014/10/07(火) 21:53:58.99 ID:???
jQueryなどを使わなかったらイベント周り面倒くさいよな。

$('.hoge').on('click', function() {}) と同等のことをするだけでも
ループをいちいち使わないといけないし。

>>208が全部デレゲーションにすればいいと言ってるけど、
jQueryなら

$(document').on('click', '.hoge, function() {})

これだけでいいのがjQuery使わなかったら、.hogeと一致しているか?って
調べないといけない。特定のセレクタに当てはまるか?ってどうやってかけばいいんだろう。
いちいちclassNameがなにで〜とかで比較するんじゃなくて、CSSセレクタで比較したい。

面倒くさい処理が沢山あるって指摘したら、自分でライブラリ作ればいいんだよ!って
言い出すし、本末転倒w

236 :Name_Not_Found:2014/10/07(火) 21:58:19.52 ID:???
>>214
> 今は脱jQueryが進んでるよ

脱jQueryっていうのはjQueryじゃなくて
AngularJSを使いましょうとか別のライブラリを使おうって話で
ブラウザネイティブのライブラリだけを使いましょうって
意味じゃないよ。

で、そういうライブラリはjQueryよりも重くて難しいので
UIをJavaScriptだけで作ろうってサイト以外では使われてない。
いわゆるウェブサイトやブログなんかではやっぱりjQueryが主流。

脱jQueryが進んでるのはウェブアプリを作ってるところぐらいだよ。

237 :Name_Not_Found:2014/10/07(火) 22:04:34.47 ID:???
>>235
書き方を知らないからjQueryに逃げてるだけじゃねえかよ

238 :Name_Not_Found:2014/10/07(火) 22:05:54.48 ID:???
>>236
意味じゃないよってそれはお前の中で花

239 :Name_Not_Found:2014/10/07(火) 22:08:04.09 ID:???
>>237
じゃあ、一行でセミコロンも使わずに書いてみて。

君がレスするまで反論できねぇだろ?って
思いながら待ってるよんw

240 :Name_Not_Found:2014/10/07(火) 22:09:14.53 ID:???
>>238
なんか言いたいことがあるのなら
反例でも持ってこようよw

このままじゃ、言い返したい気持ちはあるが
何も言い返せない。悔しい!としか見えないよんw

241 :Name_Not_Found:2014/10/07(火) 22:09:51.62 ID:???
一行でセミコロンも使わずに書けるよ。
俺ならな!

はい論破。

242 :Name_Not_Found:2014/10/07(火) 22:10:18.82 ID:???
はい惨敗w

243 :Name_Not_Found:2014/10/07(火) 22:10:42.09 ID:???
>>239
1行で書くと日の話はしていない
勝手に後出ししないように

あと

>$('.hoge').on('click', function() {}) と同等のことをするだけでも
>ループをいちいち使わないといけないし

これと同等のことをやるならループなんてしませんよ

244 :Name_Not_Found:2014/10/07(火) 22:13:10.63 ID:???
>>243
つまり、jQueryと同等の短さには出来ないって
認めるってことでいいよね?

それが面倒だって言ってるんだけど、

で「書けるよ。俺ならな!」は分かったから
さっさと書けよw

言い返したいが何も言えない悔しい!w

245 :Name_Not_Found:2014/10/07(火) 22:15:24.74 ID:???
なんだ? jQueryと同じことをするコードを
冗長に書けるって言ってるだけか?

そりゃjQueryだってブラウザネイティブの
命令使ってるわけで、そんなの当たり前だろ。

まさか、俺はjQuery使わないでも書けるって
言ってただけなのか?レベル低いな。

246 :Name_Not_Found:2014/10/07(火) 22:16:24.21 ID:???
後出しって言われないうちに先に行っておこう。

forEachメソッドはループです。

247 :Name_Not_Found:2014/10/07(火) 22:19:56.60 ID:???
jQueryが一行で書いているのだから
対抗するのであれば一行で書くのが筋だろう。

248 :Name_Not_Found:2014/10/07(火) 22:30:34.45 ID:???
forEachはまだサポート中のIE8で使えないしね。
まあそこでlodash(underscore)が出てくるわけだけど。

lodash 3.0まだかなー。

249 :Name_Not_Found:2014/10/07(火) 22:39:36.24 ID:???
>>229
嘘教えんなカス
遅いわ

250 :Name_Not_Found:2014/10/07(火) 23:06:21.37 ID:???
>>249
すぐ後に訂正してるよ

251 :Name_Not_Found:2014/10/08(水) 00:28:37.72 ID:???
>>235
ベンダープレフィックスが面倒だが .matches() っていうのがある
if( elm.matches(".hoge") ){ ; }
http://caniuse.com/#feat=matchesselector

querySelectorAll ならほぼどのブラウザでも統一的に使えるから、この方法もあり
if( Array.prototype.indexOf.call(document.querySelectorAll(".hoge"), elm) >= 0 ){ ; }

まあどっちにしろ助長になるから、jQuery様様だね

252 :Name_Not_Found:2014/10/08(水) 00:32:38.56 ID:???
>>246
ウルトラのバカだな
ループなしで書けるっていってんだよ

253 :Name_Not_Found:2014/10/08(水) 00:35:15.32 ID:???
jQueryがなかったらquerySelectorAllも生まれていなかった気がするな。
jQueryで実績があったから、これは便利って実装したようなもんだし。

254 :Name_Not_Found:2014/10/08(水) 00:35:43.04 ID:???
>>252
あぁ、知ってるよ。

言ってるだけだろ?

ずっと言ってるよねw

255 :Name_Not_Found:2014/10/08(水) 00:38:46.05 ID:???
書かないのは書けないからじゃないぞ。
試してるんだ。
S級の俺がお前らを試してるんだよ。

256 :Name_Not_Found:2014/10/08(水) 00:41:16.35 ID:???
ふーん(笑)

257 :Name_Not_Found:2014/10/08(水) 00:45:23.82 ID:???
>>251
ありがと。

jQueryのソースコード見てみたらmatches、および
matchesSelector使ってあったよ。

258 :Name_Not_Found:2014/10/08(水) 06:34:58.57 ID:???
jQueryと比較する時はjQuery本体のサイズも含めて比較しような

259 :Name_Not_Found:2014/10/08(水) 07:03:44.94 ID:???
ああ、やっと意味が分かった
S級って初級のことか

260 :Name_Not_Found:2014/10/08(水) 07:25:41.99 ID:???
SYOSHINSHA

261 :Name_Not_Found:2014/10/08(水) 07:41:47.54 ID:WCfIyoge
スマホ用のWebClipIconを取得するスクリプトを作っているのですが
ソースのヘッダにアイコンがない場合、
URLのルートにapple-touch-icon.pngとapple-touch-icon-precomposed.pngの
ファイルを探す作戦なのですが一部のサイトで取得できません。
例えばhttp://mw.nikkei.com/sp/#!/はsafariでホームアイコンを取得できるので
URLルートに必ずアイコンが存在しているはずなのですが。
URLのルートにapple-touch-icon.pngとapple-touch-icon-precomposed.png以外に
どのようなiconファイル名を探せばいいでしょうか

262 :Name_Not_Found:2014/10/08(水) 10:27:33.19 ID:???
PCから見るとソースにファビコンの記載がある様だけど、それちゃうの?

263 :Name_Not_Found:2014/10/08(水) 11:21:02.02 ID:???
window.Windowってなんですか?windowの中のこのWindowってなんですか?

264 :Name_Not_Found:2014/10/08(水) 12:10:29.94 ID:???
window.constructor === window.Window
//=> true
window.__proto__ === window.Window.prototype
//=> true

265 :Name_Not_Found:2014/10/08(水) 12:57:24.61 ID:???
つまりwindowとwindow.Windowは循環参照しているってことですか?
window.Window = nullしてあげるとメモリに優しくなりますか?

266 :Name_Not_Found:2014/10/08(水) 13:06:13.00 ID:???
>>265
循環参照はしてるが、DOMの中での循環だから問題ないだろう

267 :266:2014/10/08(水) 13:07:48.55 ID:???
よく見たら循環してなかった

268 :Name_Not_Found:2014/10/08(水) 16:37:36.97 ID:???
Windowクラスなんてあったのか
知らなかった

269 :Name_Not_Found:2014/10/08(水) 16:44:17.66 ID:???
>>263
仕様書ぐらいは目を通そう
https://html.spec.whatwg.org/multipage/browsers.html#the-window-object

270 :Name_Not_Found:2014/10/08(水) 17:13:08.12 ID:???
>>192です。
var selectObj = document.getElementsByTagName('iframe');
selectObj[0].height=高さ;
この方法でiframeに%指定を付ける前にサイズの変更をしたりしていたので、
%指定しているときはこの書き方ができないのだと思っていました。
selectObj[0].scrollHeight
で高さの取得、
selectObj[0].style.height=高さ+"px";
で高さの設定ができました。
>>232さん回答ありがとうございました。

271 :Name_Not_Found:2014/10/08(水) 22:16:31.57 ID:???
なぜですか?

"aaa:a" > "aa:a" // true
"aaa:a" > "aa:aaaaaaaaaaaaaaaaaaaaaaaa" // true

272 :Name_Not_Found:2014/10/08(水) 22:17:28.42 ID:???
>>270
取得したいって質問なのに設定したいって質問に切り替わってる件

273 :Name_Not_Found:2014/10/08(水) 22:43:12.88 ID:???
>>271
JavaScript(ECMAScript)での文字列同士の大なり(>)
[1] 同じ文字なら false
"hoge" > "hoge" // false
[2] 左辺が、右辺の文字列に更に文字を足したものなら true
"hogetest" > "hoge" // true
"-123" > "-12" // true. 要注意
[3] 上記以外の場合、先頭から数えて初めて異なる文字のコードの値を比較
"hogez" > "hogea" // 122(z) > 97(a) なので true
String.fromCharCode(0, 1, 2) > String.fromCharCode(0, 1, 0) // 2 > 0 なので true


"aaa:a" > "aa:a" は
String.fromCharCode(97, 97, 97, 58, 97) > String.fromCharCode(97, 97, 58, 97)
97 > 58 なので true

"aaa:a" > "aa:aaaaaaaaaaaaaaaaaaaaaaaa" は
String.fromCharCode(97, 97, 97, 58, 97) > String.fromCharCode(97, 97, 58, 97, 97, ...)
97 > 58 なので true

274 :Name_Not_Found:2014/10/08(水) 22:47:32.84 ID:???
[2] に補足で、逆の場合は当然 false ね
"hoge" > "hogetest" // false
"-12" > "-123" // false

275 :Name_Not_Found:2014/10/08(水) 23:13:13.16 ID:???
>>261
アップルのサイトに載ってる
iOS7が出た頃同じ方法でいけたよ
その頃20個以上あったはずだからiPhone 6ようにさらに増えてるはず
ファビコンはメジャーな方法があるが、クリップアイコンはむずいよ。

276 :Name_Not_Found:2014/10/08(水) 23:14:57.63 ID:???
なんかすごい面倒くさい仕様なんですね

277 :Name_Not_Found:2014/10/08(水) 23:31:57.62 ID:???
>>258
> jQueryと比較する時はjQuery本体のサイズも含めて比較しような

jQuery 1.11.1の場合、gzip圧縮状態で38.3KBしかないね。
2.1.1だと34.0KBだった。

最初、171バイトってでたからなんで?!ってびっくりした。
キャッシュされてるから二回目移行は、サイズの差は無いと考えていいようだ。

さらにCDNを使ってGoogleから高速にダウンロードさせれば
自分のサイトの負荷も下げられる。自作で作ったライブラリはCDN配信は
難しいことが多いからね。

と総合的に考えると、jQuery使ったほうがサイズは増えても
メリットのほうが多いじゃないかな。

jQueryと比較するときは、jQueryの本体サイズだけじゃなくて
配信サーバーは、開発コストなども含めて比較することにしよう。

278 :Name_Not_Found:2014/10/08(水) 23:44:40.25 ID:???
ファイルサイズなんて
多環境の動作チェックという作業量だけは多くて実りの少ない作業と比べたら小さい問題だろ
インスタンス作るのが嫌なのでDOM操作は自分でやるけど。
イベント関係だけをカバーするjQueryみたいなのがあれば一番いいかもね

279 :Name_Not_Found:2014/10/08(水) 23:49:45.91 ID:???
ファイルサイズよりもリクエスト数のほうが重要だしね。
なのでRequireJS使って結合している。

開発中はモジュールごとにわかれたファイルになってるから
メンテナンスしやすい。そして完成したらビルドして一つまたは
数個のファイルに結合する。その時についでに圧縮されるw

280 :Name_Not_Found:2014/10/08(水) 23:54:38.52 ID:???
ファイルサイズだけを見て、jQueryは
だめだって判断してくれよぉォォォォ!

281 :Name_Not_Found:2014/10/09(木) 00:57:32.72 ID:???
自作ライブラリを作れない人はjQueryを使う、という当たり前の理屈を延々と聞いている気分だ

282 :Name_Not_Found:2014/10/09(木) 01:01:19.91 ID:???
jQueryでいいのに、自作するのは馬鹿だと思うよw
あっ、たかが30KBにこだわって何時間もバグ取りするのが好きなんですね(笑)

283 :Name_Not_Found:2014/10/09(木) 01:10:46.26 ID:bkaPiH8I
>>192>>270です。

>>272
>取得したいって質問なのに設定したいって質問に切り替わってる件

聞きたかったことは%指定したiframeの高さを取得する方法で、
やりたいことはそれと中身の高さを比較して中身の方が大きければ高さをそれに合わせるということなので、
>>270では取得の話だけでなく設定の話まで書いてました。
取得ではなく設定にすり替わっていると思われたならすいませんでした。

284 :Name_Not_Found:2014/10/09(木) 01:22:05.57 ID:???
>>282
君はjQueryを使えばいいと思うよ

285 :Name_Not_Found:2014/10/09(木) 01:55:10.17 ID:???
お前は様々な環境のマイナーブラウザでしこしこテストしてろよプゲラww

286 :Name_Not_Found:2014/10/09(木) 02:12:52.25 ID:???
>>284
君はっていうか殆どの人はjQuery、もしくは
同等のライブラリ、フレームワークを使うべきだろうし
実際に使ってるよ。最近はAngularJSが人気らしいね。

287 :Name_Not_Found:2014/10/09(木) 10:22:08.89 ID:???
>>286
ライブラリを使えれば、生のコードも書けるのが本当のスペシャリストだよ
・jQueryの各メソッドがどういうコードで書かれているか読めるし、jQueryの弱点も熟知している
・既存のライブラリで賄えない分は自作ライブラリで補う
・全コードを社内で管理する為、基本的に全て社内用ライブラリを使い、他作ライブラリは使用しない(GoogleとかYahooとか)
・単純な機能ならライブラリを使うのが勿体無いので生のコードで書く
:自分ひとりで書くなら勉強の為に自作ライブラリを書く(ひょっとしたら、jQueryでは実現できないようなすばらしいライブラリが生まれるかもしれない)

そもそも、「他作ライブラリだけ使えば良い」という異見ばかりならjQueryもAngularJSも生まれなかった
既存のライブラリでは満足できず、自分の理想とする世界を実現したいという想いが新しいライブラリを作るんだよ
「俺たち凡人はどうあがいてもjQuery作者になれないんだから、おとなしく既存のライブラリを使っていようぜ」というのも一つの意見だし、否定するつもりはない
でも、堂々と他人に薦めるようなことではないと思うよ
少なくとも日本の未来が暗くなるのは間違いないね

蛇足だけど、>>285は全世界のライブラリ作者を侮辱してるよ
「様々な環境のマイナーブラウザでしこしこテストしてろよ」だって?
その面倒な作業をライブラリ作者が肩代わりしてくれているから、ライブラリ使用者が楽出来るんでしょ

288 :Name_Not_Found:2014/10/09(木) 10:37:31.71 ID:???
まったく蛇足だな
なぜなら侮辱じゃないから。
ライブラリは使われることでその地道な作業が報われる種類のものだ

289 :Name_Not_Found:2014/10/09(木) 10:40:47.56 ID:???
jQuery代替ライブラリを作ることはまったく否定してないんだがな
アホすぎワロタ

290 :Name_Not_Found:2014/10/09(木) 12:11:35.92 ID:???
後出し乙

291 :Name_Not_Found:2014/10/09(木) 12:30:49.97 ID:???
文脈読めずに頓珍漢なことを言い出した奴の言い分をただしただけで
後出しではねーよ
アスペは黙っとけよ

292 :Name_Not_Found:2014/10/09(木) 12:42:27.05 ID:???
a = "hoge"のとき
条件文中に!aが現れるとき"hoge"をboolにキャストしてfalseですよね?
!!aはさらにそれを反転させてtrueですよね?
それはわかるのですが!!!と3つぐらいつけてるコードを見かけました
これは何を意図してるのでしょうか?
難読化のつもりなのかただの中二病なのか・・・それとも何かちゃんとした理由があるのでしょうか?

293 :Name_Not_Found:2014/10/09(木) 12:42:35.08 ID:???
循環参照の件ってテンプレに入れるんですか?入れるなら結論をまとめてもらえませんか?

294 :Name_Not_Found:2014/10/09(木) 13:05:49.89 ID:???
>>292
気を付けろよ、ここはNOTだぞ!
って言いたいんじゃないかな

295 :Name_Not_Found:2014/10/09(木) 13:12:16.14 ID:???
>>294
なるほど、強調的なつもりと考えたほうがいいんですかね
さすがに5つとか7つついてるとあれですが3つぐらいならいいのかな

296 :Name_Not_Found:2014/10/09(木) 15:10:33.07 ID:???
どうしてもfalseにしたい理由があったのではなかろか

297 :Name_Not_Found:2014/10/09(木) 16:59:16.18 ID:???
>>292
正直、何の意味もないと思うなあ
!a で十分だし

298 :Name_Not_Found:2014/10/09(木) 17:31:41.27 ID:???
!!a は a のboolean型への変換を意図したコード
!!!a は !(!!a)、つまりboolean型へ変換した結果の真偽の反転を意図したコード
!a は !!!a と同じ結果だけど、単純にboolean型のaの真偽の反転を意図しているだけかもしれない

299 :Name_Not_Found:2014/10/09(木) 19:19:55.10 ID:???
そうだね、機械的に変換している気がする

300 :Name_Not_Found:2014/10/09(木) 19:30:01.52 ID:???
!!!a と書くことで a にBoolean以外のデータが格納されていることをプログラムを読む人に知らしめる

301 :Name_Not_Found:2014/10/09(木) 20:51:42.64 ID:???
文字列がヌルストリングかのチェックはちゃんと
===''
でやるべきだろ

302 :Name_Not_Found:2014/10/09(木) 21:01:46.74 ID:???
''だけじゃなくてundefinedのときにもtrueにしたいとか

303 :Name_Not_Found:2014/10/09(木) 22:12:30.46 ID:???
>>292
プログラマとして記述してるコードの意図を読み取るのもいいが、

答えは案外別のところにあって!!!o_oみたいな顔文字だったりしないか?
あるいは!!!iiiみたいなのとか。

304 :Name_Not_Found:2014/10/10(金) 00:31:31.16 ID:???
>>293
循環参照の結論


JavaScriptは原則としてGCを採用しているので循環参照があっても問題なくメモリは解放される。
ただし一部(DOM)はC++で実装されており、参照カウンタが使用されることがある。
最近のブラウザではラッパーオブジェクトによりラップされているため問題ないが
古いブラウザではJavaScriptとC++との間で循環参照があるとメモリリークのもととなる。
http://steps.dodgson.org/b/2012/12/19/dom-and-gc-or-what-happend-at-eden/

それを防ぐにはラッパーオブジェクトと同等の働きをするライブラリ(jQuery)を使用すると良い。
ライブラリを使用するのが嫌な場合は、イベントハンドラの登録時に
クロージャーを使用するのを諦めて名前付き関数を指定する必要がある。

305 :Name_Not_Found:2014/10/10(金) 00:37:25.17 ID:???
結論はJavaScriptでDOMを扱うのならjQueryを使っておけということですね。
そうすれば、古いブラウザのことなんか気にせずに
普通のJavaScriptコードを書くことが出来る。

306 :Name_Not_Found:2014/10/10(金) 00:41:08.06 ID:???
jQuery信者の書き込みが気持ち悪い

307 :Name_Not_Found:2014/10/10(金) 00:43:08.19 ID:???
なら見なければいいのでは?

308 :Name_Not_Found:2014/10/10(金) 00:45:19.04 ID:???
>>304
さすがに恥ずかしくならんか?自分のレベルの低さに。
C++実装=参照カウンタって書いててさぁ。

>古いブラウザではJavaScriptとC++との間で循環参照があるとメモリリークのもととなる。
C++はあくまでCPUのバイナリコード吐かないんだから、
javascriptと直接対話するわけじゃねーよ。そもそもjavascriptがc++で書かれているんだからよ。

ActiveXなりのDOM側のメモリ管理が参照カウンタ方式なのとjavascriptの問題なのに言語なんて関係ねーよw
DOM側が例えGCだろうとjavascript側のGCと管理を別にしてるなら解放されねーって問題なんだよ。

309 :308:2014/10/10(金) 00:46:15.10 ID:???
×C++はあくまでCPUのバイナリコード吐かないんだから、
○C++はあくまでCPUのバイナリコードしか吐かないんだから、

310 :Name_Not_Found:2014/10/10(金) 00:54:26.09 ID:???
>>308
リンク先ぐらいよもうよ。全く読んでないでしょ?


> GC つき言語 (JavaScript) のコードと C++ で書かれたコードとの連携は最たる面倒の1つ。 .
> たとえば WebKit の DOM は C++ で実装されており、 C++ のオブジェクトは JavaScript
> 処理系の GC に追跡されていない。かわりに C++ 固有の参照カウント方式で管理されている。
> こいつら C++ オブジェクトをどうやって JavaScript と混ぜるかは、一部ブラウザ開発者を悩ませてきた

> ラッパーオブジェクト
>
> C++ のオブジェクトに JavaScript オブジェクトの姿を与えるのは ラッパーオブジェクト の仕事だ。
> ラッパーオブジェクトは C++ のオブジェクトと対になる JavaScript オブジェクトで、
> 対応する C++ オブジェクトへのポインタをこっそり持っている。 ラッパーオブジェクトは、
> C++ オブジェクトを JavaScript の世界に持ち出す際、必要に応じて作られる。

311 :Name_Not_Found:2014/10/10(金) 00:58:59.51 ID:???
結論と言いつつ突拍子もなくC++の話が出てきてワロタ
あと内容が高度すぎるし、今のブラウザではほとんど実用性ないから、テンプレに入れる必要なくね

312 :Name_Not_Found:2014/10/10(金) 01:00:16.30 ID:???
古いブラウザじゃなくてIE6SP2だろ
ごく一部のブラウザでしか起きないということも明記するべき

313 :Name_Not_Found:2014/10/10(金) 01:01:01.28 ID:???
ごく一部のブラウザのために、クロージャーを使うな。とか
今思うとアホなこと言ってるよなw

314 :Name_Not_Found:2014/10/10(金) 01:22:47.35 ID:???
ここの人たちはすぐ周囲に影響されるな…
今出ている情報で言葉遊びしているようにしか見えない
IE6SP2も>>143が出るまで話題にも上がらなかったし、まともな書き込みが浮いて見える現状が異常だな

315 :Name_Not_Found:2014/10/10(金) 01:27:03.29 ID:???
>>310
読んだ上で言ってるよ。

>>311
低レベルじゃね?

316 :Name_Not_Found:2014/10/10(金) 01:50:09.00 ID:???
>>143のリンク先にも書いてあるね

> (※jQuery にも同様の処理が入っています)

jQueryって偉大だったんだな。

317 :Name_Not_Found:2014/10/10(金) 02:06:07.58 ID:???
>>314みたいに馬鹿なのに自分だけ高みに置こうとする馬鹿はとりわけ馬鹿

318 :Name_Not_Found:2014/10/10(金) 02:16:05.70 ID:???
IE6SP2でしか起きないかなり小さな問題なのに、
そのあたりを意図的に曖昧にして問題をなるべく大きく見せようとしてる奴がいるよな
そういうエゴに囚われるやつはB級プログラマー

319 :Name_Not_Found:2014/10/10(金) 02:26:01.89 ID:???
S級ってR級の下だろ?
A級からS級まで階級分けるとしてS級ってドンだけ無能なの?
そもそも言語通じるレベルなの?

320 :Name_Not_Found:2014/10/10(金) 02:32:17.35 ID:???
荒んできたから何か面白い話題しよう
疲れた時に Java とごっちゃにして書いたコード
void function test(){ alert("!"); }

321 :Name_Not_Found:2014/10/10(金) 08:25:50.04 ID:???
あるサイトに書かれていたひらがなカタカナ変換のサンプルプログラムをコピペして、
ゲームをプログラムしました。

そのゲームを自分のアフィをつけたサイトに載せているのですが、
著作権的に問題はあるのでしょうか?

322 :Name_Not_Found:2014/10/10(金) 10:31:40.27 ID:???
a.a = 1;
a.b = 2;

みたいな変数を全部出力するとき
forとfor inとforEachどれがいいですか?

323 :Name_Not_Found:2014/10/10(金) 11:10:41.07 ID:???
>>304
一応、補足。

> それを防ぐにはラッパーオブジェクトと同等の働きをするライブラリ(jQuery)を使用すると良い。
> ライブラリを使用するのが嫌な場合は、イベントハンドラの登録時に
> クロージャーを使用するのを諦めて名前付き関数を指定する必要がある。
ライブラリ未使用でも
・jQueryのようにラップする
・非Strict Modeならarguments.callee
で解決できるね。
実際、自分でコードを書いている人は自分なりのラップ関数を定義している人が多いように思う。

---
ついでだけど、ActiveXObject にも同様のメモリリーク問題があるんだよね。
http://d.hatena.ne.jp/think49/20110513/1305277906
attachEvent の event.target で xhr を参照できれば問題なかったんだけど、attachEvent の中途半端さは本当に困る。

324 :Name_Not_Found:2014/10/10(金) 11:23:43.28 ID:???
>>321
日本においては著作権は自動的に発生するものなので他人の著作物を無許可でコピーするのは違法です。
「あるサイト」のコードのライセンスを確認して下さい。
ライセンスを満たしていないなら問題があります。
何も書かれていなければ、製作者にライセンスを確認して守る必要があります。
Copyright は基本的にはつける必要があります(NYSL等の例外はありますが)。

325 :Name_Not_Found:2014/10/10(金) 11:34:45.92 ID:???
>>322
まず、前提がおかしいので補足を。
- for, forEach は配列用関数なので Object に対して適用できません。Object.keys と併用することが前提ですか?
- プロパティの順番に意味はありますか?意味があるとしたら、どのような順序で列挙することを期待しますか?

326 :Name_Not_Found:2014/10/10(金) 12:07:07.69 ID:???
>>325
var a = {"a": 1, "b":2, "c":3};
1,2,3を出力できさえできればばいいんです
難しいことはわかりません
値が出力できればいいんです

327 :Name_Not_Found:2014/10/10(金) 12:07:36.79 ID:???
順番も関係ないです
とにかオブジェクトの中の値を全部出力したいだけなんです

328 :Name_Not_Found:2014/10/10(金) 12:08:47.38 ID:???
>>323
ここはJavaScriptスレだからjQueryを使って解決って言うよりも
どういうふうにすると解決するのかが知りたい

329 :Name_Not_Found:2014/10/10(金) 12:33:33.15 ID:???
>>326-327
順不同で良いなら for-in で十分かと。

var obj = {a: 1, b:2, c:3};

for (var key in obj) {
if (obj.hasOwnProperty(key)) {
  console.log(obj[key]);
 }
}

330 :323:2014/10/10(金) 12:53:44.22 ID:???
>>328
どうするかは書いたつもりだけど、どこがわからないんだろう?

331 :Name_Not_Found:2014/10/10(金) 13:11:47.99 ID:???
サーバサイドでは出力はMVCのうちVですが
クライアントサイドではajaxをMVCのうちMに読み込みます
サーバサイドのVがクライアントサイドではMということになります
どうしたらいいですか?

332 :Name_Not_Found:2014/10/10(金) 13:19:41.88 ID:???
(funciton(global){
global = null;
})(window);
はイベントリスナが消えちゃうから解決にならない

333 :Name_Not_Found:2014/10/10(金) 13:43:59.62 ID:???
余計な変数を巻き込まないように
関数を作成して返す関数を作ればいいじゃん

334 :Name_Not_Found:2014/10/10(金) 14:02:30.43 ID:???
c++とjsで循環してるとか書く必要ないだろ
その説明が合ってるのか間違ってるのか分からないが、
domとjsで循環参照してはいけないということは分かる
誰かが書いたブログを出典にするのではなく
jsの範疇で理解出来る言葉で書くべき

335 :Name_Not_Found:2014/10/10(金) 14:13:03.23 ID:???
>>332
美しいコードとは思わないが、イベントリスナ登録後に null を代入するなら消えることはない
http://jsfiddle.net/1wvzd35k/1/

336 :Name_Not_Found:2014/10/10(金) 14:21:55.32 ID:???
以前DOMとjsの循環参照が見つかった時は
そんなのjs側が考慮する問題じゃないって結論だったような

337 :Name_Not_Found:2014/10/10(金) 14:24:53.01 ID:???
夏時間かどうかを判定する方法を教えてください
IE9以下とIE10以上で挙動が違うので夏時間かどうか知りたいのです

338 :Name_Not_Found:2014/10/10(金) 14:25:24.88 ID:???
どちらかといえば、クロージャのクロージャの影響範囲が広いコードを修正する意味合いが強い気がする
>>333のように気をつけていれば、メモリ使用量も少なくなるし

339 :Name_Not_Found:2014/10/10(金) 14:29:56.01 ID:???
>>337
> IE9以下とIE10以上で挙動が違うので夏時間かどうか知りたいのです
ごめん。因果関係が分からない。
「IE9以下とIE10以上で挙動が違う」から「夏時間かどうか知りたい」ってどういう事?
new Date で現在時刻を取得して夏時間か判定するだけの簡単な要件に思えるんだけど。

340 :Name_Not_Found:2014/10/10(金) 14:43:07.65 ID:???
>>339
http://msdn.microsoft.com/ja-jp/library/ie/jj863688(v=vs.85).aspx

341 :Name_Not_Found:2014/10/10(金) 14:57:47.49 ID:???
>>340
現在時刻ではなく、指定時刻が夏時間か知りたかったのね。
Date.prototype.toUTCString は実装依存だから元々、この関数に頼るべきじゃない(IE9とIE10で実装が変わっても文句はいえない)。
http://es5.github.io/#x15.9.5.42

new Date, setDate, setHours 等の実装依存でないメソッドで指定すれば問題にならないと思うよ。

342 :Name_Not_Found:2014/10/10(金) 15:01:52.00 ID:???
どうでもいいが、「IE9以下とIE10以上で挙動が違う」から「夏時間かどうか知りたい」ではないな
「夏時間かどうか知りたいが、IE9以下とIE10以上で Date.prototype.toUTCString の挙動が違うから困っている。参考URLは〜」と書くべきだった

343 :Name_Not_Found:2014/10/10(金) 15:40:36.68 ID:???
それってtoUTCStringだけの問題なんですか?

344 :think49 ◆bKk/qcAKuM :2014/10/10(金) 18:59:45.60 ID:???
>>328
「名前付き関数を指定」のくだりは下記URLの「DOM-script間の循環参照しないパターン[3]」が該当すると思われます。
http://d.hatena.ne.jp/think49/20141005/1412514367

ラッパー関数とはこういうものです。組み込み範囲を自由に出来るのは自作ならではですね。
https://gist.github.com/think49/758906
https://gist.github.com/think49/882821

345 :Name_Not_Found:2014/10/10(金) 22:06:01.48 ID:???
>>341
>new Date, setDate, setHours 等の実装依存でないメソッドで指定すれば問題にならないと思うよ。

実装依存ではない?つまりどの環境でも同じ結果になるとでも?ソースは?

346 :Name_Not_Found:2014/10/10(金) 22:34:51.05 ID:???
>>345
既に仕様書URL出てるんだから調べようよ。
http://es5.github.io/#x15.9.3.1
http://es5.github.io/#x15.9.5.36
http://es5.github.io/#x15.9.5.34

347 :Name_Not_Found:2014/10/11(土) 00:02:29.04 ID:???
クロージャとstaticは同じデスか?

348 :Name_Not_Found:2014/10/11(土) 00:31:38.74 ID:???
「クロージャ」は関数の一種、「static」はキーワードの一つ、
同じであるかどうか比べることジタイ間違っていると思いマス。
「リンゴ」と「赤い」を比べているようなものデス。

ここら辺を参照されタシ。
http://kudox.jp/java-script/js-private-static

349 :Name_Not_Found:2014/10/11(土) 00:49:31.28 ID:???
>>324
なるほど
何も書かれていない個人サイトだけどあまり連絡取りたくないから
サンプルを参考にして作りましたとなるようにプログラムを書き換えておこう

350 :Name_Not_Found:2014/10/11(土) 01:52:04.23 ID:???
クロージャは苦労ジャ
と覚えておけばなんとかなる

351 :Name_Not_Found:2014/10/11(土) 03:46:50.31 ID:???
var img = new Image();
img.src = 'path/to/image';

としたときに同期的に読み込む方法はありますか?

352 :Name_Not_Found:2014/10/11(土) 07:18:14.48 ID:???
>>334
> domとjsで循環参照してはいけないということは分かる

わかってないじゃないかw
もしDOMがJavaScriptで実装されていれば循環参照してもいいんだよ。

DOMが参照カウンタ方式で管理されている別言語(多くはC言語やC++)の
ライブラリを単純な方法で使ってる場合に問題になる。

JavaScriptで完結した世界であれば循環参照には何の問題もない。
逆に言えばDOM以外でもJavaScript外の言語で作られたライブラリを
使用している場合は同様の問題が起きる。

JavaScriptの範囲内で考えても、問題が起きるかどうかはわからないんだよ。

353 :Name_Not_Found:2014/10/11(土) 07:23:49.37 ID:???
>>328
> ここはJavaScriptスレだからjQueryを使って解決って言うよりも
> どういうふうにすると解決するのかが知りたい

オープンソースなんだからさ、jQueryなどのライブラリが
どのように解決しているかを見てみればいいのさ。

オレオレコード書いたって、それが本当に問題を解決できれいるかどうかわからない。

jQueryだけじゃない。いろんなライブラリの
ソースコードを読むのが上達の近道だぞ。

354 :Name_Not_Found:2014/10/11(土) 08:57:29.98 ID:???
そういうのはいらないから結果をテンプレにまとめてね

355 :Name_Not_Found:2014/10/11(土) 09:16:29.99 ID:???
通常起こり得ないことが起きるんだから、
domとjsが別の系で動いていることは分かるが
内部的な動作を知らん言葉で説明されても
jsプログラマーは興味がないってこと。
jsがcで作られていようがc++で作られていようが、
それはjsの本質にはなり得ないんだから。
どういう時に問題が起きるかと、それを避ける方法さえ分かれば十分。

356 :Name_Not_Found:2014/10/11(土) 11:41:03.52 ID:???
>>355
C++云々は俺もわからないが、わからない部分は読み飛ばすなり勉強すればいいじゃん
自分が分からないことを相手にあたるのは八つ当たりだと思うぞ

357 :Name_Not_Found:2014/10/11(土) 12:16:12.85 ID:???
>>355
>domとjsが別の系で動いていること
これが本質であって、
c言語がうーたら言ってるやつの説明は論点ずれてるよな

>>356
八つ当たりではないと思う。

358 :Name_Not_Found:2014/10/11(土) 12:24:06.42 ID:CNuh+z6+
【環境】OS:Win7, ブラウザ: IE8, Chrome37)
【何をしたのか】
【期待する結果】
ポップアップウィンドウをwindow.open()で表示させるサイトを運用しています。

表示されるウィンドウはhtmlファイルで、画像とキャプションとコピーライト、閉じるボタンなどが記述されています。
これまでは800×800サイズでポップアップされるようにしていたのですが、
昨今の事情から画像サイズを大きくしたくなりました。
また、写真によっては縦位置あり、横位置あり、パノラマありと、大きさも縦横比も様々です。

各htmlファイルを最小限の大きさでポップしたいのです。
上記のように最小限の大きさは、写真の大きさやキャプションの文量によって様々です。
各リンクの記述部分で、逐一サイズを指定すればいいのでしょうが、これをJavaScriptで一括で処理できないものでしょうか?
お知恵をください。

宜しくお願いいたします。

359 :Name_Not_Found:2014/10/11(土) 13:19:59.49 ID:kcj2Gk3k
>>357
C++云々はわからないが、ECMAScript及びDOMの仕様はある程度わかる俺からいわせてもらえば、DOMとスクリプトの循環参照はECMAScript, DOM仕様で規定されていない
実装寄りの話になるからC++を持ち出すのはおかしくないと思うぞ
本格的に理解したいなら「Firefox や Chromium のソースコードを読め」と言われると思う

それでも反論するなら、「domとjsが別の系で動いていることが本質」の根拠となる仕様を知りたい
根拠となる仕様を明示できるなら納得するよ
そうでないなら、実装依存になるからC++云々の話は全うだと思う

360 :Name_Not_Found:2014/10/11(土) 13:33:40.68 ID:???
>>359
どの言語で実装しようが
別の系のGC(複数のGC)で管理されてるオブジェクト同士が参照しあうことが問題だってことなんだよ。

FirefoxとChromiumのjsエンジンもc++で記述されてるんだから、
言語レベルで云々言うなら問題起こらん話になるんだから、c++って単語が出てくるはずないだろ。

361 :Name_Not_Found:2014/10/11(土) 13:37:13.79 ID:???
>>358
Lightbox的なポップアップ機構を実装してはどうでしょう。
(ばっさりいえば、window.openは既に時代遅れです)
http://lokeshdhakar.com/projects/lightbox2/

362 :Name_Not_Found:2014/10/11(土) 13:44:30.22 ID:kcj2Gk3k
>>360
C++言語独自の問題とはいわないが、C++ならこうなるというケースを教えてくれているとは思えないのかね
正直、主義主張の違いだけでそんなに怒る内容とは思えんのだが
怒りの沸点が低すぎじゃないか?

363 :Name_Not_Found:2014/10/11(土) 13:49:24.62 ID:???
.>>362
別に怒っているわけではないので不快に感じたらすまんよ。
ただ、問題の本質についての説明がずれていることに対して問題提起してるんだよ。
C++はこういうケースを教えてくれているわけではないので。

364 :Name_Not_Found:2014/10/11(土) 13:51:04.55 ID:???
最近のgoogle mapはメモリリークが激しい気がする
現在位置動かすたびに重くなっていってそのうちフリーズする

365 :Name_Not_Found:2014/10/11(土) 13:58:47.11 ID:???
気がするじゃなくて数字出せよ

366 :Name_Not_Found:2014/10/11(土) 14:06:39.61 ID:???
>>361
ありがとうございます。それも考えています。
しかし、キャプション類が数種類あり(説明、撮影地、データ等)、Lightboxだとそこまで対応できないように感じました(一言添えるくらいはできるようですが)。
ストレートに写真だけを見せるだけならLightboxがスマートだとはわかってはいるのですが・・

また、写真の量(見せたいhtmlファイル)が膨大で、(時代遅れと知りつつも)window.openでなんとか対応できないかと思った次第です。

367 :Name_Not_Found:2014/10/11(土) 16:12:15.07 ID:???
>>355
> 内部的な動作を知らん言葉で説明されても
> jsプログラマーは興味がないってこと。

それはお前だけだろ。勝手に決め付けるなや。

368 :Name_Not_Found:2014/10/11(土) 16:14:46.69 ID:???
>>359
> ECMAScript, DOM仕様で規定されていない

なでEMCAScriptでDOMの仕様が規定されてないのだろうか?

369 :Name_Not_Found:2014/10/11(土) 16:20:33.54 ID:???
>>360
> FirefoxとChromiumのjsエンジンもc++で記述されてるんだから、

JavaScriptエンジンが「C++で作られた実行環境」で動いているのと
JavaScriptエンジンで動いているスクリプトが「C++で作られたライブラリを呼び出している」
のとでは全然意味が違うだろ。

「C++で作られた実行環境」はJavaScriptコードを実行していると
わかってるんだから、JavaScriptの仕様どおりに実装できるが、
「C++で作られたライブラリ」はどの言語から呼び出されているかわからないので
JavaScriptの仕様を考慮できるわけじゃない。

そこでJavaScriptの仕様を考慮していないライブラリを
JavaScrptの仕様に適合させるラッパーオブジェクトというものがでてくるんだよ。

370 :Name_Not_Found:2014/10/11(土) 17:39:15.32 ID:???
>>360
ほんまそれ
言語がc++じゃなくても同じように組まれてれば同じ問題が出るんだから
c++は本質じゃない
cだろうがアセンブラだろうがアルゴリズムが同じなら同じ現象が出る

371 :Name_Not_Found:2014/10/11(土) 17:48:01.92 ID:PfkFCrUG
MSの「Internet Explorer リーク パターンを理解して解決する」の中にも
当たり前だがC++なんて言葉は出てこない
本質じゃないから。
はっきり言ってこの感覚が分からない奴はセンスない
知識とセンスは違うということを理解しろ

372 :Name_Not_Found:2014/10/11(土) 17:56:40.24 ID:???
>>371
本質を知っている人は同じことだってわかってるはずだが。

なぜInternet Explorerの古いバージョンでメモリリークするのかというと
DOMがC++で作られているから。古いIEはDOMをほぼ直接使っていたために
メモリリークしていた。現在はラッパーオブジェクトでメモリリークしないようになってる。

373 :Name_Not_Found:2014/10/11(土) 18:12:04.24 ID:???
IEのDOMがCOMオブジェクトであるってこと知らないのかな?
それがメモリリークの原因なんだけど。

COMオブジェクトは参照カウンタで管理する方式なんだよ。
COMオブジェクトは別にC、C++以外でも作られるが
実質C/C++で作られているだろう。

374 :Name_Not_Found:2014/10/11(土) 18:17:52.08 ID:???
>>372
だから
>DOMがC++で作られているから
ってのが本質じゃなくて参照カウンタを用いている、そしてjs側のGCとは通信してないから
完全に参照されていないか検出できないってのが問題なんだよ。
DOMがVBだとかほかの言語で書かれていてもこの問題は起こるっていってるんだよ。

375 :Name_Not_Found:2014/10/11(土) 18:47:02.24 ID:???
>>374
仮にDOMが.NET言語で作られていたら起きないよ。
なぜなら.NET言語自体が参照カウンタ方式ではない方法で
メモリ管理しているから。

本質的にはバインディングの問題。古くはライブラリを使う時に
静的にリンクしなければ使えなかった。それが共有外部ライブラリ
(LinuxのsoやWindowsのDLL等)で静的にリンクしなくても使えるようになった。

だけどそのリンクするときの仕様として、GCという概念はなかった。
GC自体がもっと後に出てきたものだからね。

初期の共有外部ライブラリの仕様はC言語が基本となっていた。
だからオブジェクト指向という概念が抜けている。
Windowsではオブジェクト指向(正確に言えばコンポーネント指向)を
取り入れた仕様ができた。それがCOM。Firefoxではクロスプラットフォームが
要件にあるためCOMに似たXPCOMという仕様があるらしいね。

COMではオブジェクト指向には対応できてもメモリ管理は参照カウンタ方式だった。
AddRef()でカウンタを増やし、Release()でカウンタを減らす。という仕組みがある。
.NETではCOMを拡張して参照カウンタではない方法でメモリ管理する、共有ライブラリの仕組みがある。

あと、そもそもなんでDOMがC/C++で実装されているかについては速いし再利用しやすいから。
最近はJavaScriptによるDOMの再実装なんてプロジェクトもあるらしいけど。

DOMは別にJavaScript専用のものではなく、他の言語からも使えるからね。
IEコンポーネントブラウザをVBで作るとかやったことあればわかると思う。
そもそもJavaScript(ECMAScript)の仕様の範囲じゃないしね。

376 :Name_Not_Found:2014/10/11(土) 19:25:50.09 ID:???
>>375
お、おう。

377 :Name_Not_Found:2014/10/11(土) 19:54:50.40 ID:uIFKmjhA
ちょい質問

DOM操作なんだけど、<body>ではなく、<html>丸ごとや<head>をAjaxなどで変更するのはOK?
なんとなく<head>の内容は静的でなければならないような気がするのだが

具体的には、javascriptで外部CSSを追加・削除・変更したい
<link id="css_file" href="$FILE_NAME" rel="stylesheet" type="text/css"/>

378 :Name_Not_Found:2014/10/11(土) 20:40:19.92 ID:???
>>377
その質問の答は詳しい人に任せるとして
代替スタイルシートって機能があるよ。

HTMLの仕様でスタイルシートを複数書いておいて
ブラウザが持っているであろう代替スタイルシート切り替え機能で
適用するスタイルシートを切り替えたり、JavaScriptで切り替えたり出来る機能

CSSを使ったメリットとして同じマークアップで
見た目を変えられるってことで、CSSが出だした頃からある機能なんだけど
あまり使われてないね。

これを使えばJavaScriptなしでも切り替えられるよ。

379 :Name_Not_Found:2014/10/11(土) 21:16:40.67 ID:???
関係ないけど、時々見かける

<link 〜 /> ← この / に何の意味があるの?

なくてもちゃんと動くんだけど?
これがないといけないブラウザでもあるのかな?

380 :Name_Not_Found:2014/10/11(土) 21:28:36.71 ID:???
>>379
一言で言うならば、/> は古い書き方

381 :Name_Not_Found:2014/10/11(土) 22:11:30.65 ID:???
正式勧告された仕様の中では最新だけど。

382 :Name_Not_Found:2014/10/11(土) 22:17:34.49 ID:???
http://www.html5.jp/trans/whatwg_html5faq.html#Should_I_close_empty_elements_with_.2F.3E_or_.3E.3F
ここに書いてあるのを見ると、/>と書いても/は無視されるだけで閉じないって書いてあるね。

だから<script></script>を<script />と書くのは間違い。

383 :Name_Not_Found:2014/10/12(日) 03:34:03.36 ID:???
>>382
だからHTML5はまだ正式じゃない。

384 :Name_Not_Found:2014/10/12(日) 03:38:33.29 ID:???
ECMAScript 6は正式になるのは2016年。
このスレもES5が最新であり、ES6を使っては駄目ということである。

385 :Name_Not_Found:2014/10/12(日) 05:49:55.22 ID:???
HTMLの<input type=“file”>のテストを書きたいのですが(テスト用ファイルの選択を自動化)
何か良い方法はありますか?

386 :Name_Not_Found:2014/10/12(日) 06:09:17.69 ID:???
>>385
質問がよくわからんが
load時に自動で選択windowが出るってことか?

387 :Name_Not_Found:2014/10/12(日) 06:13:44.97 ID:???
>>385
Selenium使ってみたら。
まあどっちみちハマると思うけどね。

388 :Name_Not_Found:2014/10/12(日) 06:18:19.54 ID:???
確実に言えることは、fileに好きなファイルをJavaScriptで勝手に
設定できたら、ユーザーディレクトリにあるファイルを勝手に
送信できてしまうということ。

そんなことはできたらまずいので、JavaScriptでは
fileのテストは書けない。

389 :Name_Not_Found:2014/10/12(日) 06:21:51.33 ID:???
この時間に起きてる奴結構いるんだな

390 :Name_Not_Found:2014/10/12(日) 06:38:52.65 ID:???
>>386
Fileオブジェクトを指定したかったです

>>387
Selenium IDEで動作を記録して、テストエクスポートでできました
ひとまずこれでやってみます。
ありがとうございました

391 :Name_Not_Found:2014/10/12(日) 06:43:57.06 ID:???
id表示ってどうやってやるの?

392 :Name_Not_Found:2014/10/12(日) 07:02:17.09 ID:???
>>383
HTML5 が正式じゃないっていっても、多くのページが HTML5 に移行しているからなあ
実装ありきの HTML だから、勧告で全てが決まる訳ではないのが HTML の難しいところ
JavaScript も然り

393 :Name_Not_Found:2014/10/12(日) 07:13:07.89 ID:???
つまり、 / は書いた所で意味がなく、
無視されるだけのものってこと。

394 :Name_Not_Found:2014/10/12(日) 08:25:59.12 ID:???
>>379
XHTMLでは空要素も閉じなければならない
HTML5では既に普及しているXHTMLからの移行を考慮して空要素を閉じても良い(XHTML5では当然、閉じなければならない)
空要素を閉じておけば、同一HTML文書でHTML, XHTMLの切り替えが生じた時に処理が楽になる
ようするに何の意味もないわけではない

395 :Name_Not_Found:2014/10/12(日) 08:40:21.42 ID:???
>>368
> なでEMCAScriptでDOMの仕様が規定されてないのだろうか?
そもそも、ECMAScriptとDOMは別々に仕様が定義されているのだが…。
仕様の話をするなら仕様書を読んできた方が良いぞ。
DOMはJavaScriptだけの仕様ではないから別定義なのは当然。
仕様と実装の関係を学ぶと良い。

メモリ管理は実装寄りの設計だからDOMで規定されてないのだろう。
各実装の仕様はあってもおかしくないが、下手に仕様定義してしまうと実装を変更しにくい事情はあるかもしれない。

396 :Name_Not_Found:2014/10/12(日) 09:05:39.47 ID:???
ECMAscriptってW3cが作ったん

397 :Name_Not_Found:2014/10/12(日) 09:45:44.04 ID:???
ECMAScript6 で symbol っていう新しい型があるみたいだけど、有用性が全然わからん…

398 :Name_Not_Found:2014/10/12(日) 11:21:30.87 ID:???
特殊なプロパティのキーに"__proto__"とかだっせーよなー
文字列以外にもプロパティのキーになれる値作ろうぜ
つう感じ?
function Foo(){}
Foo.prototype[Symbol.toStringTag]="Foo";
({}).toString.call(new Foo); //"[object Foo]"

399 :Name_Not_Found:2014/10/12(日) 11:50:08.37 ID:???
>>382
script要素は空要素じゃないんだから<script />と書くわけないからその例はおかしい

400 :Name_Not_Found:2014/10/12(日) 11:51:11.95 ID:???
>>394
そんなのツールで一発で変換できるから不要

401 :Name_Not_Found:2014/10/12(日) 14:57:03.57 ID:???
>>399
XHTMLではどんな要素であっても空であれば/で閉じられる。
つまり<要素></要素> と<要素 /> は完全に同等ということ。

そもそも好きな要素を自由に作れるXMLでは
「この要素は空要素」という定義は存在しない。

/> はXML由来の機能であり、その意味は「要素の中身が空」であるが、
HTMLには /> という機能はない。だから無視される。

HTMLでは / は空要素という意味を持たない。

402 :Name_Not_Found:2014/10/12(日) 14:58:50.49 ID:???
>>394にレスするべきだったか。
> HTML5では既に普及しているXHTMLからの移行を考慮して空要素を閉じても良い(XHTML5では当然、閉じなければならない)

「空要素を閉じる」といってるが、HTMLにおいて、「/ は空要素を閉じる」という意味は無い。

HTMLにおいて / は書いても文法エラーとしないだけで無視される。
何の意味も持たないゴミである。

403 :Name_Not_Found:2014/10/12(日) 15:19:51.42 ID:???
>>401
話の流れから何を言っているのか意味不明だがscriptは空要素じゃないから<script />という例は間違っている

404 :Name_Not_Found:2014/10/12(日) 15:23:22.63 ID:???
そもそも今はhtml5||xhtmlの話をしてたんじゃないのか
何で急にxmlの話が出てくるのは理解しがたい

405 :Name_Not_Found:2014/10/12(日) 15:39:46.01 ID:???
>>402
そもそも、>>379の時点でHTMLともXHTMLとも書いてないのに勝手にHTML前提で回答している人の考えが理解しがたい
どちらのケースも踏まえて回答するべきだ

406 :Name_Not_Found:2014/10/12(日) 16:04:30.94 ID:???
>>403
同じ事くりかえなくなくていいよ。

scriptが空要素じゃないのはわかってるし、
空要素というのは<br> のような書き方をする。

俺は / の意味を言ったんだよ。
HTMLにおいて無視されるもので、意味は無い。
空要素という意味を持たない。

>>405
> そもそも、>>379の時点でHTMLともXHTMLとも書いてないのに
書かなくても動くというから、その理由を説明したまで。

407 :Name_Not_Found:2014/10/12(日) 16:59:26.36 ID:???
誰が何の主張してるか分かんないから番号付けろ

408 :Name_Not_Found:2014/10/12(日) 17:29:45.76 ID:???
>>407
そう言ってるお前がつけてないから
説得力無いがなw

409 :397:2014/10/12(日) 17:34:14.34 ID:???
>>398
なるほどそういう感じなんだなd
obj.__proto__ に代わるアクセス方法があるのかな?一度調べてみる
Symbol.toStringTag は初めて知った。面白いな

410 :Name_Not_Found:2014/10/12(日) 17:44:52.65 ID:???
ES6使っている人は、ES6に対応してない
ブラウザは切り捨ててるんですか?

ここみるとNOが大半なんですが。
http://kangax.github.io/compat-table/es6/

ES6に対応していても、バージョンによっては
使えないメソッドとかあるし、
そういう場合はどうしてますか?

411 :Name_Not_Found:2014/10/12(日) 17:50:50.53 ID:???
>>408
初レスで付ける必要ねえだよ

412 :Name_Not_Found:2014/10/12(日) 18:21:55.53 ID:???
>>411
それ2レス目だろ?つけろよw

413 :Name_Not_Found:2014/10/12(日) 18:26:11.32 ID:???
>>406
> > そもそも、>>379の時点でHTMLともXHTMLとも書いてないのに
> 書かなくても動くというから、その理由を説明したまで。
text/html な XHTML1.0 でもエラーにならないので、動く事がHTMLである事の証明にはならない
text/html が本質的にXHTMLではないという声もあるだろうが、質問者がそこまでの考えを持っている事を示す判断材料がない

414 :Name_Not_Found:2014/10/12(日) 18:40:25.42 ID:???
>>412
しっしっ!

415 :Name_Not_Found:2014/10/12(日) 18:52:24.28 ID:???
>>413
そもそも、今のブラウザはXHTMLの対応を捨ててるんじゃないですかね。

不正なXHTML、たとえば空要素に/をつけない場合、
それはエラーになるべきなんですが、

今のブラウザはエラーにならないでしょ?

だからたとえXHTMLであっても、/ は無視されるっていうのが
今のブラウザの動きなんじゃないでしょうか。

416 :415:2014/10/12(日) 19:05:41.01 ID:???
やっぱり想定したとおりでしたね。
このコードはHTML ValidatorでValidなXHTML1.1と認識される正しいHTMLです。

abcの部分はXHTML的にはgreenで表示されるべきですが、
(なぜならその前にあるredは"閉じている"から)
chrome、firefox、IE11のどのブラウザでも赤く表示されました。

XHTMLであっても、/を書いても空要素にならないってことです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<title>title</title>
<style type="text/css">
#red { background-color: red ;}
#green { background-color: green ;}
</style>
</head>
<body>
<div id="green"> <div id ="red" /> abc</div>
</body>
</html>

417 :415:2014/10/12(日) 19:08:06.92 ID:???
ということは、このXHTMLをブラウザでid="red"の部分を消したら
abcは消えちゃいますね。
XMLのツールで実行したら、当然残りますが。

418 :Name_Not_Found:2014/10/12(日) 19:22:16.64 ID:???
>>416
そのソースで Firefox 32.0.3、Google Chrome 38.0.2125.101 m、Opera 24.0.1558.64、IE 11.0.12 で表示してみたけど、全部緑の背景で表示されたよ

419 :Name_Not_Found:2014/10/12(日) 19:23:46.93 ID:???
>>416
拡張子はちゃんと xml にした?

420 :Name_Not_Found:2014/10/12(日) 20:39:55.35 ID:???
>>415-416
HTTPレスポンスヘッダの指定が誤っているのだろう。
XHTML1.1では「Content-Type; application/xhtml+xml」を指定しなければならない。
XHTML1.0 Transitionalのように text/html の指定は許されない。

421 :Name_Not_Found:2014/10/12(日) 20:44:40.15 ID:???
これからの主流はHTML5、及びそれ以降ってことでいいの?
XHTMLは1.1でおしまい?

互換性に問題があるのなら、HTML4 → HTML5の流れがいいのかな。
今からXHTMLを使うことにHTML4よりメリットあることって何かある?
それとも正式版じゃないHTML5を使った方がいい?

422 :Name_Not_Found:2014/10/12(日) 20:56:30.74 ID:???
>>421
https://html.spec.whatwg.org/multipage/introduction.html#html-vs-xhtml

423 :Name_Not_Found:2014/10/12(日) 21:18:33.34 ID:???
>>422
ようするに、XHTMLはもうやめろってことですね。
ありがとうがございました。

424 :Name_Not_Found:2014/10/12(日) 21:31:07.13 ID:???
>>423
どこにもそんなことは書かれていないようだが

425 :Name_Not_Found:2014/10/12(日) 21:32:01.71 ID:???
>>424
じゃあ、的はずれなレスしないでください(笑)

426 :Name_Not_Found:2014/10/12(日) 21:45:55.84 ID:???
>>425
俺に言われても困る
英語を読めないなら読めないなりに機械翻訳を使うとかしたほうが良いんじゃないか

427 :Name_Not_Found:2014/10/12(日) 21:47:59.81 ID:???
だから的はずれなレスだってわかっててレスしたんですよ(笑)

428 :Name_Not_Found:2014/10/12(日) 21:51:34.77 ID:???
なにと戦ってるの?

429 :Name_Not_Found:2014/10/12(日) 21:52:24.61 ID:???
的外れではないけど、ゆとりには理解できなかったみたいですね(笑)

430 :Name_Not_Found:2014/10/12(日) 21:56:06.10 ID:???
補足回答する気も起きない
いい加減、スレ違いだから他所で質問してくれ

431 :Name_Not_Found:2014/10/12(日) 21:56:32.25 ID:???
× HTML 4.01
× XHTML 1.1
○ HTML Standard (HTML/XHTML)

432 :Name_Not_Found:2014/10/12(日) 21:58:56.02 ID:???
>>438
いやなら見なくていいんですよ?

433 :Name_Not_Found:2014/10/12(日) 22:26:20.58 ID:???
循環参照も決着ついてないのにころころ話題が飛びますね(笑


434 :Name_Not_Found:2014/10/12(日) 22:46:08.71 ID:???
循環参照にこれ以上何か言うことでもあんの?

435 :Name_Not_Found:2014/10/12(日) 22:49:58.85 ID:???
質問スレなんだから話題が飛んで当然じゃね
まさか1つの議題が解決してからでないと次の質問ができないとでも言うのか

436 :Name_Not_Found:2014/10/12(日) 22:51:43.74 ID:???
俺がその結論で納得行かないから
俺が満足するまで続けろっていいたいんでしょw

437 :Name_Not_Found:2014/10/13(月) 00:39:28.16 ID:Tj98qGNA
今のブラウザだとxhtmlで空要素<script src="xxx.js" />が正しく実行されないね
HTML5はXHTML5に統一して欲しかったわ

438 :Name_Not_Found:2014/10/13(月) 00:47:12.96 ID:???
もう十年以上も前になるな。当時大学1年ぐらいだったんだけど
たまたまXHTMLを宣伝する勉強会みたいなものに言ったんだよ。

で、XHTMLはXMLだから再利用が出来る。すごいみたいなことを
言っていたんだが全然実感なかった。

なんかのツールでXHTMLとして生成されるっていうのはいいけど、
XHTMLを手書きする意味は無いだろ。再利用しないんだから。

XMLは純粋なデータだから再利用可能だがXHTMLは人間が見るために
色々加工したもの(たとえば広告が脈絡もなく所々に入る)を
再利用するのはノイズが多くて処理が面倒なだけだぞって。

今はそれは正解だったと確信してるよ。事実XHTMLは何の成果もなく終わったしね。

439 :Name_Not_Found:2014/10/13(月) 01:16:37.47 ID:Tj98qGNA
なんか頓珍漢なこといってるな。レベル低すぎ

440 :Name_Not_Found:2014/10/13(月) 01:30:19.18 ID:???
>>439
言い返したいことがあるのなら
言い返していいんだよ?

441 :Name_Not_Found:2014/10/13(月) 01:30:28.46 ID:???
ただの感想や愚痴を素晴らしい意見だと勘違いして投稿している人がいるんだよね

442 :Name_Not_Found:2014/10/13(月) 01:47:19.43 ID:???
>>441
君みたいな人よくいるよね。
自分が気にくわないことがあると黙ってればいいのに
どうしても、なんか気に食わない!!(でも理由は書かない)というだけの人。

443 :Name_Not_Found:2014/10/13(月) 01:59:14.63 ID:???
ここが質問スレという事をお忘れなく

444 :Name_Not_Found:2014/10/13(月) 02:04:34.49 ID:???
じゃあ煽ってないで質問でもしたら?(笑)
俺は質問にちゃんと答えてるよ。

445 :Name_Not_Found:2014/10/13(月) 02:25:31.56 ID:???
ちゃんとした人に答えてもらいたいれす

446 :Name_Not_Found:2014/10/13(月) 02:58:24.70 ID:???
そのためにはちゃんとした質問をしないとな。

447 :Name_Not_Found:2014/10/13(月) 07:22:37.08 ID:???
NAOシフト問題って最終的にどのように解決したんですか?
また、今後同様の問題が起こる可能性はありますか?

448 :Name_Not_Found:2014/10/13(月) 08:43:14.95 ID:???
浅慮な質問が多いな

449 :Name_Not_Found:2014/10/13(月) 09:03:07.40 ID:???
firefoxを使ってieやcromeなどのテストをしたいのですがいい方法がありますか?

450 :Name_Not_Found:2014/10/13(月) 10:01:54.06 ID:???
いい方法どころか悪い方法もないだろ

451 :Name_Not_Found:2014/10/13(月) 10:23:17.83 ID:???
あるオブジェクトを禁止にする場合
window.alert = nullみたいに書いておけば大丈夫ですか?
なんか昔、復活できる方法を見た記憶があるんですが

452 :449:2014/10/13(月) 10:25:54.80 ID:???
>>450
seleniumIDEで同じことできますかね?

453 :Name_Not_Found:2014/10/13(月) 12:07:22.46 ID:???
そうかもしれないし、そうじゃないかもしれない

454 :Name_Not_Found:2014/10/14(火) 11:44:52.38 ID:???
>>451
そりゃあ手作り(書き直し)すればいくらだって

455 :Name_Not_Found:2014/10/14(火) 12:10:08.76 ID:???
去年かことしか覚えてないけど
このスレどこかのオブジェクトからコピーするとalertが復活するサンプルを見た記憶があるんですよ

456 :Name_Not_Found:2014/10/14(火) 12:10:48.77 ID:???
>>454
手作りでalert出せるんですか?それってバグを付いてですか?

457 :Name_Not_Found:2014/10/14(火) 12:11:39.44 ID:???
>>454
もしかしてdivとか使って擬似アラートの話をされてませんよね

458 :Name_Not_Found:2014/10/14(火) 16:00:27.43 ID:???
言われてみればそんなのあったな

459 :Name_Not_Found:2014/10/14(火) 16:30:14.87 ID:???
Window.prototype に alert がある場合、当然簡単に復活可能(GC38, IE9-11)
alert = null;
delete alert;
alert("hoge");
// Window.prototype.alert.call(window, "hoge"); でもいい

Window.prototype.alert がない場合や潰されてしまっても、<iframe> を使えばアラート可能(GC38, IE9-11, FF32)
Window.prototype.alert = alert = null;
alert = function(m){
var i = document.createElement("iframe");
i.src = location.href;
i.hidden = true;
document.body.appendChild(i);
i.contentWindow.alert(m);
document.body.removeChild(i);
};
alert("hoge");

他のブラウザは未確認だけど、どれも簡単に復活できると思う

460 :Name_Not_Found:2014/10/14(火) 17:07:05.14 ID:???
window.alert = null;したあとに Window.prototype.alert.call(window, "hoge");するとアラート出ました
Window.prototype.alertをwindow.alertコピーするのはどうやるんですか?

461 :Name_Not_Found:2014/10/14(火) 17:08:12.96 ID:???
>>460
delete alert;
または
alert = Window.prototype.alert;

462 :Name_Not_Found:2014/10/14(火) 17:15:48.69 ID:???
>>461
できました
deleteしたら復活するって不思議な仕様ですね

463 :Name_Not_Found:2014/10/14(火) 17:18:30.27 ID:???
>>462
プロトタイプチェーンというのを知れば、delete で復活する理由が理解できますよ
興味があれば調べてみることをお勧めします

464 :Name_Not_Found:2014/10/14(火) 17:18:58.32 ID:???
window===Windowなのに
Window.consoleがないのは何故?

465 :Name_Not_Found:2014/10/14(火) 17:19:45.59 ID:???
>>463
調べてみますありがとうございます

466 :Name_Not_Found:2014/10/14(火) 21:02:36.56 ID:???
自分の疑問に感じたらとりあえず即ググッてみるのが最低レベル以上のプログラマ。
数日後にこんなカスみたいな板で質問するのが屑。しかも真性レベルの。
復活とかわけの言葉吐くあたりほんとどうしようもねーな。

467 :Name_Not_Found:2014/10/14(火) 22:13:03.19 ID:???
質問スレで何言ってんだ
キチガイが

468 :Name_Not_Found:2014/10/14(火) 22:16:30.84 ID:???
>>464
あるかもよ

469 :Name_Not_Found:2014/10/14(火) 23:20:23.61 ID:???
>>466
デタwwww突然説教し始める奴
こういう奴は社会で承認欲求が満たされてないから2ちゃんでこういう事書くんだよ

470 :Name_Not_Found:2014/10/14(火) 23:20:40.73 ID:???
何も調べてないんだろうな、という質問は散見される
理由を聞くと「人に聞いたほうが早いから」
「JavaScript を自ら学ぶ人」ではないだろうな

471 :Name_Not_Found:2014/10/14(火) 23:27:13.65 ID:???
>>464
そんな馬鹿なと思って試したが、window === Window は false だった
いい加減な事を書かないでくれ

472 :Name_Not_Found:2014/10/15(水) 00:11:09.98 ID:???
>>471
>>264

473 :Name_Not_Found:2014/10/15(水) 00:15:07.32 ID:???
インスタンスがコンストラクタが同じわけない

474 :Name_Not_Found:2014/10/15(水) 02:45:09.22 ID:???
>>472
同じでないし、>>264が理解できているなら>>464の疑問が出てくるわけがない
基礎から学び直せ

475 :Name_Not_Found:2014/10/15(水) 08:15:47.60 ID:???
HOMEは画面上端、ENDは画面下端に移動できますが
横スクロールバーが出ている時に右端、左端に移動するキーはありますか?

476 :Name_Not_Found:2014/10/15(水) 08:26:49.67 ID:???
>>475
スレ違いです

477 :Name_Not_Found:2014/10/15(水) 08:30:09.41 ID:???
これは第一の質問なので違ってませんが?
答えが分かればここから続くんですが?

478 :Name_Not_Found:2014/10/15(水) 08:38:30.28 ID:???
では第二の質問です
もしないとすれば、JSで割り当てようと思います
どのキーに割り当てればいいですか?

479 :Name_Not_Found:2014/10/15(水) 08:52:04.56 ID:???
>>477
それはなたの都合です
それぞれの別に質問すればいいでしょう

480 :Name_Not_Found:2014/10/15(水) 11:38:07.56 ID:???
>>478
javascript scrollで検索

481 :Name_Not_Found:2014/10/15(水) 18:31:18.13 ID:???
Function.prototype.toStringって何で使ったらいけないんですか?

482 :Name_Not_Found:2014/10/15(水) 19:03:31.11 ID:???
前提となる知識が滅茶苦茶な質問ばかりだな…。

483 :Name_Not_Found:2014/10/15(水) 19:12:09.69 ID:???
JavaScript使いならFunction.prototype.toStringを使うのはタブーらしいので前提知識は当たり前だと思ってました
詳しい方いませんかね

484 :Name_Not_Found:2014/10/15(水) 19:37:12.18 ID:???
Function.prototype.toString がタブーとは初耳だな
ヒアドキュメントで使われることもあるくらいだし
環境によって返す文字列が微妙に変わるらしいから、それに注意しろってことじゃないの?

485 :Name_Not_Found:2014/10/15(水) 19:47:55.76 ID:???
>>483
理由が不明なのにタブーを断言するとは恐れ入るな
根拠がなくても何でも信じてしまうんだな

486 :Name_Not_Found:2014/10/15(水) 21:12:39.82 ID:???
>>485
反論があればmizchiさんに実名で反論どうぞ

487 :Name_Not_Found:2014/10/15(水) 21:22:14.25 ID:???
プログラマなら理解してない事柄は暫定的に信じないくらいの気概は欲しいね
著名人の書いた内容は無条件に信じるのは理解を放棄しているのと同じ

どちらにしても、他人をスケープゴートにしたり、情報後出ししたり、ソースを明言しなかったり、と自分で考える気は全く感じられないけどね

488 :Name_Not_Found:2014/10/15(水) 21:36:11.25 ID:???
おとなしく黙ってるか知りませんって言っとけばいいのに
バカのくせに無理して天才の振りするなよ

489 :Name_Not_Found:2014/10/15(水) 21:40:55.64 ID:???
>>485
根拠がわからないので質問したのですが
話がおかしな方向に向かわそうとしてる所、申し訳ありませんが分かる人に伺っているのでわからなければ回答が無いものと思っています

490 :Name_Not_Found:2014/10/15(水) 21:43:49.56 ID:???
おい、mizchiが言ったんだから
正しいに決まってんだろ。

491 :Name_Not_Found:2014/10/15(水) 21:52:44.18 ID:???
その人に直接聞けばいいじゃん

492 :Name_Not_Found:2014/10/15(水) 22:49:09.30 ID:???
>>487
お前いつもネガティブなの?

493 :Name_Not_Found:2014/10/15(水) 23:40:06.24 ID:???
>>486
その記事見てきたけど、
すぐ下の行にに理由も書いてあるじゃないかよ

494 :Name_Not_Found:2014/10/16(木) 08:12:56.21 ID:???
>>489
根拠が分からないなら、それが正しいこと前提の質問はおかしいでしょ
>>484をスルーするのも意味が分からない

495 :Name_Not_Found:2014/10/16(木) 08:21:12.31 ID:???
>>493
これか
http://mizchi.hatenablog.com/entry/2014/10/06/162103

496 :Name_Not_Found:2014/10/16(木) 08:40:39.38 ID:???
$('<div />')
というコードを本で見たのですが、こういうXHTML風の書き方ってもう古いですよね?

497 :Name_Not_Found:2014/10/16(木) 08:52:24.71 ID:???
>>496
古くない

498 :Name_Not_Found:2014/10/16(木) 09:16:48.94 ID:???
HTML5ではこういう書き方をしないので古いはずです

499 :Name_Not_Found:2014/10/16(木) 09:19:47.85 ID:???
>>496
$('<div />') は jQuery だから、HTML や XHTML のルールに乗る必要はない
最近のバージョンであれば、$('<div>') も $('<div/>') も $('<div />') も $('<div></div>') も $('<div\n\t>') も $('<div>hoge') も すべて同じこと

500 :Name_Not_Found:2014/10/16(木) 12:04:41.29 ID:???
へー
jQueryで要素作るとき
インラインレベル要素は終了タグを明示的に書かないと
古いIEでバグるもんだと思い込んでた

501 :Name_Not_Found:2014/10/16(木) 12:45:45.07 ID:???
そりゃjQueryが一旦自前で解釈してるからだろ
だから糞遅いというのもあるが、その辺は適材適所だ

502 :Name_Not_Found:2014/10/16(木) 13:09:55.81 ID:???
>>500
ざっくりになるけど

$("<hoge>") の処理
jQuery 1.2.3 あたりでは、<div> に innerHTML で放り込んで、生成された要素を返す($("<a>") は IE9以下 でエラーになる)
jQuery 1.3.0 あたりから、document.createElement("hoge") で返す

$("<hoge />") の処理
jQuery 1.2.3 あたりでは、"<hoge></hoge>" に変換した上で、<div> に innerHTML で放り込んで、生成された要素を返す
jQuery 1.3.0 あたりから、document.createElement("hoge") で返す

jQuery 1.2.3 などという古い jQuery を使わない限り、$("<hoge>") で十分だと思われる

503 :Name_Not_Found:2014/10/16(木) 13:17:42.70 ID:???
jQueryが解釈してるの?Sizzleじゃなくて?

504 :Name_Not_Found:2014/10/16(木) 13:28:08.47 ID:???
セレクタでの要素の取得は Sizzle が使われてるよ
ただ、要素の生成は Sizzle とは無関係

505 :Name_Not_Found:2014/10/16(木) 15:32:46.52 ID:???
>>498
HTML5でもそういう書き方を出来る
仕様書を読めば分かる

506 :Name_Not_Found:2014/10/16(木) 18:13:55.10 ID:Z5UfvGbP
ページのスクロールをスムーズにするために、smooth.pack.jsというプラグインを使っています。
<a href="#top">トップへ</a>
これだと問題なくスムーズに上にスクロールするんですが、javascriptで、
window.location.href = "#top";
とすると、上にスクロールはするんですが一瞬で上に行ってしまいます。

htmlとjavascriptの両方でスムーズにするにはどうすればいいでしょうか?

507 :Name_Not_Found:2014/10/16(木) 19:39:33.38 ID:k1G/oBmJ
>>506
発火させるメソッドは実装されてないの?

508 :Name_Not_Found:2014/10/16(木) 19:42:38.71 ID:k1G/oBmJ
>>498
HTML5は大雑把位に言えばなんでもありだよ

509 :Name_Not_Found:2014/10/16(木) 19:47:09.70 ID:???
>>506
現在のスクロール位置からスクロールさせたい要素まで少しずつスクロールしたら良い

510 :Name_Not_Found:2014/10/16(木) 21:48:20.05 ID:???
>>502
これは丁寧にありがとう

511 :Name_Not_Found:2014/10/17(金) 00:08:02.32 ID:???
>>506
window.location.href = "#top";
を呼び出す代わりにその smooth.pack.js
のスクロール機能を呼び出せばいいんでない?

512 :Name_Not_Found:2014/10/17(金) 00:11:33.52 ID:???
>>505
> HTML5でもそういう書き方を出来る

"HTML5" では<div />は<div>と等価であって<div></div>と等価ではない。

$("<div />")はjQueryが解釈するのでHTML5とは無関係

513 :Name_Not_Found:2014/10/17(金) 00:32:20.25 ID:???
ってかHTML5ってTeXのパクリだろ?

514 :Name_Not_Found:2014/10/17(金) 00:34:10.59 ID:???
いいえ、TexがPSのパクリです

515 :Name_Not_Found:2014/10/17(金) 00:35:49.08 ID:???
プレステ?

516 :Name_Not_Found:2014/10/17(金) 09:34:44.36 ID:???
RequireJSのようなプロダクトにYabbleというものがあるようですが
これはもうあまり使われていないのでしょうか?

517 :Name_Not_Found:2014/10/17(金) 09:37:42.59 ID:???
>>512
そういう意味ではない
HTML5はContent-Typeを変更すればXHTML5として動作する事が出来る

518 :Name_Not_Found:2014/10/17(金) 12:03:06.93 ID:???
このスレに書き込んでるのって20代後半と30代のおっさんばっかり?

519 :Name_Not_Found:2014/10/17(金) 12:07:10.75 ID:???
小学2年生だけど?

520 :Name_Not_Found:2014/10/17(金) 12:25:00.00 ID:???
全体的に質問者が若くて回答者が年上のイメージ

521 :Name_Not_Found:2014/10/17(金) 12:57:18.52 ID:???
HTMLとか画像とかCSSとかJavaScriptとかiframeとか完全に読み込み終わったら発動するイベント名をおしえてください

522 :Name_Not_Found:2014/10/17(金) 12:58:33.38 ID:???
じゃぁ40代はじいさんか?

523 :Name_Not_Found:2014/10/17(金) 13:16:32.18 ID:???
ふえぇ…5歳の幼女だよぉ…

524 :Name_Not_Found:2014/10/17(金) 13:54:33.93 ID:???
>>521
load

525 :Name_Not_Found:2014/10/17(金) 14:10:21.57 ID:???
loadだと全て読み込む前に実行されたんですけど・・・

526 :Name_Not_Found:2014/10/17(金) 14:20:29.05 ID:???
>>525
他に非同期処理が走っているのでなければ、書き方が間違ってるんだろうな

527 :Name_Not_Found:2014/10/17(金) 21:53:15.66 ID:638fr+s6
http://toro.2ch.net/test/read.cgi/hp/1381678387/121n より。
「"May TC39 Review" で Object.isObject は ES.next 仕様から削除されている」とありますが、「削除された理由」についてご存知の方はいらっしゃいますでしょうか。
個人的には待望のメソッドだったので削除されたのなら、別の代替メソッドが用意されてないかが気になっています。

528 :Name_Not_Found:2014/10/17(金) 23:50:29.91 ID:???
>>517
XHTML5なんて規格はないよ。

当たり前の話をするけどさ、
XHTMLにHTML5で増えたsectionやarticleなどといった要素はない。

529 :Name_Not_Found:2014/10/17(金) 23:53:47.35 ID:???
>>527
isObjectぐらい自作すればいいじゃん。
自分で関数も作れないの?

作れないなら、lodashとか使えば?
https://lodash.com/docs#isObject

530 :Name_Not_Found:2014/10/18(土) 00:12:14.77 ID:???
>>528
あなたもわからない人だな

> XHTML5なんて規格はないよ。
確かに XHTML5 という規格はないが、文脈を読んで理解できないか?
HTML Living Standard で説明されている XHTML を便宜上、XHTML5 と表現してるんだよ
(用語に拘るなら "HTML5" を使わず、"HTML Living Standard" といって欲しいものだが)

> XHTMLにHTML5で増えたsectionやarticleなどといった要素はない。
では、HTML5で XHTML syntax や parser について記述されているのは何の為だというのだ?
https://html.spec.whatwg.org/multipage/xhtml.html
WHATWG FAQ でも言及されているはずだが、ここはどう説明するつもりだ?
https://wiki.whatwg.org/wiki/FAQ#Will_HTML_finally_put_an_end_to_the_XHTML_as_text.2Fhtml_debate.3F
http://www.html5.jp/trans/whatwg_html5faq.html#Will_HTML_finally_put_an_end_to_the_XHTML_as_text.2Fhtml_debate.3F

531 :Name_Not_Found:2014/10/18(土) 00:13:52.13 ID:???
作れる作れないの判断ではなく最初からlodashを使うべき
そんなものは車輪の再発明でしかない
はい論破

532 :Name_Not_Found:2014/10/18(土) 00:21:07.18 ID:???
それだと車輪を手に入れるために大型ダンプカーを買うようなもんじゃね

533 :527:2014/10/18(土) 00:27:54.71 ID:ly+SR2Ov
>>529
> isObjectぐらい自作すればいいじゃん。
自作できますが、標準APIの方が明らかに安定します。
typeof演算子の仕様の関係上、自作APIは実装が不安定になりやすいと感じられます。
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-typeof-operator
実際、ES5 から ES6 に移行した時に自作関数も影響を受けました。
過去ログにあった ToObject を利用することで多少の変更には強くなりましたが、ES7, ES8 でも使えるAPIを望んでいます。

> 作れないなら、lodashとか使えば?
lodash.js のコードも読んでみましたが、ES6 に対応できてないように読めます。
将来的に型が増えた途端に破綻する実装は好ましくありませんが、次にどのような拡張されるか不明な以上、自前の対策にも限界があります。

---
「削除された理由」と「代替となる標準API」については何かないでしょうか。

534 :Name_Not_Found:2014/10/18(土) 00:31:59.57 ID:???
>>530
HTML Living Standard で
過去のHTML4の説明をするのと同じように
過去のXHTML1.1を説明するのになにか問題でも?

説明したからって、それはXHTML5の話じゃないし、
過去のバージョンの話にすぎないんだよ。

535 :Name_Not_Found:2014/10/18(土) 00:32:48.88 ID:???
ES6が普及する頃にはlodashもバージョンアップされてるからいいじゃん

536 :527:2014/10/18(土) 00:41:47.94 ID:ly+SR2Ov
良く見たら lodash.js の _.isObject は ES6 の "Object (non-standard exotic and does not implement [[Call]])" に対応できてないようですね。
この区分は ES3 の頃から存在するので ES3 に準拠できてない事になります。
さすがに ES3 にも対応できてないようでは lodash を使う気になれません…。
https://lodash.com/docs#isObject
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.4.3

537 :Name_Not_Found:2014/10/18(土) 00:44:43.31 ID:???
>>534
http://www.html5.jp/html5doctor/html-5-xml-xhtml-5.html

538 :Name_Not_Found:2014/10/18(土) 00:45:50.06 ID:???
>>536
http://toro.2ch.net/test/read.cgi/hp/1381678387/148 でいいんじゃないか?
function isObject(x){ return x === Object(x); }
今あるどの仕様にも対応してると思うぞ

539 :Name_Not_Found:2014/10/18(土) 00:54:33.49 ID:???
>>537
> 原文投稿日
> 2009-07-02

540 :527:2014/10/18(土) 01:01:06.75 ID:ly+SR2Ov
>>538
> function isObject(x){ return x === Object(x); }
申し訳ありませんが、ToObject を利用する手法は>>533でも言及していまして、その実装は実際に私も使用しています。
ただ、そのコードでは undefined, null を渡した場合に TypeError になるはずです。
ToObject は Null, Undefined 型で TypeError を返す仕様なので、Object() を通す前にその2つの型を判定させる必要があります。
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject

そして、ES7 で型が増えた場合、ToObject で例外を返す型が存在しない事を保証できないのでまだ安心できません。
この辺の問題があるから Object.isObject が作られたのだと思っていたのですが、削除されたのなら相応の理由があると思うんですよね。
どんな理由だったのか、ES6 で他の解決策があるのか、とても気になります。

541 :Name_Not_Found:2014/10/18(土) 01:05:55.86 ID:???
>>540
ん? 具体的に何をObjectとして判断してもらいたいの?

結局、判断できたとして、そんな条件を調べて
何に使えるの?ってのが無くなった理由でしょう?

人によってObjectと定義したいものは違うだろうし。

542 :Name_Not_Found:2014/10/18(土) 01:08:11.57 ID:???
Object.isObjectがあったからといって、新しいES7に対応したブラウザは
それなりの反応はするだろうけど、ES7に対応してないブラウザは期待通りの反応をしないだろうしね。
Poilifillで対応できるような型でもisObjectを使われると対応できなくなっちゃうわけで。
互換性の問題だよ。

543 :Name_Not_Found:2014/10/18(土) 01:08:12.67 ID:???
>>539
本当に疑り深い奴だな
W3CやWHATWGを調べれば分かるはずなんだがな
http://www.w3.org/TR/html5-diff/#syntax
http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#syntax
これでも信じられないようなら Content-Type を変更して HTML5 の要素を使用できるか確かめてみろ

544 :Name_Not_Found:2014/10/18(土) 01:13:03.19 ID:???
>>540
やってみれば分かるけど、エラーにならないよ
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object-value
> Object(value) の value が null か undefined の場合、ObjectCreate(%ObjectPrototype%).を返す(要は new Object() を返す)
> その他の場合、ToObject(value) を返す
なので、少なくとも ES5 以前であれば、>>538 は期待通りの結果になる。自前での型の判別は要らない

まあ確かに新しい型が増えたらどうなるか分からないが…
ただ、ES7 になって Object.isObject の定義が変わる可能性だってあるし、どこかで妥協は必要じゃないかなあ

あと、仕様書の履歴をざっと検索してみたけど、理由らしきものは見当たらなかった
力になれなくてスマン

545 :Name_Not_Found:2014/10/18(土) 01:15:01.00 ID:???
Object.isObjectって全部のブラウザで使えるのかなぁ?

546 :Name_Not_Found:2014/10/18(土) 01:15:47.39 ID:???
ぶっちゃけ、互換性なんて考える必要ないと思う。
自分が使うのだけで動けばいいでしょ?

どうせES6対応してないのは切り捨てるぐらいなんだし。

547 :527:2014/10/18(土) 01:18:08.55 ID:ly+SR2Ov
>>541-542
「Object 型」に true と返す仕様が欲しいのです。
ES7 になろうが、ES8 になろうが、typeof 'hoge' === 'string' は保証されています。
将来的に型が増えても 'hoge' が String 型である事には変わりないと思われるからです(後方互換性を排除してまでtypeof演算子の仕様を変更する理由がありません)。
それと同等の保証を「Object 型」にもして欲しいと希望しています。

548 :Name_Not_Found:2014/10/18(土) 01:18:32.25 ID:???
ノンスタンダードエキゾチックってなんなんだよ
そんなオブジェクト使わないだろ

549 :Name_Not_Found:2014/10/18(土) 01:19:09.84 ID:???
今でもObject型はobjectでしょ?
その定義が変わるわけ無いよ。

550 :Name_Not_Found:2014/10/18(土) 01:22:31.06 ID:???
というか、今現在 typeof hoge === 'object' となるのが
JavaScriptでいうObject型であり、それ以外はobjectではないとみなすべきだよ。

それは将来新しい型が増えた時も同じで、objectと互換性がないのであれば
それはobjectではないものと判断しなければいけない。

551 :Name_Not_Found:2014/10/18(土) 01:27:49.43 ID:???
>>547
言ってることがおかしいよ。

> そして、ES7 で型が増えた場合、

にobjectとして判断して欲しいってことでしょ?

新しい方が増えた時、
typeof 新しい型 === "string" になることは保証されてないよね?
typeof 古い型 === "string" であることは保証されているけど。

552 :527:2014/10/18(土) 01:29:50.15 ID:ly+SR2Ov
>>544
> Object(value) の value が null か undefined の場合、ObjectCreate(%ObjectPrototype%).を返す(要は new Object() を返す)
失礼しました。
Object() の方で例外処理があったのですね。
しかも、ES3 の頃から入っていた仕様なのに気が付かなかったとは…穴があったら入りたい。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-2_Object_Objects.html#section-15.2.1.1

> まあ確かに新しい型が増えたらどうなるか分からないが…
> ただ、ES7 になって Object.isObject の定義が変わる可能性だってあるし、どこかで妥協は必要じゃないかなあ
確かに妥協は必要かもですね。
ただ、「Object型の判定関数」ならES7になっても影響を受けない気がしていますが、考えが甘いのかなあ。

> あと、仕様書の履歴をざっと検索してみたけど、理由らしきものは見当たらなかった
> 力になれなくてスマン
いえ、手間隙かけて調べてもらえただけでも有難いです。
ありがとうございます。

553 :527:2014/10/18(土) 01:45:15.37 ID:ly+SR2Ov
>>551
私の説明が拙かったようですみません。

> typeof 古い型 === "string" であることは保証されているけど。
まさにこれを希望しています。
String 型の判定は typeof 演算子で楽に書けますが、Object 型の判定は typeof 演算子で返しうる文字列の範囲が広すぎて安定しません。
ES5 では「Undefined, Null, Boolean, Number, String型ではない型」という方法で判定可能でしたが、ES6 で Symbol 型が増えたのでこの方法は破綻しました。
今のところ、>>538 が最も安定していますが、Object型を判定する標準APIがあっても良いのではないかと思いました。
実際のところ、typeof演算子が型を表す文字列を返すように変更を加えるだけで十分なのですが、後方互換性の関係で仕様変更が不可能なのでしょうね…。

554 :Name_Not_Found:2014/10/18(土) 02:25:27.34 ID:???
>>543
いい加減スレチ

555 :Name_Not_Found:2014/10/18(土) 03:53:32.15 ID:???
ローカルストレージの制限として容量5MBと言われますが
アイテム数の制限はあるのでしょうか?
まだ5Mにいってないのにquotaなんとかエラーみたいなのが出ました

556 :Name_Not_Found:2014/10/18(土) 09:37:51.25 ID:???
>>553
lodashの実装はこれだけど、これじゃだめなん?
念の為に聞いておくと、Symbol型はObject型ではないという話だよね?

https://github.com/lodash/lodash/blob/master/lodash.js

function isObject(value) {
// avoid a V8 bug in Chrome 19-20
// https://code.google.com/p/v8/issues/detail?id=2291
var type = typeof value;
return type == 'function' || (value && type == 'object') || false;
}

557 :Name_Not_Found:2014/10/18(土) 09:45:33.26 ID:???
websocketはhttpよりも通信量が少なく速いようですが
googleの検索文字予測は普通のajaxで通信していると前にこのスレで見ました
なぜgoogleはwebsocketを使わないのでしょうか?

558 :Name_Not_Found:2014/10/18(土) 10:03:10.67 ID:???
>>555
ぐぐればでてくる

559 :Name_Not_Found:2014/10/18(土) 10:05:46.44 ID:???
>>557
一番シェアが多いブラウザが対応していなかったから。

結局、技術はあっても使えるかどうかは
ブラウザがどれだけ対応しているか?
っていう現実的な話になるんだよ。

560 :527:2014/10/18(土) 10:28:59.42 ID:ly+SR2Ov
>>556
>>536の理由でlodashのコードは敬遠しています。
私が確認したコードは v2.4.1 ですが、>>556さんが掲示されたコードは v3.0.0-pre ですね。
https://raw.githubusercontent.com/lodash/lodash/2.4.1/dist/lodash.js

---
var objectTypes = {
'boolean': false,
'function': true,
'object': true,
'number': false,
'string': false,
'undefined': false
};

function isObject(value) {
// check if the value is the ECMAScript language type of Object
// http://es5.github.io/#x8
// and avoid a V8 bug
// http://code.google.com/p/v8/issues/detail?id=2291
return !!(value && objectTypes[typeof value]);
}
---

> 念の為に聞いておくと、Symbol型はObject型ではないという話だよね?
読み返して気が付きましたが、確かにES6のSymbol型があっても判定ロジックが崩れる事はないですね。
>>533のlodashのくだりは撤回します。失礼しました。
最も、部分的な判定になっているのは両バージョン共に同様なので、使う気にはなれませんが…。

561 :Name_Not_Found:2014/10/18(土) 10:42:20.58 ID:ly+SR2Ov
>>557
Googleは既に SPDY をサポートしている為、WebSocket に対応する積極的な理由がないのかもしれません。
http://www.iij.ad.jp/company/development/tech/activities/spdy/

Google は速さに関わる技術は実装が整わなくても採用する傾向にあるので、将来的には WebSocket も採用する可能性はあります。
SPDY も元々は Google Chrome だけがサポートしていましたが、Googleはその技術を利用していました。
SPDY と同様に WebSocket 対応ブラウザだけ WebSocket に対応すれば良いのでクロスブラウザ的な理由で採用を見送っているわけではないと思います。

562 :Name_Not_Found:2014/10/18(土) 13:42:10.40 ID:???
>>560
> 最も、部分的な判定になっているのは両バージョン共に同様なので、使う気にはなれませんが…。

部分的な判定って具体的にどんなコードが問題なの?

563 :Name_Not_Found:2014/10/18(土) 13:54:34.07 ID:???
将来的に不安要素があるなら使わない、ってなんかかっこいいなあ
自分は修正の予算を取るチャンス!と思ってしまうゲスです…

564 :Name_Not_Found:2014/10/18(土) 13:56:39.63 ID:???
>>562
>>536を読めば分かると思うよ

>>563
職業プログラマにはありがちだよねー
気持ちは分かる

565 :Name_Not_Found:2014/10/18(土) 13:57:44.15 ID:???
将来的な不安要素ではなく現在の不安要素のほうが重要だと思うけどね。
このブラウザでは動かないのではないか?みたいに。

スマホとかアップデート出来ない上に古いバージョンのWebKitを使っていて
しかも独自カスタマイズしているからバージョンだけからは判断できないしな。

566 :Name_Not_Found:2014/10/18(土) 13:59:01.40 ID:???
>>564
わからないので、具体的なコードを書いてって
言ってるんだよ。

正直な所、あんたの方が勘違いしてるんじゃないかって
思ってるしね。lodashの件も勘違いしてたし。

567 :Name_Not_Found:2014/10/18(土) 14:03:29.11 ID:???
vol.111 でも lodash の駄目出しされてるね
http://toro.2ch.net/test/read.cgi/hp/1381678387/133n-

568 :Name_Not_Found:2014/10/18(土) 14:06:49.08 ID:???
>>567
2ちゃんねるのアンチなんかでどうでもよくねw

569 :Name_Not_Found:2014/10/18(土) 14:07:05.67 ID:???
>>565
現在の不安要素を排除した上で将来的な不安要素もなくすのが一番良いんじゃない?
仕様に準拠するのはそういうことだと思う

570 :Name_Not_Found:2014/10/18(土) 14:10:03.49 ID:???
>>568
理由が書かれても信じないのでは仕方ないね
139のコードや141を読めば普通に分かると思うけど

571 :Name_Not_Found:2014/10/18(土) 14:14:16.12 ID:???
>>570
その後もちゃんと読みなよw
結局問題ないって結論になってるだろ。

572 :Name_Not_Found:2014/10/18(土) 14:46:47.27 ID:???
>>571
分かってない人の発言をまともに受け取るのはどうかと思うけど
こういう行き違いになるから仕様書を読めといわれるんだよ
仕様書読めなくて意固地になっているのなら、どうしようもないから何もいえない

573 :Name_Not_Found:2014/10/18(土) 14:59:03.13 ID:???
仕様の問題じゃなくてね、
君が今何に困っているかを
具体的なコードで書けって言ってるんだよ。

574 :527:2014/10/18(土) 15:03:47.48 ID:ly+SR2Ov
>>562
ES6 で期待する Object 型の判定は下記コードになります。

---
// Ref: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-typeof-operator
function isObject (value) {

 if (value === null) { // Null型
  return false;
 }

 switch (typeof value) {
  case 'undefined': // Undefined型
  case 'boolean':  // Boolean型
  case 'number':  // Number型
  case 'string':  // String型
   return false;
   break;
  case 'object':  // Object (ordinary and does not implement [[Call]]) or Object (standard exotic and does not implement [[Call]])
  case 'function': // Object (implements [[Call]])
  default:     // Object (non-standard exotic and does not implement [[Call]])
   break;
 }

 return true;
}
---

575 :Name_Not_Found:2014/10/18(土) 15:13:41.87 ID:???
>>573
>>570で「139のコードや141を読めば普通に分かる」と書いた
http://toro.2ch.net/test/read.cgi/hp/1381678387/139n
http://toro.2ch.net/test/read.cgi/hp/1381678387/141n
自分の信じるコメントだけしか見ていない様子だったので、仕様書と照らし合わせろともいった
>>574も全く同じ事をいっている

576 :Name_Not_Found:2014/10/18(土) 15:14:02.90 ID:???
>>559
それもあるかもしれんが、全てのブラウザが対応したとしても
httpで通信しないと社内プロキシとかが通らない可能性があるから
WebSocketで独自プロトコルで通信なんてしないよ

577 :527:2014/10/18(土) 15:18:24.51 ID:ly+SR2Ov
>>574はSymbol型が入っていなかったので訂正します。

---
// Ref: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-typeof-operator
function isObject (value) {

 if (value === null) { // Null型
  return false;
 }

 switch (typeof value) {
  case 'undefined': // Undefined型
  case 'boolean':  // Boolean型
  case 'number':  // Number型
  case 'string':  // String型
  case 'symbol':  // Symbol型
   return false;
   break;
  case 'object':  // Object (ordinary and does not implement [[Call]]) or Object (standard exotic and does not implement [[Call]])
  case 'function': // Object (implements [[Call]])
  default:     // Object (non-standard exotic and does not implement [[Call]])
   break;
 }

 return true;
}
---

578 :Name_Not_Found:2014/10/18(土) 15:18:43.03 ID:???
>>575
仕様はわかっても君が困ってる問題はわからんよ。

579 :Name_Not_Found:2014/10/18(土) 15:25:25.14 ID:???
>>578
僕は「lodash の駄目出しされてる」としか書いてないんだけど、なぜ僕が困っていることになってるの?
元を辿れば、>>536が困っているわけだし、「lodashでObject型が正しく判定されない」という問題に纏わる話題でしょ?
僕は>>566に絡めて情報を提供しただけだよ

580 :Name_Not_Found:2014/10/18(土) 15:34:28.55 ID:???
>>579
ん? そんなのIDないからわからないよ。
他人と間違えられたくなければ自衛することだね。

581 :Name_Not_Found:2014/10/18(土) 15:34:42.58 ID:???
>>562からの流れは「odashに問題がある/ない」の論争だと思ってた
>>527にとってはどうでもいいことだと思うけど、lodash推しの人には死活問題なんだろうなあ

582 :Name_Not_Found:2014/10/18(土) 15:38:57.75 ID:???
>>580
君が勝手に誤解したんでしょ
読み返してみても質問なんかしてないし、困っていることを表す文章もなかった
君の方こそ気をつけるべきだね

583 :Name_Not_Found:2014/10/18(土) 16:08:36.79 ID:???
>>581
> >>562からの流れは「odashに問題がある/ない」の論争だと思ってた
違うよ。やっぱり君が勘違いしてたんじゃない。

584 :Name_Not_Found:2014/10/18(土) 16:32:18.94 ID:???
>>583
誰と勘違いしているのか知らんけど、俺は始めて発言したんだけど
いい加減、他人と同一視するのやめなよ

あと、君が誰かは知らんし、君が違うと発言しているレス番も知らん
違うというなら君が発言したレス番ぐらい書いたらどうだい?

585 :Name_Not_Found:2014/10/18(土) 16:40:03.43 ID:???
>>584
いや、俺も初めてレスするんだが?

586 :Name_Not_Found:2014/10/18(土) 16:47:39.94 ID:???
>>581
>>567,570,572,575,579,582は自分だけど、「lodashに問題がある/ない」についての話題のつもりだったね
僕は問題がある派で>>571が問題ない派だと思ってた
違うというなら「結局問題ない」が何を表していたのか、が気になるね

>>585
初めてレスするなら憶測で語らないほうがいいんじゃない?

587 :Name_Not_Found:2014/10/18(土) 17:05:45.02 ID:???
>>585
初めてレスするのに「やっぱり」というものなのか?
「やっぱり君が」は過去の誰かをさしていうものじゃないのか?
誤解を招きやすいから注意したほうがいい

588 :Name_Not_Found:2014/10/18(土) 17:16:49.17 ID:???
2ちゃんねる初心者か?
そんなんじゃ煽り騙りには対抗できないぞ

589 :Name_Not_Found:2014/10/18(土) 17:26:59.43 ID:???
http://toro.2ch.net/test/read.cgi/hp/1381678387/139n

これさ、JavaScript的にはdocument.allを特別扱いしちゃだめでしょ?

なぜならDOMの問題であってたとえばnodejsで動かした時、
document.allはsrtingかもしれないもの。

jQueryみたいなDOMのライブラリなら話は別だけどね。

590 :Name_Not_Found:2014/10/18(土) 17:35:14.62 ID:???
>>589
やっとまともな意見が来たか。
そうなんだよ。lodashもDOMライブラリじゃないので
そういうDOM由来のものを特別扱いしたりしない。

591 :Name_Not_Found:2014/10/18(土) 22:54:10.51 ID:???
>>589
その点は同意
document.all は HTML5 で規定されているけど、ECMAScript で完結する実装の方が移植性は高いだろうね

>>590
lodashの問題はそこじゃないから

592 :Name_Not_Found:2014/10/18(土) 22:57:19.86 ID:???
やっとまともな意見というか、話題が飛んだだけだろ…
まあ "ECMAScript的には" document.all を特別扱いしてはいけないとは思う
document.all の仕様はは ES5/6 に準拠していないからな

"JavaScript的には" で言えば、document.all を特別扱いすべきではあると思うが

593 :Name_Not_Found:2014/10/18(土) 23:08:11.86 ID:???
document.all は意図的に ECMAScript に違反してるからな
ECMAScript 的には特別扱いすべきじゃない、というところか

594 :Name_Not_Found:2014/10/18(土) 23:47:31.22 ID:???
>>592
> "JavaScript的には" で言えば、document.all を特別扱いすべきではあると思うが

そういうものをチェックすることはまず無いので、
必要になった時に局所的に使えばいいだけだと思うよ。

if(isObject(a) || a === document.all)って。

例外なものまでパフォーマンスを落としてチェックする価値がない。

いらないでしょ?

595 :592:2014/10/19(日) 00:02:02.43 ID:???
>>594
まあ場合によるだろうな
実装する人の裁量に任せよう

全く話は変わるが、a === document.all は明らかに不十分だよな
document.all が書き換えられていることもあるし、そもそも未定義の場合もある
どうするのがいいんだろう?意外と難しそう

596 :Name_Not_Found:2014/10/19(日) 00:22:24.07 ID:???
>>595
もう専用の関数作ったほうがよくねw

isObjectとは別に、DOMの変なものを扱うための関数。
いつ必要なるのかしらんけどさw

597 :Name_Not_Found:2014/10/19(日) 01:01:38.38 ID:???
>>576
それってwebsocket全否定じゃないですか
じゃあこれはほとんど使われてない技術なんですか?

598 :Name_Not_Found:2014/10/19(日) 01:23:54.67 ID:???
>>595
> 全く話は変わるが、a === document.all は明らかに不十分だよな
プロパティアクセス演算子を使う事がそもそもの誤りだと思うよ
'all' in document; // true

in 演算子、hasOwnProperty() の知名度はもう少しあがってもいい
この2つを知らないが故に変なコードになっている事例は結構見かける

599 :598:2014/10/19(日) 01:41:10.95 ID:???
Object型のチェックも含めるなら、document.all instanceof HTMLAllCollection かな
残念ながら、>>538はGC36で期待通りに動作しなかった(これはGCのバグな気がするけど)
Object(document.all) === document.all; false

600 :Name_Not_Found:2014/10/19(日) 03:40:06.75 ID:DkAqQdzm
質問です。
以下のコードはクロージャをDOM要素に付加しますが、
循環参照が発生してメモリリークになると言われました。

function foo(element, a, b) {
element.onclick = function() { /* 引数 a と b を使う */ };
}

これは何故でしょうか?
どうすればいいですか?

601 :Name_Not_Found:2014/10/19(日) 05:16:46.42 ID:???
>>600
奇遇だね。この間循環参照が発生しても
メモリリークになるから問題ないって結論が出たんだよ。

602 :Name_Not_Found:2014/10/19(日) 05:17:21.39 ID:???
間違えた。

奇遇だね。この間循環参照が発生しても
メモリリークになるないから問題ないって結論が出たんだよ。

603 :Name_Not_Found:2014/10/19(日) 05:45:21.27 ID:???
function foo(element, a, b) {
element.onclick = foo1(a,b);
}

function foo1(a,b){
return function() { /* 引数 a と b を使う */ };
}

これでよし

604 :592:2014/10/19(日) 09:12:19.47 ID:???
>>598>>599
いやあそれも不十分でしょう
document.all = { __proto__: HTMLAllCollection.prototype };
"all" in document // true
document.all instanceof HTMLAllCollection // true

605 :Name_Not_Found:2014/10/19(日) 10:26:51.92 ID:DkAqQdzm
>>603
ありがとうございました!

606 :598:2014/10/19(日) 11:28:51.33 ID:???
>>604
そこまで気にしていたら、document.all に限らず、既存のチェックが全て不十分だと思うけどなあ
document.all ではないチェックの場合、typeof演算子以外にも何か対策してる?
XMLHttpRequest とか querySelectorAll とか getComputedStyle とか

607 :Name_Not_Found:2014/10/19(日) 11:31:43.76 ID:???
そもそもそんなチェックすんの?しねーだろ
lodashで何の問題もない

608 :592:2014/10/19(日) 11:54:21.55 ID:???
>>606
確かにそうだなw
通常範囲だったらプロパティの書き換えまで考慮しないから、プロパティが存在するかどうかのチェックしかしてないね
document.all を気にしすぎて実用性からかけ離れてしまった

>>607
document.all に関してはそう思います

話を逸らして悪かったけど、>>527 が気にする問題点は document.all でなくて、
Object (non-standard exotic and does not implement [[Call]]) の判定をいかにするかってことだよね?

609 :Name_Not_Found:2014/10/19(日) 12:08:26.63 ID:???
>>603
それやっても、aとbを参照することになるよね?
循環参照解決してないじゃんw

610 :Name_Not_Found:2014/10/19(日) 12:09:06.75 ID:???
>>608
> Object (non-standard exotic and does not implement [[Call]]) の判定を

それに当てはまるものって何?

document.allしかないとかじゃないの?

611 :Name_Not_Found:2014/10/19(日) 12:22:43.91 ID:???
>>609
>603ではないが、a, b がDOMでなければ循環参照しない

612 :Name_Not_Found:2014/10/19(日) 12:32:15.29 ID:???
element,a,b
なんだからa,bはdomじゃないだろJK

613 :Name_Not_Found:2014/10/19(日) 12:35:49.44 ID:???
> function foo(element, a, b) {
> element.onclick = foo1(a,b);
> }
>
> function foo1(a,b){
> return function() { /* 引数 a と b を使う */ };
> }

これよりもこっちのほうがよくない?
汎用的だし。

function foo(element, a, b) {
 setEvent(element, 'onclick', function() { /* 引数 a と b を使う */ });
}

614 :Name_Not_Found:2014/10/19(日) 12:36:21.88 ID:???
>>612
え? domかもしれないじゃんか。

615 :527:2014/10/19(日) 12:49:36.09 ID:31BR5hHJ
>>608
> Object (non-standard exotic and does not implement [[Call]]) の判定をいかにするかってことだよね?
その通りです。
document.all に関しては HTML5 で ECMAScript 仕様を上書きしているので考慮する必要はないと考えています。
non-standard だったのは確か、new ActiveXObject() のどれかにあった気がしますが、忘れてしまいました。
仕様通りに動けばいいので、そこは深くは考えていないのですが…。

document.all は non-standard ではない気がしますが、あまり自信はないですね。
HTML5 策定前は一部のブラウザで typeof document.all === 'object' だったのではないかと想像してますが…。
(Opera or Firefox あたりが意図的に typeof document.all === 'undefined' にしていた記憶がありますが、うろ覚えです。)

616 :Name_Not_Found:2014/10/19(日) 12:53:37.60 ID:???
>>613
それだとクロージャにelementが巻き込まれてる

617 :Name_Not_Found:2014/10/19(日) 13:42:29.61 ID:???
>>616
巻き込まれないよ。

element.onclickに代入するのは、別のコールバックだから。

618 :Name_Not_Found:2014/10/19(日) 14:04:49.12 ID:???
>>617
616じゃないが、普通に巻き込まれてるぞ
function foo(element, a, b) {
 setEvent(element, 'onclick', function() { /* element参照可能 */ });
}

あと、コールバックの意味を誤解していると思われる

619 :Name_Not_Found:2014/10/19(日) 14:14:42.09 ID:???
>>618
え? DOMと循環参照しないようするに話でしょう?
そりゃelementは参照可能だけど、
DOMと循環参照しなければ何の問題もなくね?

620 :Name_Not_Found:2014/10/19(日) 16:50:49.28 ID:???
>>597
ゲームで使われてる

621 :Name_Not_Found:2014/10/19(日) 17:10:08.87 ID:???


622 :Name_Not_Found:2014/10/19(日) 17:28:51.51 ID:???
>>619
elementを参照可能な事で循環参照が形成される
循環参照のロジックを勘違いしていると思われる

623 :Name_Not_Found:2014/10/19(日) 17:59:47.93 ID:???
>>615
そういえば実際にあったねw
var hoge = new ActiveXObject("Excel.Sheet");
typeof hoge // "unknown"

lodash の isObject だと当然 false になっちゃうけど、>>538 なら期待通り true になった
やはり >>538 が現時点で一番いい方法のように感じる

あと、document.all は Object (non-standard exotic and does not implement [[Call]]) ではないよ
オブジェクトであれば ToBoolean(hoge) は絶対 true だし、typeof hoge は "undefined" であってはいけない
https://html.spec.whatwg.org/multipage/obsolete.html#dom-document-all
"willful violation"(故意的な違反) とはっきり書いてある

624 :Name_Not_Found:2014/10/19(日) 18:53:25.58 ID:???
ActiveXObject("Excel.Sheet"); はJavaScriptの
正しいObjectではないんだけど、
これをObjectと判断するのは正しいの?

625 :Name_Not_Found:2014/10/19(日) 18:55:22.09 ID:???
isActiveXObjectっていうのを
作るべきじゃないのかな?

626 :Name_Not_Found:2014/10/19(日) 19:02:16.17 ID:???
>>624
え、Object (non-standard exotic and does not implement [[Call]]) ではないの?

627 :Name_Not_Found:2014/10/19(日) 19:10:09.74 ID:???
non-standardっていうのは非標準って意味だよ。

628 :Name_Not_Found:2014/10/19(日) 19:15:45.41 ID:???
まあ日本語訳する意味はあまりないと思うけど、ActiveXObject は >>627 の考える非標準のオブジェクトではないの?

629 :Name_Not_Found:2014/10/19(日) 19:24:47.00 ID:???
関連した話題だと思うけどさ、

window.alert.toString();ってIE8だとエラーになるんだよね。
Objectであるならば、toString()を持っているはずなんだけど
エラーになる。

>>538だとObjectってことになるが、
こういうのを果たしてObjectといっていいのだろうか。

630 :Name_Not_Found:2014/10/19(日) 19:27:48.98 ID:???
>>628
非標準の"オブジェクト" って書いてはいるけどさ、
isObjectというのは、JavaScript標準のObjectであることを
調べるために使うはずで、ObjectなのにObjectの条件を満たしていないっていうのは
メソッドとしてはあってはならないことだと思うよ。

まあ自分で作ったものなんだからisObjectはObjectではないものも
Objectとして判定しますっていう仕様にしてもいいけどさ。

631 :Name_Not_Found:2014/10/19(日) 19:28:30.10 ID:???
Function.prototype.toString()使ってる奴はnoob

632 :Name_Not_Found:2014/10/19(日) 19:30:39.55 ID:???
ここにObjectが持っているメソッド一覧があるけどさ、
Objectであるならば、Objectを継承していないとダメだと思う。
当然toString()もここにある。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object

633 :Name_Not_Found:2014/10/19(日) 19:34:35.79 ID:???
>>630
「Object の条件を満たしていない」って具体的にどんなこと?
ちなみに、ECMAScript で言えば、window も document も規定されていないオブジェクトだぞ

634 :Name_Not_Found:2014/10/19(日) 19:37:48.79 ID:???
>>632
なにも継承しないオブジェクト
Object.create(null)

635 :527:2014/10/19(日) 22:24:55.03 ID:LCRgvYGq
>>623
補足ありがとうございます。
いわれてみれば、"unknown" には見覚えがある気がします。
document.all に関しては見かけ上、undefined なだけなので実体は何になるのかな、というのが少し気になったのです。
最も、故意に違反している以上、深く考えても仕方ないかもしれませんね…。

636 :Name_Not_Found:2014/10/19(日) 23:47:50.13 ID:???
実際には使いもしない機能に異常に拘る感じがundefined問題とかぶるな
現実的にはlodashで何の問題もない

637 :Name_Not_Found:2014/10/19(日) 23:54:35.09 ID:???
firebugとかから直接関数を呼ばれたり変数に値を入れられたりするのを阻止する方法ありませんか?
ソースコードを書き換えられるのは諦めますよ

638 :Name_Not_Found:2014/10/20(月) 04:32:05.85 ID:???
>>637
無名関数の中にでも入れてしまうわけにはいかんの?

639 :Name_Not_Found:2014/10/20(月) 08:45:31.47 ID:???
>>629
> window.alert.toString();ってIE8だとエラーになるんだよね。
> Objectであるならば、toString()を持っているはずなんだけど
少なくとも、ECMAScript 5 までは Object 型が Object のインスタンスを持つことを保証していません。
同じく、関数が Function のインスタンスであることも保証していません。

そもそも、仮に Object や Function のインスタンスであったとしても所属オブジェクトが toString を持っていたらそちらを参照するので、まずは該当仕様を確認すべきでしょう。
window.alert は HTML 5 規定ですが、toString は未定義です。
https://html.spec.whatwg.org/multipage/browsers.html#the-window-object
従って、window.alert.toString がどういう挙動を示すかは実装依存となります。
(IE8 リリース当時は window.alert は標準化されていなかったので、どちらにしろ IE8 の window.alert は実装依存ですが)
prototypeに存在するメソッドを該当オブジェクトに適用させたい場合は Function#call を使用するのが一般的です。
Function.prototype.toString.call(window.alert);
Object.prototype.toString.call(window.alert);

>>630
> ObjectなのにObjectの条件を満たしていないっていうのはメソッドとしてはあってはならないことだと思うよ。
なにやら誤解があるようですが、window.alert が Object 型であることは確かです。
>>623で紹介されている new ActiveXObject("Excel.Sheet") も Object 型です。
ECMAScript 6 では非標準(non-standard)の Object 型も規定しているので、これらは仕様の規定内です。

640 :Name_Not_Found:2014/10/20(月) 15:49:22.87 ID:???
IE8 の alert は、関数として実行できるのに、typeof alert == "object" ですよね。

ES3 11.4.3 によると、
「実装依存の オブジェクト/関数 は何を返してもいい」って書いてあります。

ES5 11.4.3 と ES6 12.5.6.1 によると、
「[[Call]] を持つオブジェクトは、"function" を返さないといけない」って書いてあります。

IE8 の alert は、ES3 には準じているけど、ES5,6 には準じていないって認識であってますか?
英語に自信がなくて、正しい理解なのか分かりません。
教えてください偉いひと(*´ω`*)

641 :Name_Not_Found:2014/10/20(月) 21:16:31.94 ID:???
var hash = {};
hashに入っているのは、Object?
{} と new Objectは同じ?

642 :Name_Not_Found:2014/10/20(月) 21:36:23.26 ID:???
>>641
同じです
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
> The production ObjectLiteral : { } is evaluated as follows:
> 1. Return a new object created as if by the expression new Object() where Object is the standard built-in constructor with that name.

643 :Name_Not_Found:2014/10/20(月) 22:10:46.34 ID:???
>>642
thank you

644 :Name_Not_Found:2014/10/20(月) 23:31:54.96 ID:???
■主要FAQ (全部は http://fiddle.jshell.net/vSqKr/33/show/ )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
  DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
  JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
  グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
  IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
  「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
  「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。
Q10. (function(global){〜})(window)無名関数の中で循環参照を切る方法をおしえてください
A10. 無名関数の最後にglobal = nullをして参照を切る

645 :Name_Not_Found:2014/10/20(月) 23:39:25.79 ID:???
ユニットテストってしてる人いますか?

646 :Name_Not_Found:2014/10/21(火) 11:43:28.24 ID:???
そもそもテストをしなくてもいいと思ったからそういう質問したんだよね
何故テストをしなくてもいいと思ったのか説明しないと

647 :Name_Not_Found:2014/10/21(火) 12:05:11.78 ID:???
何故そう思ったんです?
しなくていいと思ってたら質問すらしないと思いますが?

648 :Name_Not_Found:2014/10/21(火) 12:52:35.22 ID:???
ではしたらいいんじゃいでしょうか
質問しなくてもわかってるんでしょ

649 :Name_Not_Found:2014/10/21(火) 13:03:50.22 ID:???
質問に対する回答以外の意見を書く人なんなんです?
アホなんですか?

650 :Name_Not_Found:2014/10/21(火) 13:14:05.69 ID:???
じゃあテストはいらないって考えてるんだね

651 :Name_Not_Found:2014/10/21(火) 13:14:49.57 ID:???
どういう意図で質問したのかわからないのに答えようがない

652 :Name_Not_Found:2014/10/21(火) 13:15:55.39 ID:???
>>645
テストをする意味が分かる人はそんな質問しねえよヴォケ

653 :Name_Not_Found:2014/10/21(火) 13:24:12.36 ID:???
どうや? 最初に言ったとおりだろ。
そんな質問をする奴は、テストしなくていいと思ってる。
俺はいつだって正しい。参ったら参ったといえ。

654 :Name_Not_Found:2014/10/21(火) 13:30:24.66 ID:???
はいはい、つぎつぎ。馬鹿はほっといて
JavaScriptの話しようぜ。

655 :Name_Not_Found:2014/10/21(火) 13:31:25.41 ID:???
じゃあ、馬鹿は放っておいて話を戻しますねw

ユニットテストってしてる人いますか?

656 :Name_Not_Found:2014/10/21(火) 13:35:52.34 ID:???
いるよ
はい、終了
はい次の質問者さんどうぞ

657 :Name_Not_Found:2014/10/21(火) 13:51:55.22 ID:???
聞きたいことが明確じゃないのに質問するべきではない

658 :Name_Not_Found:2014/10/21(火) 14:10:00.70 ID:???
明確ですが?
ユニットテストはどのくらい実施されているかを知るための質問ですよ
何故分からないのか理解できませんね
アホなんですかね?

659 :Name_Not_Found:2014/10/21(火) 14:10:36.19 ID:???
アンケートは他所でやれ

660 :Name_Not_Found:2014/10/21(火) 14:20:07.52 ID:???
質問スレで何言ってんだ
お前は他所に行け

661 :Name_Not_Found:2014/10/21(火) 15:05:10.79 ID:???
>>658
質問ではない

662 :Name_Not_Found:2014/10/21(火) 17:49:58.14 ID:???
聞いた所で何の糧になるんだろw本当謎w

663 :Name_Not_Found:2014/10/21(火) 18:15:47.86 ID:???
ユニットテストってしてるか聞いただけでこの過剰反応ってことは
やろうと思ってもできてないからこの反応なのだろうね。
なぜできていないのか説明しないとw

664 :Name_Not_Found:2014/10/21(火) 18:37:11.23 ID:???
ちょっと違うかな

665 :Name_Not_Found:2014/10/21(火) 18:42:25.07 ID:???
ふーん違うんだ(笑)

666 :Name_Not_Found:2014/10/21(火) 19:06:27.39 ID:???
2ちゃんねるらしいくだらねえ質問

667 :Name_Not_Found:2014/10/21(火) 19:52:45.43 ID:???
仕事でやるならテストなんて当たり前
趣味なら自由にやれ ただし公開するならテストぐらいは書こうな

668 :Name_Not_Found:2014/10/21(火) 22:06:52.73 ID:???
HTMLに入力チェックの条件を書いて、javascriptでチェックしたいです。
JQuery validateは一応触ってみましたが、いちいちjavascriptでルール書くのめんどくさくないですか?

669 :Name_Not_Found:2014/10/21(火) 22:26:23.76 ID:???
正規表現を使えばめんどくさくないです

670 :Name_Not_Found:2014/10/23(木) 10:37:18.04 ID:???
アンケートが続いてるな
まともな質問がなかなかない…

671 :Name_Not_Found:2014/10/23(木) 10:50:06.21 ID:???
>>645さんをユニットテスト君に任命しました

672 :Name_Not_Found:2014/10/23(木) 11:45:44.27 ID:???
>>671
♪ワカチコワカチコ〜

673 :Name_Not_Found:2014/10/23(木) 12:04:08.92 ID:???
デバッガの
ステップイン、ステップアウト、ステップオーバーを
誰か分かりやすく説明してください

674 :Name_Not_Found:2014/10/23(木) 12:14:03.40 ID:???
IDE使って開発した経験がない人は
デバッガも使えないんだろうな。

これはスクリプト言語の弊害かね。

言語仕様のせいで十分なIDEサポートができない。
→テキストエディタで十分
→IDEのデバッガ機能も使わない。
→技術力低下

嘆かわしいことだね。

675 :Name_Not_Found:2014/10/23(木) 12:19:57.91 ID:???
回答以外書くな
カスが

676 :Name_Not_Found:2014/10/23(木) 12:24:17.82 ID:???
調べたところ

* ステップイン
次のステートメントを実行してから停止。関数の場合は関数の中に入る

* ステップオーバー
関数を実行し、関数の完了後に停止

* ステップアウト
現在の関数が終了した時点で停止

ということが分かりました
ありがとうございました

677 :Name_Not_Found:2014/10/23(木) 12:32:43.29 ID:???
こういう調べれば分かる内容の質問は放置して構わないと思う

678 :Name_Not_Found:2014/10/23(木) 12:35:08.38 ID:???
うん。だから放置する代わりに
こんなことも知らんのかーって
書いたわけだよ。

679 :Name_Not_Found:2014/10/23(木) 12:48:22.71 ID:???
>>677
思うのは自由だがいちいちしょうもないことを書くな
>>678
スレを無駄に使うな

680 :Name_Not_Found:2014/10/23(木) 12:51:55.02 ID:???
>>679
思うのが自由ならおまえがルールを決めていい道理もない

681 :Name_Not_Found:2014/10/23(木) 12:59:32.52 ID:???
気に入らなければスルーするという簡単なことすら出来ないのはゴミグラマー

682 :Name_Not_Found:2014/10/23(木) 13:05:24.50 ID:???
>>681
全くそのとおりだな。

俺はどんなレスであれOK派だから
自由に読み書きしてる。

683 :Name_Not_Found:2014/10/23(木) 13:14:12.59 ID:???
質問に文句さえ言わなければいいよ
質問スレなのに質問に文句を言うゴミが何故かいるから困ったものだ

684 :Name_Not_Found:2014/10/23(木) 13:32:25.06 ID:???
スクリプトはひとつひとつ読み込まれるそうです
ajaxは並列で読めるので、最初にローダーを読み込んで
他のスクリプトをajaxで読み込んだら速くなるのでは?と思ったのですが
そういうことは可能でしょうか?

685 :Name_Not_Found:2014/10/23(木) 14:16:44.58 ID:JE84iD8G
スクリプトを文字列として読んで実行するのは
それ自体は簡単だけど、付随するいろんなことが面倒だし
速くもならない気がするなあ

686 :Name_Not_Found:2014/10/23(木) 16:51:42.41 ID:???
昨日のアンケート野郎まだ湧いてるのか

687 :Name_Not_Found:2014/10/23(木) 16:53:14.13 ID:???
>>684
スペックが低いパソコンだと重くなるからやめてもらいたい

688 :Name_Not_Found:2014/10/23(木) 17:31:33.29 ID:???
>>28
> (10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

689 :Name_Not_Found:2014/10/23(木) 17:37:37.13 ID:???
>>684
そういうことはdeffer属性を使えばよいのであって、JavaScriptコードでやる事じゃない
https://w3g.jp/blog/studies/script_defer

690 :Name_Not_Found:2014/10/23(木) 21:56:02.12 ID:???
>684
可能っていうかそういうのがRequireJS等の
JavaScriptローダーだよ。

もっともこれらは並列に読み込みというよりも
モジュール化して複数のファイルで開発・デバッグ実行。
そしてリリース時には一つ無いし数個のファイルに結合することで
開発のしやすさとファイル数を減らすことが目的だと思ってるけどね。

いくら並列で読み込んでもファイル数が多ければ遅くなるし、
一つのファイルで書いてたらメンテしにくい。

691 :Name_Not_Found:2014/10/23(木) 23:01:45.02 ID:???
ありがとうございます
既にあったんですね
見てみます

692 :Name_Not_Found:2014/10/23(木) 23:30:45.24 ID:???
deferもRequreJSもjQueryのreadyも
レンダリングを妨げないってことは、
レンダリングされてからJavaScriptが動くわけですよね?

ということは厳密に言えば画面が表示されてから
addEventListenerが発動するまで僅かな遅延があるわけです。

これが単なるinput type="button"ならクリックしても反応しないだけですが
preventDefault()でデフォルトの動きをキャンセルするたぐいのもの
たとえばlink先をポップアップで表示するlightbox系とか
submitの前にダイアログを出すとかはJavaScriptの処理をバイパスしてしまいますよね?

こういう場合どう対処していますか?
一時的にサーバーの負荷が上がって、レンダリングは完了したが
JavaScriptの読み込みが遅いってことがあるのです。

693 :Name_Not_Found:2014/10/24(金) 00:58:18.40 ID:cHB3Al4E
基本的に<script>のロード中はレンダリングは止まるはず
deferを使うと止まらない

必ずレンダリングより先に実行する必要があるのならば
ドキュメントより先にJSをロードして
DOMContentLoadedのタイミングで実行すればいいと思う

ってそういう話じゃなくて?

694 :Name_Not_Found:2014/10/24(金) 01:40:21.34 ID:???
違う。DOMContentLoadedはページを
ロードし終わった後で発生するものだよ。

「レンダリングを妨げない」ということの
本当の意味は、ロード中でも表示される
ということ。つまり表示されたあとで
DOMContentLoadedが発生する

昔ずっと円周率を表示し続けるサイトがあったけど、
ああいうサイトではDOMContentLoadedは
発生しない。

実験したければPHPかなんかでSleepしながら
出力してみればわかるよ。
フラッシュすることを忘れずにね。

まとめると、DOMContentLoaded発生前に
表示された、リンクをクリックされたら
JavaScriptバイパスされちゃう。どうしよう
という話

695 :Name_Not_Found:2014/10/24(金) 01:45:07.17 ID:???
JS動くまで画面消しとけばいいんじゃね?

696 :Name_Not_Found:2014/10/24(金) 01:47:35.49 ID:???
本当にレンダリングより先に処理したいなら
ページの最初でdeferせずにscriptを読み込んで
わざとブロックさせる必要がある

defer使うとページ読み込み中に実行されるわけで
その点はRequireJSと何ら変わらない

697 :Name_Not_Found:2014/10/24(金) 01:49:17.68 ID:???
>>695
>JS動くまで画面消しとけばいいんじゃね?

それ、レンダリングをブロックしてるのと
変わらないだろw

698 :Name_Not_Found:2014/10/24(金) 01:52:03.91 ID:???
でも、JS動く前に画面表示されたら困るんでしょ?

699 :Name_Not_Found:2014/10/24(金) 01:53:17.41 ID:???
>>692
document.addEventListener('click', listener, false);

700 :Name_Not_Found:2014/10/24(金) 02:00:45.43 ID:???
>>698
>でも、JS動く前に画面表示されたら困るんでしょ?

だから、みんな気づいてないだけで、
画面表示された後で、遅延して、
JavaScruptは起動してるんだけど
どうしてるの?という質問だよ。

なお画面は表示するが、クリックはブロック
すると言うアイデアはある。まだ
実際に使ったことはないけど

701 :Name_Not_Found:2014/10/24(金) 02:05:43.54 ID:???
なるほど

JSが動く前にクリック等されては困る

つまりJSが動いた時点で完成

なわけだから、NOW LOADING的なものにしておく
そんでJSが動いたらホントの画面表示する

702 :Name_Not_Found:2014/10/24(金) 02:13:33.65 ID:???
>>701
それよりも>>700で書いたように
リンクとボタンをDOMContentLoaded
発生まで無効化したほうが良くない?

ただこの話に言及してる所知らないだよね
みんなどうしてるのか?
些細なことと無視してるのかな?

703 :Name_Not_Found:2014/10/24(金) 02:38:50.76 ID:???
>>702
JavaScriptが作動していない時にはJavaScript無効化環境用のHTML/CSSで描画し、JavaScriptが作動しているならJavaScript用UIになる
何も問題はない

704 :Name_Not_Found:2014/10/24(金) 04:17:44.09 ID:???
>>703
フォームのsubmitで「これでOKですか?」
って聞くようなのはどうしてますか?

705 :Name_Not_Found:2014/10/24(金) 04:38:40.64 ID:???
>>704
サーバサイドで確認する
そもそも、クライアントサイドはサーバサイドの負担を減らす為の保険
クライアントサイドに依存してはいけない

706 :Name_Not_Found:2014/10/24(金) 11:40:21.66 ID:???
気になるなら埋め込みscriptタグの中でイベント殺しておけばいんじゃないの

707 :Name_Not_Found:2014/10/24(金) 12:47:36.92 ID:???
>>705
それ、入力チェックの話でしょ?
じゃなくて実行していいかの確認だよ。

これこそサーバーサイドの負担を減らすための
ただしいクライアントサイドの使い方だと思うけど?

708 :Name_Not_Found:2014/10/24(金) 12:49:24.47 ID:???
何でクライアントでチェックしたらサーバサイドの負担は変わるんだよ

709 :Name_Not_Found:2014/10/24(金) 12:50:48.29 ID:???
>>706
みんな気にならないの?

どうしていますか? の答えが
こうすれば出来るよ。ばかりで
こうやっているよ。じゃないってことは
みんな無視してるってことなのかな。

ネットワークもCPUも十分に早ければ、
表示が開始されてから、DOMContentLoadedによる
JavaScript開始までの時間は短いはずだからね。

710 :Name_Not_Found:2014/10/24(金) 12:53:45.31 ID:???
>>708
だから入力チェックの話じゃないってw
実行してもよろしいですか?チェックの話。

こんなのいちいちサーバーにPOSTすることじゃないでしょ?

今画面に表示されている内容を、表示するだけのページって
無意味だから。

711 :Name_Not_Found:2014/10/24(金) 12:54:59.34 ID:???
>>709
何を一人で騒いでるのか知らないけどGoogleのJavaScript Style Guide読め

712 :Name_Not_Found:2014/10/24(金) 12:55:58.80 ID:???
>>709
みんな具体的に言ってくれてるような

答えに不満があるなら
具体的にこんな解答が欲しいって例を出してみれば?

713 :Name_Not_Found:2014/10/24(金) 12:58:45.95 ID:???
>>711
> 何を一人で騒いでるのか知らないけどGoogleのJavaScript Style Guide読め

それ質問に答えてないのと一緒だよw

たとえば、俺もあんたに○○読めといって、
わかってないのはお前だ。みたいな反論できるわけだしね。

こういうレスって中身ないって思うでしょう?

714 :Name_Not_Found:2014/10/24(金) 13:03:53.27 ID:???
>>713
まず読んでから同じ質問が出来るかよく考えてからレスして

715 :Name_Not_Found:2014/10/24(金) 13:05:01.28 ID:???
ちなみに読めばそんな質問しないから

716 :Name_Not_Found:2014/10/24(金) 13:06:07.48 ID:???
>>712
具体的な解答の例ですか?

質問が「こういう場合どう対処していますか? 」(>>692)なので

1. 自分は○○な方法を使って対処しています。
2. 自分は対処していません。

のどちらかのフォーマットでお願いします。

実際にやっているのか?という答えが聞きたいのです。

>>700で書いたようにクリックをブロックするなどのアイデアは
自分で考えればわかることです。

しつこいようですが、質問を勘違いしている人が多いようなので
繰り返しますが。自分で考えてわかることは聞いていないのですよ。
他人がどうしているか?は自分で考えてもわからないことなので聞いてます。

717 :Name_Not_Found:2014/10/24(金) 13:06:32.83 ID:???
>>714
OK読みました。ずいぶんと前にね。

718 :Name_Not_Found:2014/10/24(金) 13:13:55.16 ID:???
読んでも理解でなかったオバカちゃんですって自己紹介ですか

719 :Name_Not_Found:2014/10/24(金) 13:13:57.01 ID:???
JavaScript Style Guideを読んだのは本当だけどさ、
まああらためてみたけど、JavaScript Style Guideって
そのタイトルの通りJavaScriptのスタイルの書き方だよな?

どこ見ればサーバーサイドでやることとかの話が書いてあるんだろうか?
ざっくりみたけどやっぱり何も書いてない。

具体的に、どこに書いてあるのか聞いたら答えてくれるのかね?
それとも適当に出しただけ?

720 :Name_Not_Found:2014/10/24(金) 13:20:05.83 ID:???
>>718
読んで理解できるように努力しますので、

http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
のどこを読めばいいか、ページ内検索できるキーワードを教えて下さい。

もし英語が読めなければ、和訳の方でもいいです。
http://cou929.nu/data/google_javascript_style_guide/

721 :705:2014/10/24(金) 13:21:25.00 ID:???
>>707
> それ、入力チェックの話でしょ?
> じゃなくて実行していいかの確認だよ。
「何を」実行していいのかの確認なのかを明確にしてくれ

JavaScript処理ならJavaScriptが働かない状態でフォームが表示されていることが問題
JavaScriptの準備が整ってからフォームを生成すればよい
>>703でも同様の書き込みはしたはずだが

722 :Name_Not_Found:2014/10/24(金) 13:30:03.34 ID:???
>>721
> 「何を」実行していいのかの確認なのかを明確にしてくれ

削除、保存処理、その他POSTしたデータの何らかの加工処理。

Railsのscaffoldで生成されたアプリはデータの削除時に
JavaScriptのダイアログで確認がでるけどこれのこと。


JavaScriptで削除確認? 信じられない! という人のために嘘じゃない証拠
http://d.hatena.ne.jp/sandmark/20120325/1332635998
> scaffoldすると「Destroy」リンクをクリックしたときに
> "Are you sure?" というJavaScriptのAlertボックスが表示されますが、

723 :Name_Not_Found:2014/10/24(金) 13:31:45.03 ID:???
>>721
ここまで具体的に答え方の例を書いてるのに、
ちゃんとフォーマット従ってくれないのね・・・

>>716より
> 1. 自分は○○な方法を使って対処しています。
> 2. 自分は対処していません。
>
> のどちらかのフォーマットでお願いします。

どうすればできるかという、自分で考えれば
わかるようなことは聞いてないんだってば。

724 :Name_Not_Found:2014/10/24(金) 13:32:23.88 ID:???
そりゃシステム的な削除の確認ではなく
ユーザに親切にするための確認だから
変でもなんでもないと思うぞ

725 :Name_Not_Found:2014/10/24(金) 13:33:27.14 ID:???
>>723
おい、じゃあ○○には何を入れて欲しいんだよ

726 :Name_Not_Found:2014/10/24(金) 13:34:01.19 ID:???
>>724
いや、だから、ユーザに親切にするための確認の話をしてるのに
サーバーサイドで確認するとか言い出した人がいるんだよ。

サーバーサイドは忘れて。

最初っから自分はクライアントサイドの話しかしてないから。

727 :Name_Not_Found:2014/10/24(金) 13:37:50.75 ID:???
>>725
実際にあなたがやっていることをどうぞ。

思いつかないならいくつか例を上げましょうか?

DOMContentLoadedが起きるまで特定のクリックをブロックする(俺推奨)
DOMContentLoadedが起きるまでページ全体、もしくは該当要素を非表示にする
input type="button"等のデフォルトの動作がないものだけを使う
deferやRequireJS等の遅延して実行される物は使わない。

728 :Name_Not_Found:2014/10/24(金) 13:41:22.67 ID:???
あと、クリックを無視するのを防止する方法として

DOMContentLoadedが起きるまでのクリックを貯めておいて
DOMContentLoadedが起きた後で、貯めてクリックを再生するとか。

これはクリックが無視されないという点で一番優れていると思うけど
複雑だから別のバグが起こりかねないかも。


ね? やり方は考えつくんだって。
みんなはどうやってるのかが聞きたいだけなのに。

729 :Name_Not_Found:2014/10/24(金) 13:43:03.10 ID:???
いつから雑談スレになったんですか?

730 :Name_Not_Found:2014/10/24(金) 13:43:53.03 ID:???
>>728
>クリックを貯めておいて

ん?

731 :705:2014/10/24(金) 14:00:13.79 ID:???
>>722
Rubyに投げる削除処理の事前確認という事か?
フォームでRubyに処理を投げるなら入力チェックと考え方は変わらないと思うが

(1) JavaScript無効処理
1. Rubyに削除処理を投げる
2. Rubyに削除確認のページを表示させる
3. OKならRubyで削除
 ↓
JavaScriptで削除確認処理を追加
 ↓
(2)JavaScript有効処理
1. Rubyに削除処理を投げる前に削除確認をする
2. OKならRubyで削除

入力チェックだってJavaScriptとサーバーサイドで二重チェックするだろう
同じ原理でJavaScriptで確認させてサーバサイドでも確認させることになるが、確認を2回やってもしょうがないのでJavaScriptの処理は省く
よって「JavaScriptに処理させない」が答え

---
もし、どうしてもJavaScriptでやりたいのなら初めから削除ボタンを表示させるな
JavaScriptの準備が整ってから削除ボタンを表示させろ、と>721でもかいたはずだが、読んでないのか?

>>723
質問の前提条件がおかしいならフォーマットに沿う答えが出来ない事もある

732 :Name_Not_Found:2014/10/24(金) 14:04:45.99 ID:???
ちょっと遅い昼食を買いに行ってた。

まだあった。hrefやactionをdata-hrefやdata-actionに入れておいて
DOMContentLoaded時に戻すとか。

クローラーにやさしくないというデメリットがある。

733 :705:2014/10/24(金) 14:06:19.17 ID:???
・自分は「JavaScriptに処理させない」な方法を使って対処しています。
・自分は「JavaScriptの準備が整うまでJavaScript用コンテンツを生成しない」な方法を使って対処しています。

読解力がないようなので一応書いておく
穴埋め問題じゃないんだからそれぐらい読み取れと小一時間問い詰めたい

734 :Name_Not_Found:2014/10/24(金) 14:06:32.42 ID:???
>>731
入力チェックの話じゃないって言ったよ?
何回間違えるのさ。

実行確認の話。
他の人はちゃんと「ユーザに親切にするための確認 」って
わかってるのに。

735 :Name_Not_Found:2014/10/24(金) 14:10:07.24 ID:???
>>734
何を削除するわけ?
処理内容が全然明確でないのでもっと具体的にしなよ
ぐだぐだいわずにコードを書け

736 :Name_Not_Found:2014/10/24(金) 14:16:42.88 ID:???
ユーザビリティの話なら>>703で答えが出てるんだがなあ

737 :Name_Not_Found:2014/10/24(金) 14:19:31.38 ID:???
>>733
やっとか。 書いてないものを読み取れとか無茶言うなよw


> ・自分は「JavaScriptに処理させない」な方法を使って対処しています。
ちょっと意味がわからない。

> ・自分は「JavaScriptの準備が整うまでJavaScript用コンテンツを生成しない」な方法を使って対処しています。
この話はレンダリングのブロックの話から派生していて、
それって結局、JavaScriptが動くまでレンダリングがブロックしているのと変わらないね。と思った。

まあ俺が思っただけなので、だからどうってわけでもない。
その回避の方法は先に書いたとおりわかってるので。

JavaScriptが無効なブラウザでもできるだけ使えるようにするにはどうするかとの話もあるんだけど、
もっと長くなりそうだからいいや。

答えてくれてありがとね。

(別に解答締め切りじゃないんで他の人もどうやってるかを書いてくれると嬉しい)

738 :Name_Not_Found:2014/10/24(金) 14:22:33.65 ID:???
>>737
> 書いてないものを読み取れとか無茶言うなよw
>>731の下に書いてあるだろ

> もし、どうしてもJavaScriptでやりたいのなら初めから削除ボタンを表示させるな
> JavaScriptの準備が整ってから削除ボタンを表示させろ、と>721でもかいたはずだが、読んでないのか?

739 :Name_Not_Found:2014/10/24(金) 14:23:23.18 ID:???
>>736
いやいや、質問は「それをあなたはやっているんですか?」だから
答えになってない。

なおその方法はもちろん俺も考えて検討したが
表示されてから、DOMContentLoadedが発生するまでの間
JavaScript無効化環境用のHTMLが表示されるという問題がある。

あ、別にその案を否定しているわけじゃないよ。
その案もあるし、その案のデメリットはこうだと言っただけ。

740 :Name_Not_Found:2014/10/24(金) 14:25:16.28 ID:???
>>738
俺が「書いてない」って言ったのは、

「あなたがどの方法を使っていますか?」という質問の答だよ。

この質問の答なら、俺にどうこうやれ、ではなく
私はどうこうやってます。になるはずなんだけどな。

明らかに俺にやれって言ってるでしょ?

あなたはその方法でやってるんですか?

741 :Name_Not_Found:2014/10/24(金) 14:26:17.96 ID:???
というか、>>703>>733は全く同じ事をいってるんだが
読解力のない奴だな

742 :Name_Not_Found:2014/10/24(金) 14:29:24.39 ID:???
>>741

あなたが、

「忘れ物をしないようにするにはどういう方法を使っていますか?」

という質問に、

メモしろ、リマインダーを使え って言ってくる人だってことは
よくわかりましたよ。

743 :Name_Not_Found:2014/10/24(金) 14:31:05.40 ID:???
偉そうに○○を使えって言ってくる人に限って、
じゃあお前、それ使ってるの?って聞いたら
使ってないっていうんだよなw

744 :705:2014/10/24(金) 14:33:43.00 ID:???
>>740
めんどくさい奴だな
自分がやっていない事を人に薦めるわけないだろう

ましてやそんな歪な奴がいるという仮定するなら「俺は〜やってます」という発言を信じる意味も全くない
方法がわかった段階であなたが自分で判断すればいいだけ
もし、「アンケートで多数決を取って多い方法を自分も選択します」なんて考えを持っているなら、もっと自分で判断する力を養うべきだ
他人の考えに振り回されて自分の考えがおろそかになるのでは本末転倒

745 :Name_Not_Found:2014/10/24(金) 14:35:12.89 ID:???
>>742
それで困るようなら読解力に難がありすぎると思うな
JSの前にもっとたくさん本を読んだり、人と会話したりした方がいい

746 :Name_Not_Found:2014/10/24(金) 14:36:37.87 ID:???
>>744
めんどくさい奴だなはこっちのセリフだw

なんかで俺がアンケートの結果多数決で決めるなんんて
想像してるんだよw

勝手に俺のことをこういうやつだって想像して、
憤慨してるだけじゃないか。

ほんと、面倒くさい。

747 :Name_Not_Found:2014/10/24(金) 14:38:43.72 ID:???
>>745
お前、コミュニケーション能力無いって言われるでしょ?w

勝手に人物像を想像して決め付けて喧嘩を売るとか
まさにそうだから。

748 :Name_Not_Found:2014/10/24(金) 14:45:01.21 ID:???
>>747
喧嘩なんて売ってないよ
読解力がないのは別に恥ずかしいことじゃないよ
誰でも最初からなんでもできるわけじゃないんだから

749 :Name_Not_Found:2014/10/24(金) 14:53:27.58 ID:???
>>746
おまえはここを読まんのか

> 自分がやっていない事を人に薦めるわけないだろう

都合のいいところだけレスするんだな

750 :705:2014/10/24(金) 14:56:01.88 ID:???
>>746
掲示された方法から自分で判断しろ、ということなんだが、趣旨の読めない奴なんだな

751 :Name_Not_Found:2014/10/24(金) 15:01:18.96 ID:???
>>716ってようするにアンケートだよな
まともな質問ならこれほど荒れなかっただろうに

752 :Name_Not_Found:2014/10/24(金) 15:19:19.59 ID:???
誰が何の話をしているのか分かんなので続けるならレス番付けてね
みんながこのスレをずっと監視しているわけではないことを肝に命じてもらいたい

753 :Name_Not_Found:2014/10/24(金) 17:59:34.56 ID:???
jqueryで取得した要素をタブインデックス順に入力チェックを書けたいです。
タブインデックス順に並べるには、どのようにすればいいのでしょうか?

754 :Name_Not_Found:2014/10/24(金) 18:01:08.02 ID:???
地道に

755 :Name_Not_Found:2014/10/24(金) 18:07:49.09 ID:???
sort

756 :Name_Not_Found:2014/10/24(金) 18:32:46.22 ID:???
まじかー
楽に出来る方法ないのか

757 :Name_Not_Found:2014/10/24(金) 18:58:43.59 ID:???
タブインデックスの数字拾ってきてsortするだけじゃん

758 :>>692 = >>716 = 他:2014/10/25(土) 11:50:44.17 ID:???
>>751
はい。アンケートですがなにか問題でも?

>>753
tabindexで並び替えるだけならこれだけだね。

var es = $('[tabindex]').get().sort(function(a, b) {
 return $(a).attr('tabindex') - $(b).attr('tabindex');
});

esはjQueryオブジェクトじゃなくて、要素の配列になってるんで、
またjQueryオブジェクトに戻したければ$(es)すればいい。

ただ tabindexがないがフォーカスを受け取る要素はどうするのか?とか
マイナスの値が入っている場合はどうするかとか(HTML5の仕様でマイナスが入ると少し特殊扱いされる)
細かいことを考慮しないといけない。

タブインデックス順じゃなくてフォーカス順だとするならば少し厄介かも。

759 :Name_Not_Found:2014/10/25(土) 13:57:44.46 ID:???
> まず煽る。適当なことを言って馬鹿にする。
> そうすると相手がムキになって、正しいことを言ってくる。
> それをみて知識を吸収するのだ。
http://peace.2ch.net/test/read.cgi/hp/1408512894/41n

こういう人もいるから質問者の性格を見てから回答するか決めたほうがいいな
何度も同じ事をいわせる発言をしたらその傾向がある(でなければ、理解力の低い人だ)

760 :Name_Not_Found:2014/10/25(土) 17:43:34.28 ID:???
回答も含めてずっと常駐してる自演荒らし

761 :Name_Not_Found:2014/10/25(土) 19:53:01.93 ID:cZ8lICkm
canvasやxmlHttpRequest以外で画像のRGBを取得できる方法って無いですか

762 :Name_Not_Found:2014/10/25(土) 19:59:45.16 ID:cZ8lICkm
webAudioAPIはhtml5側かjavascript側かどっちでしょうか?
w3cが規定してるからhtml5側ですかね

763 :Name_Not_Found:2014/10/25(土) 21:49:34.86 ID:???
Internet Explorer11・Chrome38.0.2125.104 m・Firefox33.0.1で見ていて
html・body・iframeのstyleでheight:100%とすると
画像のようになぜかiframeのサイズが画面をはみ出してスクロールバーが出てしまうのですが、
なぜでしょうか?
ttp://fast-uploader.com/file/6969796778599/
(ページの内容は一般公開する予定でないので隠しました。)
また、下を見てみるといくらか余っているように見えます。
ttp://fast-uploader.com/file/6969796905204/
そこで下側のmarginを0pxにしてみたりしたのですが、それでも変化はなさそうでした。
ttp://fast-uploader.com/file/6969796938495/
上の画像はIE11の開発者ツールでhtml部分を色付けしてもらったものなのですが、
(濃い部分は自分で隠したページの内容部分です。)
見てみるとページのサイズよりhtmlのサイズがiframeのサイズよりも小さく見えます。
一体この余白は何なのでしょうか?

764 :Name_Not_Found:2014/10/25(土) 21:58:39.17 ID:???
>>763
コードを出した上でJavaScriptの質問をして下さい

765 :Name_Not_Found:2014/10/25(土) 22:08:25.28 ID:???
>>761
xmlHttpRequestでどうやって取得するのかおしえてください

766 :Name_Not_Found:2014/10/25(土) 22:09:02.25 ID:???
>>762
ECMAの使用にないならhtml5側じゃないですか

767 :Name_Not_Found:2014/10/25(土) 22:09:13.14 ID:D2vCSZDb
教えてください。
ie8以前をサポートするjQuery 1.xを使うなら、
2014年10月で最新のものjquery-1.11.1.min.js
を使っとけばいいのでしょうか?

768 :Name_Not_Found:2014/10/25(土) 22:09:58.91 ID:???
>>763
あなたのコードなんて何万人が書いてます
著作権を守りたいという愚かな心を捨ててどこかにソースコードを載せてください

769 :Name_Not_Found:2014/10/25(土) 22:53:36.12 ID:???
>>763
iframe{ box-sizing: border-box; } か iframe{ border: none; } を指定してあげればおけ
場合によっては body{ margin: 0; } も必要

770 :Name_Not_Found:2014/10/25(土) 23:06:46.03 ID:???
>>765
xmlHttpRequest で画像のバイナリデータ取得する
→データを頑張って処理して画像を再現する
→RGB を取得する
じゃね?w

771 :Name_Not_Found:2014/10/25(土) 23:21:36.29 ID:???
あ。
別のJavaScriptの質問をしようかと思いつつやっぱり>>763のことのほうが聞きたいと思いつつ
スレを変えることなく書いてしまいましてすいません。

ソースを載せることに抵抗はないですが、
ページの内容はやはりちょっとさらせるものではないので変えてます。
すいません。
(決して著作権がとか文章が恥ずかしいとかという理由ではないです。)
ttp://fast-uploader.com/file/6969802456283/
ソースを上げたついでに最初に聞こうと思ってやめた質問も書いてみます。
このページをChromeで見ると
<body onload="window.parent.resize(document.body.scrollHeight)">
の部分で
Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.
と言われてしまい、本来やりたかったjsによるiframeのサイズをiframe内のbodyのサイズによって変えると言ったことができません。
調べてみるとiframe内外でクロスドメインになっているのが原因だとか見たのですが、
現在はローカルで確認していてiframeのページもiframe内のページも同じフォルダにあるのでクロスドメインではない(はず)です。
残念ながら本番の環境に接続できないので確認できない状況なのですが、
ローカルでなくサーバー上にアップロードされたものでならこのエラーは起こらないでしょうか?

772 :Name_Not_Found:2014/10/25(土) 23:26:48.56 ID:???
>>771
「chrome iframe ローカル」でぐぐれ

773 :Name_Not_Found:2014/10/25(土) 23:32:11.05 ID:???
canvas使ってぷよぷよみたいなゲームを作ろうと思うんだが、
描写した図の履歴って残るんだな

ゲームを長時間続けたら重くなってしまうかな?

774 :Name_Not_Found:2014/10/25(土) 23:33:47.70 ID:???
>>770
> →データを頑張って処理して画像を再現する
ここがさっぱりわからない

775 :Name_Not_Found:2014/10/25(土) 23:37:37.99 ID:???
>>772
そういった言葉で調べるの忘れてました。
Chromeだとローカルは別ドメイン扱いなんですね。
覚えておきます。

あと、>>771のjsのソース間違えてました。
すいません。
ttp://fast-uploader.com/file/6969803090142/

776 :Name_Not_Found:2014/10/25(土) 23:40:12.58 ID:???
>>774
JPEG なり GIF なりの仕様通りにバイナリデータを解釈するんだよ
GIF なら「GIF89a」でヘッダが始まって、横と縦の長さが続いて…、みたいに
まー JavaScript でするような処理じゃないけど、理論上は可能w

777 :Name_Not_Found:2014/10/25(土) 23:48:38.45 ID:???
あ、ある1*1ピクセルにどの色をあてますかというだけで
履歴が残るとかそういうわけではないんだ

778 :Name_Not_Found:2014/10/26(日) 00:09:00.89 ID:???
>>776
それってバイナリを解読できればよくて再現する必要ないんじゃない?
再現とかいうからbase64エンコードしてimg要素に埋め込むのかと思った

779 :Name_Not_Found:2014/10/26(日) 00:18:51.28 ID:r63fanyN
>>776
でもcanvasのgetImageDataはそれやってるんでしょ?

780 :Name_Not_Found:2014/10/26(日) 00:20:21.73 ID:???
>>769
なんか上側のマージンのせいでスクロールバー出ちゃってるみたいでした。
下が変に余って見えるからその部分のことしか考えてませんでした。

そこで、100%から上下マージンの10px分減らすためにcalcを使おうと思ったのですが、
ChromeとFirefoxではうまくいったものの、
IEではiframeのサイズがtopのbodyのサイズにされたかと思いましたが、
topのbodyにほんの少しスクロールできるバーが表示されていました。
IEは9からcalc対応していると見たのですが。
IEでのcalcの件はもう少し自分で調べてみてもしわからなければcss系のとこで聞き直します。

いろいろありがとうございました。

781 :Name_Not_Found:2014/10/26(日) 00:20:57.08 ID:r63fanyN
>>773
俺作ったことありますけど
グラデーション使うと重いですけど
普通のcanvasなら20msくらいならラグはないですよ

782 :Name_Not_Found:2014/10/26(日) 00:24:58.25 ID:nxLcTFDw
>>779
getImageDataはnative codeでしょ?

783 :Name_Not_Found:2014/10/26(日) 06:59:38.93 ID:???
>>778
まさにその通り。言い方が悪かったかな
これはあくまで俺の考えであって、>>761がどう考えて「xmlHttpRequestでRGBが取得できる」と言ったかは知らんけど

784 :Name_Not_Found:2014/10/26(日) 07:39:24.86 ID:???
>>783
なるほど
理解した、何度もありがとう

785 :Name_Not_Found:2014/10/26(日) 11:37:39.84 ID:T0GBznwt
ログイン画面の認証画面の作成なんですけどif文のやり方が分かりません。

<%
String strval1;
strval1=request.getParameter("kazu1");
out.print("kazu1");
if(strval1.equals(" ")){
if(strval1.equals("YES")){
}else{
if(strval1==null){
out.print("未記入");
}else
if(strval1.equals(" ")){
out.print("未記入");
}else
out.print(strval1);
}
%>

786 :Name_Not_Found:2014/10/26(日) 11:41:15.59 ID:???
>>785
JavaScriptじゃないから消えろ

787 :Name_Not_Found:2014/10/26(日) 12:23:37.85 ID:r63fanyN
これってJSP?

788 :Name_Not_Found:2014/10/26(日) 19:11:02.05 ID:???
シューティングゲームを作ってます
画像をmousemoveで移動できるようにしているんですけど
マウスを高速に動かすと障害物にぶつかっても障害物を通り越しちゃいます。
障害物を通り越さないための対策ってありませんか?

789 :Name_Not_Found:2014/10/26(日) 19:21:02.45 ID:???
>>788
障害物の実装法が開示されてないのにどうやって答えろと?
座標を確認するなりevent.targetで障害物を判定するなり方法はあるだろう

790 :Name_Not_Found:2014/10/26(日) 20:05:07.32 ID:???
>>788
・当たり判定を移動先の点でするのではなく、移動中に辿った線で行う(面倒)
・最大移動距離が自機サイズを越えないよう制限を掛ける(簡単)

791 :Name_Not_Found:2014/10/26(日) 23:11:39.81 ID:???
ChromeやFirefoxでクリップボードに文字列をコピーする方法を探しています。
とりあえずChromeの方法を調べてみたのですが、外部ライブラリを用いて行う方法は見つかりました。
条件として外部ライブラリは使えないので、その方法は実行できません。
1つ以下のサイトでJavaScriptのみでやっているっぽい方法を見つけたのですが、
残念ながら$が解決できませんでした。
[JavaScript] テキストをクリップボードにコピーする tande lab.
ttp://tande.jp/lab/2012/09/1889

そもそも何のためにクリップボードに文字列をコピーしたいのかと言うと、
今作っているサイトに載せているコードを簡単にコピーできたらいいだろうと思ったからです。
IEでは
window.clipboardData.setData("文字列");
で簡単に文字列がコピーできたのですが、残念ながらclipboardDataはIEにしかないようなので。
もし外部ライブラリがないとできなかったり自作するのが面倒なものであれば、
IE以外でのクリップボードへのコピーはあきらめます。
(実はこの作品の提出期限が明日に迫っているもので。)

792 :Name_Not_Found:2014/10/26(日) 23:16:16.01 ID:???
>>789
座標以外で実装する方法ありますか?
>>790
簡単な方だとマウス移動がぎこちなくなるので面倒なやりかたでがんばってみます

793 :Name_Not_Found:2014/10/26(日) 23:39:12.49 ID:???
>>791
無理です
ちょっと前までそのURLの方法が使えましたが、対策されていつの間にか使えなくなりました(ちなみに$はjQueryなのでこれとは無関係)
現時点でIE以外で任意の文字列をコピーさせたいなら、Flash経由でするか、カットやコピーのイベントを利用するしかないと思います

794 :Name_Not_Found:2014/10/26(日) 23:57:46.81 ID:???
>>792
> 座標以外で実装する方法ありますか?
障害物も要素ならevent.targetで判定可能

795 :Name_Not_Found:2014/10/27(月) 00:03:56.81 ID:???
e.targetで判定はできないと思います
なぜならマウスの軌跡がその要素上を通る保証がないからです

796 :Name_Not_Found:2014/10/27(月) 01:04:48.95 ID:???
>>795
マウスに自機が追従するならマウスが自機よりも早くに障害物に衝突しなければならない

797 :Name_Not_Found:2014/10/27(月) 01:05:26.56 ID:???
それはとても速いネズミだな。

798 :Name_Not_Found:2014/10/27(月) 01:15:14.76 ID:???
>>796
そりゃそうですよマウスを動かさないとmousemoveイベントが動かないですから。。。

マウスの感度を考えるとe.targetは使えないです

799 :Name_Not_Found:2014/10/27(月) 01:38:34.56 ID:???
>>793
セキュリティーの観点とかもあるんでしょうけど、やっぱりJavaScriptだけでは無理なんですね。
$はなんとなくそうじゃないかなと思ってましたが、書いてないので違うのかな?思っていたのですがやっぱりそうなんですね。
IE以外はあきらめて手動コピーしてもらうよう促すことにします。
ありがとうございました。

800 :Name_Not_Found:2014/10/27(月) 01:41:25.67 ID:???
Flashとか使えば出来るのに
出来ないを選択するのって馬鹿だよなぁw

801 :Name_Not_Found:2014/10/27(月) 01:52:29.76 ID:???
>>791
でたらめなこと書くな

>>799
クリップボードはライブラリを使わなくてもAPIだけでできる
古いのがヒットするのはググりかたがわるいだけ

802 :Name_Not_Found:2014/10/27(月) 02:42:15.32 ID:???
var aaa = "aiueo";
console.log(aaa.length);
このときaaaはstringオブジェクトが作られているらしいのですが
そのインスタンスがされるときはいつの時点ですか?”aiueo”が代入されるときですか?
ちょっとインスタンスがされるって日本語おかしい気がしますが気にしないでください

803 :Name_Not_Found:2014/10/27(月) 06:14:44.85 ID:???
>>791
そのページに書かれているのはchromeの拡張機能についてだよ

804 :Name_Not_Found:2014/10/27(月) 06:51:51.62 ID:???
こうやってみると、IEでは古くから実現されたものが
まだ標準化されてないのって
まだ結構残ってるんだな。

805 :Name_Not_Found:2014/10/27(月) 08:43:11.67 ID:???
>>802
インスタンスが生成されるのは、プロパティにアクセスするときです
var aaa = "aiueo"; // ←まだインスタンスは生成しない
console.log(aaa.length); // ←ここでインスタンスを生成して、length プロパティにアクセスする

ただ、上記の説明の表現は大雑把です
もうちょっと正確に言うと、console.log() が実行される処理中の最初の方にインスタンスが生成されます
詳細を知りたければ、ECMA-262 5th edition の 11.2.3 Function Calls、11.2.4 Argument Lists、8.7.1 GetValue を参照されたし

806 :Name_Not_Found:2014/10/27(月) 09:36:47.76 ID:???
>>802
>「インスタンスがされる」
「インスタンス化される」でok

>>805
実質的に
var aaa = "aiueo";
の時点でインスタンス化されると考えても矛盾は起きないんではないか?

仕様がそうなってんならそうかもしれないが
単に無駄に複雑な書き方にしてるだけな気もする

807 :802:2014/10/27(月) 09:46:08.57 ID:???
ありがとうです

808 :Name_Not_Found:2014/10/27(月) 09:57:23.72 ID:???
>>806
おっしゃる通りです
プロパティアクセスで生成されるオブジェクトは外からアクセスできないから、>>806のように考えても矛盾はない
8.7.1 GetValue の NOTE にも、「実装ではオブジェクトを実際に作らなくてもいい」ってはっきり書いてある

ブラウザ(FF32)で以下のコードを実行しても大差がないことから、
実際には var aaa = "aiueo"; の時点でインスタンスが用意されている(あるいはそのように見せかけている)可能性が高い
// プリミティブ値にプロパティアクセス
function primitive(){
var aaa = "プリミティブ値", i;
console.time("プリミティブ値");
for(i=0;i<1e9;i++) aaa.length;
console.timeEnd("プリミティブ値");
}
// ラッパーオブジェクトにプロパティアクセス
function wrapper(){
var aaa = new String("ラッパーオブジェクト"), i;
console.time("ラッパーオブジェクト");
for(i=0;i<1e9;i++) aaa.length;
console.timeEnd("ラッパーオブジェクト");
}
primitive();wrapper();primitive();wrapper();

809 :Name_Not_Found:2014/10/27(月) 10:45:06.36 ID:???
>>806
> 実質的に var aaa = "aiueo"; の時点でインスタンス化されると考えても矛盾は起きないんではないか?
その仮定が正しいとしたら "aiueo" instanceof String === true でなければおかしい
見かけ上は仕様に準拠しているけど、実際には独自拡張している実装は好ましくないと思うなあ
過去に /hoge/() できる実装で typeof /hoge/ === 'object' を返す実装があったけど、あれも好ましくないと思ってた

810 :Name_Not_Found:2014/10/27(月) 11:55:38.24 ID:???
>>790
> ・当たり判定を移動先の点でするのではなく、移動中に辿った線で行う(面倒)
正確には幅のある線だな
自機のコリジョンを円でやってたらカプセルになって矩形だったら6角形になる

811 :Name_Not_Found:2014/10/27(月) 12:40:25.28 ID:???
>>792
ゲームって普通はcanvasでしょ
DOM多用する方法って珍しいな

812 :Name_Not_Found:2014/10/27(月) 12:41:03.92 ID:???
安価ミスったー
>>789

813 :Name_Not_Found:2014/10/27(月) 12:51:11.87 ID:???
>>811-812
ゲームは専門外なものでその辺は知らない
「マウスを高速に動かすと障害物にぶつかっても障害物を通り越しちゃいます」の原因や再現条件に触れられてないし、「現象を再現可能なサンプルコードぐらい書け」といいたいところなんだが、>>792では見事にスルーされたからもう知らん、というのが正直な気持ちだ
「画像をmousemoveで移動できるように」だけでcanvas前提として認識するものなのか
プログラマ的には再現性に気をつかって質問するのが普通だと思ってた

814 :Name_Not_Found:2014/10/27(月) 13:07:00.45 ID:???
マウスのDPIの知識が無くてゲームも知らない奴が答えるなよw
まあゲ製板でやれって話だけど

815 :Name_Not_Found:2014/10/27(月) 13:08:37.57 ID:???
誰かが先に答え書いてるからいいけど>>813の知識不足で質問者を振り回すのはやめとけ

816 :Name_Not_Found:2014/10/27(月) 13:13:26.07 ID:???
交差判定の仕事だね

817 :Name_Not_Found:2014/10/27(月) 13:21:42.07 ID:???
まあ、質問の仕方も悪いけどな

818 :Name_Not_Found:2014/10/27(月) 13:35:15.79 ID:???
>>809
しかし 代入の = "aiueo" と単独の "aiueo" は違うんでないか?

というか「インスタンスが生成される」の定義が
instanceof 演算子に基づくとするならば

new String() でラップしていない文字列が代入された変数は
instanceof String が false になるので
プロパティにアクセスしようがしまいが
「インスタンスは生成されない」ことになるような

819 :Name_Not_Found:2014/10/27(月) 13:35:25.60 ID:???
>>801はどんなブラウザ使ってるの?

820 :Name_Not_Found:2014/10/27(月) 13:49:03.56 ID:???
どんなブラウザを使っているかって質問は変だよね
いろんなブラウザで動作確認するのはデフォなんだし

821 :Name_Not_Found:2014/10/27(月) 14:00:43.11 ID:???
デフォ?視野がせまいな

822 :Name_Not_Found:2014/10/27(月) 14:06:45.91 ID:???
>>818
「インスタンスが生成される」の定義は>>805が示した ES5 に倣っていると思っていたのだが…
プロパティ参照するにはObject型である必要があるから、プロパティアクセス演算子も内部的にはObject型に変換している(>805の説明もそれ)
http://es5.github.io/#x11.2.1
Object型に変換したタイミングならtypeof演算子は "object" を返すし、instanceof演算子もtrueを返すことが出来るが、内部処理なのでそのタイミングで該当演算子を使うことは出来ない
ようするに内部的にプリミティブラッパーオブジェクトに変換してるんだよ
ただし、ES5 仕様上は new String("aiueo") と "aiueo" は区別されているので両者を同一とみなすのはおかしい

823 :Name_Not_Found:2014/10/27(月) 14:35:58.49 ID:???
>>821
「デフォ?」の視野が狭いってなんだよw

言うならば「いろんなブラウザで動作確認」することが
視野が狭いと言うべきだろ?

で、特定のブラウザで動作確認するより
いろんなブラウザで動作確認するほうが視野が広いと思うが?

824 :Name_Not_Found:2014/10/27(月) 15:09:13.67 ID:???
>>823
横からだが、初めから論点がずれてるんじゃないか
ブラウザの動作確認を問うなら質問者に回答を求めるべきだろう
質問者が期待するブラウザで動作するなら>>801の使用ブラウザなどどうでもいい(>791でChromeやFirefoxとあるが、バージョンは不明)
>>801に対象ブラウザを問うならせめて「**** API の動作対象ブラウザは〜で広く使われている〜では動かなかったのですが」とかそこまで踏み込むべき

>>801の具体的なAPI名に触れてないのも問題だけどな
おそらく、Clipboard API の事なんだろうが
http://www.w3.org/TR/clipboard-apis/
http://caniuse.com/#feat=clipboard

825 :Name_Not_Found:2014/10/27(月) 15:14:31.83 ID:???
>>823
特定の環境下ではそうはならない
想像力がないね

826 :Name_Not_Found:2014/10/27(月) 15:16:06.86 ID:???
>>825
具体的に言えよ。
なんだその何にでも使えますみたいな
テンプレはw

827 :Name_Not_Found:2014/10/27(月) 15:19:58.84 ID:???
Aで事足りるのに、BもCも押し付けられたら迷惑だろ
しかも的外れw

828 :Name_Not_Found:2014/10/27(月) 16:41:34.55 ID:???
Clipboard APIはみんなが想像するものと違ったような

829 :Name_Not_Found:2014/10/27(月) 18:54:52.00 ID:???
>>828
あんま自信ないけど、クリップボードイベントからクリップボード操作するAPIに読めた
任意のタイミングでクリップボードをコピー、貼り付けする方法はわからなかった
>801が何のAPIを指していたのか、ちょっと気になるなー

830 :Name_Not_Found:2014/10/28(火) 08:30:56.12 ID:???
weblockというiphoneアプリがありまして
webプロキシに繋いで広告をフィルタするものなのですが
そのurl末尾の拡張子がjsなのです
webプロキシってjavascriptで実現できるものなのですか?

831 :Name_Not_Found:2014/10/28(火) 09:40:12.17 ID:???
window.a=1;

a=1;
って同じですか?

832 :Name_Not_Found:2014/10/28(火) 09:58:28.37 ID:???
>>829
任意のタイミングはFlashでやれって答え書いてあるじゃん

833 :Name_Not_Found:2014/10/28(火) 10:01:18.25 ID:???
>>831
window.a = 1;
console.log(window.a === a);

834 :Name_Not_Found:2014/10/28(火) 10:18:35.27 ID:???
>>831
場合による
関数の中で実行したら違う

835 :Name_Not_Found:2014/10/28(火) 13:20:45.48 ID:???
>>832
どこに?

836 :Name_Not_Found:2014/10/28(火) 13:22:39.16 ID:???
>>831
Strict Modeではなく、グローバルコードなら同じ

837 :Name_Not_Found:2014/10/28(火) 13:23:11.11 ID:???
>>793に書いてあるよ

838 :Name_Not_Found:2014/10/28(火) 13:31:09.55 ID:???
質問した人間が情報を出さないかどういうタイミングでクリップボードにコピーしたかわからないから回答者があこれもこれも騒ぐ必要はなくね

839 :Name_Not_Found:2014/10/28(火) 13:47:27.55 ID:???
>>837
いや、知りたいのは>801のいう「APIだけ」で実現できる方法だったんだけど、わかりにくかった?
本当にそんな方法があるなら是非教えて欲しいね
>799で「諦めて手動コピーしてもらう」と書いてあるし、ユーザにコピーしてもらわないと発動しないClipboad APIを紹介しても仕方ない気がするんだけど

840 :Name_Not_Found:2014/10/28(火) 13:54:36.27 ID:???
仕方なくはないと言われてもそれは実装次第では

841 :Name_Not_Found:2014/10/28(火) 13:56:14.71 ID:???
クリップボードにセットするデータを入れ替えるだけで何が問題があるのか

842 :Name_Not_Found:2014/10/28(火) 14:06:11.69 ID:???
>>817
じゃあe.tartgetでどう判定するの?

843 :Name_Not_Found:2014/10/28(火) 14:13:36.33 ID:???
caniuseみてみたが、Clipbord APIって
IEとFirefoxが完全サポートで
あとは不完全サポートじゃないか。
動かないと言われてもしょうがない。

844 :Name_Not_Found:2014/10/28(火) 14:18:08.83 ID:???
クリップボードを使うと言ったら、
普通、ボタンをクリックしたら
クリップボードにリンクが格納される。
みたいなことをしたいのが大半だと思われる。

だがChrome、Safariの「部分的サポート」では
その重要な機能が使えない。

845 :Name_Not_Found:2014/10/28(火) 18:47:20.18 ID:???
解答者の質の低下が目立つな
ちゃんとした質問以外は無視しろよ

846 :Name_Not_Found:2014/10/28(火) 18:49:24.39 ID:???
曖昧な質問やどうでもいいくだらない質問に答える必要はない
低脳質問者が調子に乗るだけ

847 :Name_Not_Found:2014/10/28(火) 18:53:43.13 ID:???
>>842
何で関係ない話を持ってくるんだろうな

848 :Name_Not_Found:2014/10/28(火) 19:09:52.34 ID:???
>>846
低能回答者乙

849 :Name_Not_Found:2014/10/28(火) 19:18:22.54 ID:???
確かに曖昧な質問が増えた
曖昧な質問を曖昧じゃなくするために質問すると「なぜ質問に質問を返すんですか」と逆ギレされるケースもしばしば見られる
無用なトラブルを避けるためにスルーする対策も一理あるといえる
回答するなら冷静さを失わないで欲しいものだが、感情的な発言があまりにも多い

850 :Name_Not_Found:2014/10/28(火) 19:43:37.45 ID:???
うるせーよ
しょうもない書き込みすんな

851 :Name_Not_Found:2014/10/28(火) 19:48:04.21 ID:???
>>789
要素をmousemoveでもmouseoverでもくっつけてマウスをおもいっきり振ってみなよ

852 :Name_Not_Found:2014/10/29(水) 09:07:36.15 ID:???
曖昧な質問やどうでもいいくだらない質問に答える必要はない
答えない代わりに煽ってやればいい。
そうすることでこのスレは健全化される。

853 :Name_Not_Found:2014/10/29(水) 10:26:24.81 ID:???
うるせーよゴミ

854 :Name_Not_Found:2014/10/29(水) 11:57:41.15 ID:???
よっぽど無知をさらけ出した回答をして顔真っ赤になったんだな

855 :Name_Not_Found:2014/10/29(水) 12:41:00.53 ID:???
今の流れはいつもの荒らしの自演
もう随分前からずっとこんな感じで一般の質問者がいるのかどうか疑問

856 :Name_Not_Found:2014/10/29(水) 13:29:20.79 ID:???
明らかに少人数で質問を回してる
1人でないとしても2〜3人というところか
まともな人は見切りをつけて去ったか、ROMになって経過観察しているか

857 :Name_Not_Found:2014/10/29(水) 13:41:49.47 ID:???
その少人数っていうのも本当の質問じゃなくて
答えはわかっているのにネタ振りとして質問してるだけだしな。

858 :Name_Not_Found:2014/10/29(水) 14:18:17.89 ID:???
わかりずらい質問は確かにあるけど
昔からこんな感じじゃね?

放置すればいいんじゃないかな
本当に知りたかったらちゃんと書き直すだろうし

859 :Name_Not_Found:2014/10/29(水) 14:43:05.58 ID:???
W3Cが宣言: HTML5の標準規格は最終的に確定した
http://jp.techcrunch.com/2014/10/29/20141028w3c-declares-html5-standard-done/?utm_source=dlvr.it&utm_medium=twitter

JSはどうなりますか?

860 :Name_Not_Found:2014/10/29(水) 15:00:00.11 ID:???
うお、まじだ
いつの間にか Recommendation になってる

861 :Name_Not_Found:2014/10/29(水) 16:47:43.70 ID:???
>>813
別にcanvasじゃなくてもdomでもe.targetで正確な衝突の判定なんてできないよ

862 :Name_Not_Found:2014/10/29(水) 19:29:46.61 ID:???
一般の質問者は相当待たないと来そうにないな…

863 :Name_Not_Found:2014/10/29(水) 20:10:39.94 ID:???
最近知識不足で無理に答えようとして火傷する回答者ばっかりだなw

864 :Name_Not_Found:2014/10/29(水) 20:11:53.48 ID:???
>>861
できないとは思わんが、なぜできないと思うの?

865 :Name_Not_Found:2014/10/29(水) 20:13:55.60 ID:???
たしかにライブラリスレと別れてから少なくなった気がするな
俺は週1から月1で質問するが

866 :Name_Not_Found:2014/10/29(水) 21:57:08.75 ID:???
>>864
マウスっていうのは1ドットずつ読み取っているわけじゃないけどそれは分かるのかな?
例えばwidth:1px, height:300pxでmouseoverイベントでも付けた要素があるとして左から右にその要素を通るようにマウスを早く動かしてもマウスが要素のある位置を読み取っているとは限らないよね
それが分かった上で出来るっていうなら出来るって断言できる証拠を出してから反論してみなよ

867 :Name_Not_Found:2014/10/29(水) 22:25:23.00 ID:???
要素からスクリーン座標とれば始点と終点なんて割り出せるんだから線分の交差判定でも矩形と線分の交差判定デモすればええやん

868 :Name_Not_Found:2014/10/29(水) 22:54:29.37 ID:???
>>864
カーソルが要素の上に乗らなかった場合はどう対応するの?

869 :Name_Not_Found:2014/10/29(水) 23:06:25.32 ID:???
>>867


870 :Name_Not_Found:2014/10/29(水) 23:45:52.26 ID:???
>>865
だからライブラリと分ける必要なかったんだよ。
どうせ言語を使う≒ライブラリを使うなんだからさ。

他の言語を見ても、言語の話をしていても
ライブラリを使って簡単に書けるって話になるわけで。

871 :Name_Not_Found:2014/10/30(木) 08:11:00.91 ID:???
jQueryとJavaScriptが別物だっていう変な風潮はあるよな
そもそも並列で比較するものじゃないし、どうしたものか

872 :Name_Not_Found:2014/10/30(木) 08:17:47.91 ID:???
lodash信者がここで布教活動を始めた頃から質問者の質が大きく低下した
あまりにも質問が多いのでライブラリスレと棲み分けようと提案されるも布教活動上の理由でかここに居座る始末
たいした理由なしにライブラリを勧める人がいたら大体それだな

873 :Name_Not_Found:2014/10/30(木) 11:58:05.70 ID:???
どっちかっていうと初心者か上級者で分けた方がいいと思ったが初心者の方が過疎りそうだ

874 :Name_Not_Found:2014/10/30(木) 12:29:24.35 ID:???
いや、ライブラリスレはjQueryの時代にできた。

875 :Name_Not_Found:2014/10/30(木) 13:31:35.16 ID:???
>>874
確かに
あの頃はライブラリスレは不要の意見もそれなりにいたな
lodash信者が出てからはそれ程でもないが(荒らしは除く)

876 :Name_Not_Found:2014/10/30(木) 16:30:16.48 ID:???
>>872
真逆だろ
質問スレ特有のクソ回答者(相対的に弱い立場におかれる質問者に偉そうにしたいだけのゴミ)
をlodash啓蒙者達が駆逐してくれた
むしろ感謝すべき

877 :Name_Not_Found:2014/10/30(木) 19:19:30.58 ID:???
>>868
イベントならバブリングするんだからbodyでとれば?

878 :Name_Not_Found:2014/10/30(木) 19:29:01.46 ID:???
いやいやいやいや
それじゃあ目的の要素との判定ができないでしょ
本末転倒

879 :Name_Not_Found:2014/10/30(木) 19:40:47.15 ID:???
eventにtargetあるんだから判別できるだろ。

880 :Name_Not_Found:2014/10/30(木) 19:52:47.25 ID:???
何回同じこと言わせるんだ…
判別できない理由が>>795>>851>>866に書いてあるだろ
まだ分かんないならサンプルコードをくれてから自分で試してみろ
<body onmousemove="console.log(event.target.tagName)">
<div style="position:absolute;left:300px;top:0;;width:20px;height:100%;background:red"></div>
</body>

881 :Name_Not_Found:2014/10/30(木) 19:58:54.72 ID:???
頭悪いのね。。。
イベント内で対象となる要素の座標系を変換してやればいいだけなんだから、別にイベントのtargetを特定してやる必要なんてねーだろ?

882 :Name_Not_Found:2014/10/30(木) 20:07:18.45 ID:???
こういう非生産的な煽りに付き合う事は無意味
いちいち煽りに付き合って自分の格を落とす必要はない

883 :Name_Not_Found:2014/10/30(木) 21:09:21.38 ID:???
そういうセリフが格を落としてるんだろ・・・

884 :Name_Not_Found:2014/10/30(木) 22:08:54.49 ID:???
>>866
マウスドライバーを作ってた頃思い出した。
ハードウェア割り込みをフックして、移動オフセット値を取得する。

まぁ、単純に考えれば、
前回と今回の取得座標を直線で結んでその線に交わるなら、
衝突と判定すればいい。

885 :Name_Not_Found:2014/10/30(木) 23:57:20.61 ID:???
こんなバカが>>789で粋がってると思うとこのスレもオワコンだな

886 :Name_Not_Found:2014/10/31(金) 00:01:35.83 ID:???
>>885
そいつは別に間違った子といってなくね?

887 :Name_Not_Found:2014/10/31(金) 00:38:47.71 ID:???
function init_main(){
var obj=new Object; obj.a=1;
var tid = setTimeout(function(){animation(obj);},1000);
clearTimeout(tid);}
function animation(obj){window.alert(obj.a);}

オブジェクトを引数とする関数をsetTimeoutする方法はありますか?

888 :Name_Not_Found:2014/10/31(金) 00:53:46.81 ID:???
clearTimeoutの場所

889 :887:2014/10/31(金) 00:55:16.72 ID:???
すまん
var tid = setTimeout(function(){animation(obj);},1000);
clearTimeout(tid);
ではなく
setTimeout(function(){animation(obj);},1000);ならできた
もう少しsetTimeoutの勉強しなおします

890 :887:2014/10/31(金) 00:59:16.22 ID:???
ちょっとレスを見る前に書き込んでしまいました

>>888
全くのその通りでした
ありがとうございます

891 :Name_Not_Found:2014/10/31(金) 19:35:24.22 ID:Cw7xnEcM
俺昔setTimeoutって
第一引数はカッコいらなかった気がするんだけど俺の気のせい?

892 :Name_Not_Found:2014/11/01(土) 00:13:52.18 ID:5rdl/O4T
新感覚SNSサイトのお知らせ

リアル友達と限定的なコミニュケーション
登録ユーザーでの自由なコミニュケーション
匿名で自由なコミニュケーション

自由な設定で独自のコミニュケーションが設定できる新感覚のSNSサイトです。

だれでも無料で楽しめます。

http://fluid.twolineprj.com/

893 :Name_Not_Found:2014/11/01(土) 01:01:04.47 ID:???
25歳。
去年まで金無し君だったけど、dotinstallとcodeacademyで
二年でJavaScriptが好きになった。一度やってみなよ。
初回のみだけど、ユーザー登録しちゃえば更に良い機能が使える。
登録だけして勉強に飽きたらブラゲーすればいいし、 時間があれば
思い切って勉強しまえば知識が増える。
飽きたらなきゃオンラインでゲームすればいいだけ。暇つぶしになる。
PHPとかCSSとか色々あるのでマジでお勧め。

894 :Name_Not_Found:2014/11/01(土) 17:01:15.46 ID:???
こんなとこで宣伝しても意味ないだろ

895 :Name_Not_Found:2014/11/01(土) 17:34:58.60 ID:???
>>891
どういう意味?
今も昔もカッコは特に必要ないと思うけど

896 :Name_Not_Found:2014/11/01(土) 18:32:28.29 ID:???
typeofで表示するのってfunction、array, number, string,bool,undefinedだけですか?

897 :Name_Not_Found:2014/11/01(土) 19:11:44.51 ID:???
>>896
違う
このスレの過去ログで散々語られたから読み返しておいで
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-typeof-operator

898 :Name_Not_Found:2014/11/01(土) 19:28:24.64 ID:???
typeofで表示するのってfunction、number, string,boolean,undefined,object,symbolだけですか?

899 :Name_Not_Found:2014/11/01(土) 19:32:29.19 ID:???
>>897
読んできます

900 :Name_Not_Found:2014/11/01(土) 19:32:31.73 ID:???
>>898
違う
君の目には "Object (non-standard exotic and does not implement [[Call]])" は写らないのか
それ以外の全ての文字が存在しうる

901 :Name_Not_Found:2014/11/01(土) 19:38:03.82 ID:???
(原文)
Implementation-defined. Must not be "undefined", "boolean", "function", "number", "symbol", or "string".

(和訳)
処理系定義。"undefined", "boolean", "function", "number", "symbol", "string" であってはならない。
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-typeof-operator

902 :Name_Not_Found:2014/11/01(土) 19:56:44.29 ID:???
一応書きますが>>898さんとは別人です

903 :Name_Not_Found:2014/11/01(土) 20:40:13.48 ID:???
たとえばtypeofでobjectと返って来たものは
objectとして扱うべきですが、
object以外の任意の文字が返って来た時、
objectとして扱うべきなのでしょうか?

これは例えばなので、functionであったとしても同じです。
functionと返ってこないものを
functionとして扱っていいのでしょうか?

904 :Name_Not_Found:2014/11/01(土) 21:06:50.38 ID:???
>>903
あなたのいう「objectとして」や「functionとして」がどのような意味で使っているのか、が分からないと返答しようがないのだが…

> object以外の任意の文字が返って来た時、objectとして扱うべきなのでしょうか?
「Object 型として扱うべき」という意味であれば "function" であっても "hoge" (>>901の事) であっても Object 型として扱うべき

> functionと返ってこないものをfunctionとして扱っていいのでしょうか?
ES6 には Function 型は存在しないし、あなたのいう function が何かを明示して欲しい
ES6 では [[Call]] を持つなら "function" を返さなければならない
ES3 なら "Object (host)" が [[Call]] を持つ事を許すので、それ以外の文字も存在しうるし、"object" 等の規定値であっても良い(古いIEの attachEvent や>>623はそれだろう)
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.4.3
規定値を許す仕様は想定外のバグを生みかねないのでES5で修正されている
http://es5.github.io/#x11.4.3
読み返してみたら、>>640で似たような質問があるな

905 :Name_Not_Found:2014/11/01(土) 21:32:25.19 ID:???
>>904
互換性があるかどうかってこと。

言い換えると継承関係があるかどうかってことだよ。

906 :Name_Not_Found:2014/11/01(土) 21:38:09.78 ID:???
>>905
「型」と「継承」は何の関係もない

907 :Name_Not_Found:2014/11/01(土) 21:39:38.31 ID:???
>>906
じゃあ、互換性があるか。
同じように使えるかって話でいいよ。

いい加減に質問に答えてくれないか?

908 :Name_Not_Found:2014/11/01(土) 21:41:35.47 ID:???
「互換性」「継承関係」という言葉が曖昧すぎる
日本語だとそれぞれの認識に差が出るから、仕様内で使われている英語を使ってくれ
そうでないとまた泥沼議論になる

909 :Name_Not_Found:2014/11/01(土) 21:45:37.38 ID:???
>>908
また逃げるの? 俺は仕様内の言葉なんか知らないから
君が説明してくれよ。

「互換性がある」を仕様ではどのように言ってるのさ。

910 :Name_Not_Found:2014/11/01(土) 21:48:11.70 ID:???
typeofでfunctionが帰ってくるのなら、それはfunctionだし
返ってこないならそれはfunctionじゃない。

Callを持つかどうか?であれば、hasCallとかいうメソッドで
調べるべきで、typeofで調べるべきことではない。

911 :Name_Not_Found:2014/11/01(土) 21:51:20.84 ID:???
互換性があるかどうかは、instanceofで調べるんだよ。

912 :Name_Not_Found:2014/11/01(土) 21:52:21.58 ID:???
なんだまた荒しか

913 :908:2014/11/01(土) 21:52:59.13 ID:???
>>909
俺は908が初レスなんでね。横槍ですまんな
「互換性がある」という日本語なんて仕様書にはない。終了

まあ煽りあってもしょうがないから聞くけどさ、>>909の言う「互換性」ってどういうこと?
英語でなくてもいいから、日本語でなるべく具体的に説明して

914 :906:2014/11/01(土) 21:57:07.19 ID:vWviYiTO
多分、何か勘違いしてるんだろうが、質問内容が曖昧だからなあ
何と何に互換性があるのか、さっぱりわからんし、答えようがない

蛇足だけど、>>908は俺じゃない
>>908はフォローしてくれただけだから攻撃しないでくれ

915 :Name_Not_Found:2014/11/01(土) 22:04:31.78 ID:???
> まあ煽りあってもしょうがないから聞くけどさ、>>909の言う「互換性」ってどういうこと?

全く同じように使えるってことだよ。

Objectを渡されると期待している所に
入れても大丈夫なもの。

916 :Name_Not_Found:2014/11/01(土) 22:05:34.45 ID:???
>>910
> Callを持つかどうか?であれば、hasCallとかいうメソッドで調べるべきで、typeofで調べるべきことではない。
横からすまないが、hasCall は ES6 規定のメソッドだろうか
検索したが見つけられなかったので、該当仕様URLを教えてくれると嬉しい

917 :908:2014/11/01(土) 22:10:35.00 ID:???
>>915
あなたの言う「Object」とは? → 「互換性のあるもの」
あなたの言う「互換性のあるもの」とは? → 「Objectを渡されると期待している所に入れても大丈夫なもの」
循環定義になっているので、私には答えようがないです

918 :906:2014/11/01(土) 22:14:06.02 ID:vWviYiTO
>>915
互換性という言葉は「AとBに互換性がある」のように使う
AとBにそれぞれ何が入る?

919 :Name_Not_Found:2014/11/01(土) 22:15:05.03 ID:???
>>916
自分で作るんだよ。
それぐらい作れやw

920 :Name_Not_Found:2014/11/01(土) 22:16:23.55 ID:???
>>917
循環定義じゃなくて、
同じことを違う言葉で説明しているだけだろ。

「互換性がある」という説明じゃ通じないんだから
「Objectを渡されると期待している所に入れても大丈夫なもの」 と
言い換えた。

誰も定義の話なんかしとらんよ。
日本語通じないのかなこの人。

921 :908:2014/11/01(土) 22:19:48.80 ID:???
>>920
煽りは要らない
あなたの言う「Object」が何なのか、それが私には知る由がないので、質問に答えられない
もしそれが説明できないなら、ES6仕様書での「4.3.3 object」の定義で回答するが、それでいいか?

922 :Name_Not_Found:2014/11/01(土) 22:20:58.89 ID:???
>>919
自作するなら仕様から [[Call]] を持つ事を保証しなければならない
「typeof は[[Call]] を調べるべきではない」⇒「自作しろ」では何の解決策にもなってないと思うが
typeof以外で [[Call]] の存在を判定可能なものが必要だろう
代替案なしの否定では何も進まない

923 :Name_Not_Found:2014/11/01(土) 22:24:24.88 ID:???
>>921
> あなたの言う「Object」が何なのか、それが私には知る由がないので、質問に答えられない

var obj = new Object; ←これがObject
  ↑ Objectのインスタンス

このObjectのメソッド、プロパティを全て持っているのであれば、
互換性があるということ。


ここまで分かりやすく説明すれば
馬鹿にでもわかるだろw

924 :906:2014/11/01(土) 22:28:20.76 ID:vWviYiTO
>>923
instanceof を使えばよかろう
typeof を使う必要性がまるでないし、役割が違う

925 :908:2014/11/01(土) 22:28:49.64 ID:???
>>923
あなたの中ではそのいう定義なんですね。ES6と全く違う定義なので、私にはわからなかったです
あなたのその定義で言えば、typeof で "object" を返す保証はありません
obj instanceof Object で調べればいいです。終わり

926 :Name_Not_Found:2014/11/01(土) 22:31:13.33 ID:???
>>925
質問に答えてないしw

じゃあ君が定義を理解した所で

typeofでobjectと返ってこないものを
Objectと判断していいのか?

これが最初の質問だからね。最初の質問に戻しただけ。

927 :Name_Not_Found:2014/11/01(土) 22:33:29.62 ID:???
>>926
ああ、これに関しては悪かったw質問に答えてなかったね
「typeofでobjectと返ってこないものをObjectと判断していいのか?」
→ あなたの定義の「Object」である場合もあるし、そうでない場合もある
終わり

928 :906:2014/11/01(土) 22:37:26.56 ID:vWviYiTO
客観的に見ても、>>903から>>923を読み取るのは無理だと思うね

Q1. typeof演算子で "object" を返す場合、Object のインスタンスであることが保証されれますか
⇒No
Q2. typeof演算子で "function" を返す場合、Function のインスタンスであることが保証されれますか
⇒No

初めから typeof 演算子を使わず、instanceof 演算子を使えばいいのだが、正しい用語を知らなかったから instanceof 演算子しに辿り着けなかったのだろう

929 :Name_Not_Found:2014/11/01(土) 22:37:37.16 ID:???
またはじまったよw

930 :Name_Not_Found:2014/11/01(土) 22:38:50.45 ID:???
答え

> たとえばtypeofでobjectと返って来たものは
> objectとして扱うべきですが、
> object以外の任意の文字が返って来た時、
> objectとして扱うべきなのでしょうか?
objectとして扱ってはいけません。

> これは例えばなので、functionであったとしても同じです。
> functionと返ってこないものを
> functionとして扱っていいのでしょうか?

functionと返ってこないのであれば、
functionではありません。

931 :Name_Not_Found:2014/11/01(土) 22:42:38.31 ID:???
ああ、そういうことか
「"object" を返すものだけが真のobjectである」という説に落ち着けたかったのね
実際には「Objectのインスタンスではない」というだけなんだけど

932 :Name_Not_Found:2014/11/01(土) 22:47:00.02 ID:???
>>930
どこかで見覚えがある論法だと思ったら>>550だった
相変わらず、適当すぎる答えだ

933 :Name_Not_Found:2014/11/01(土) 22:53:51.67 ID:???
正確にはこうだな

■typeof演算子で "object" を返す場合
・Object型です
・Objectのインスタンスである事は保証されません

■typeof演算子で "function" を返す場合
・Object型で [[Call]] を持ちます
・Functionのインスタンスである事は保証されません

「型」と [[Call]] と [[Class]] を混同する人はそれなりに多い

934 :Name_Not_Found:2014/11/01(土) 23:00:22.41 ID:???
上のほうで、typeofでその他が返って来た時が
どうのこうのって言っていた奴いたじゃん?
あれ何が言いたかったんだろうね。

Objectであればinstanceofで調べられるわけで。

935 :Name_Not_Found:2014/11/01(土) 23:35:47.83 ID:???
>>934
ツリー化すればわかるが、それは互換性云々の人
屁理屈をこねて>>930の結論に持って行きたかっただけだと思う

936 :Name_Not_Found:2014/11/02(日) 00:23:51.74 ID:???
>>933
話題とは関係ないけど、typeof null == "object" も忘れないでね

937 :Name_Not_Found:2014/11/02(日) 00:59:08.11 ID:???
>>936
すまん、うっかりしてた
>>930に倣うならこうなる(「functionでないもの」は意味不明すぎるので削除した)

■typeof演算子で "object" を返す場合
・Object型もしくはNull型です
・Object型であってもObjectのインスタンスである事は保証されません

■typeof演算子で "undefined", "boolean", "function", "number", "symbol", "string" 以外を返す場合
・処理系のObject型です
・ES3では [[Call]] を持つものもありますが、ES5, ES6 では [[Call]] を持ちません
・Objectのインスタンスである事は保証されません
・Functionのインスタンスである事は保証されません(※[[Call]] を持つ場合)

■typeof演算子で "function" を返す場合
・Object型で [[Call]] を持ちます
・Functionのインスタンスである事は保証されません
・ES5, ES6 では typeof 演算子で返す文字列の中で [[Call]] を持つ唯一のケースです

938 :Name_Not_Found:2014/11/02(日) 16:17:40.94 ID:???
javascriptの公式ロゴって無いんですか

939 :Name_Not_Found:2014/11/02(日) 17:28:09.44 ID:???
>>938
JavaScriptに公式はないので公式ロゴもない
あえてあげるならECMAか

940 :Name_Not_Found:2014/11/02(日) 20:26:36.84 ID:???
(function(global){
var obj = document.getElementById("test");
obj.addEventListener("click", aaaaaaaaa, false);
}(window));
のときは循環参照しないから最後にglobal = nullしなくてもよくて
(function(global){
global.addEventListener("click", aaaaaaaaa, false);
}(window));
のときだけ循環参照してメモリが食うからglobal = nullってしないといけないって認識でOKですか?

941 :940:2014/11/02(日) 20:27:25.29 ID:???
(function(global){
window.addEventListener("click", aaaaaaaaa, false);
}(window));
っていうふうにglobalじゃなくてwindowを使えば循環参照でメモリを食わないって認識でもいいですか?

942 :Name_Not_Found:2014/11/02(日) 23:00:20.23 ID:???
>>940-941
aaaaaaaaa の関数定義がないので何ともいえないが、確認できる限りでは全てDOMとScriptで循環参照していない

943 :Name_Not_Found:2014/11/03(月) 01:09:10.52 ID:???
youtubeのチャンネル登録された動画をgetjsonで取得し、任意の数だけ表示させているのですが、非公開動画があるとその前の動画までしか表示してくれません。
どうすれば、非公開動画を飛ばせますか?

944 :Name_Not_Found:2014/11/03(月) 09:05:54.46 ID:???
例外処理すればいいだけじゃないの
ソースコードがないから何とも言えないけど

945 :Name_Not_Found:2014/11/03(月) 09:31:25.41 ID:???
>>942
このスレと過去スレを呼んだら循環参照するって書いてありました

946 :Name_Not_Found:2014/11/03(月) 10:20:01.51 ID:???
>>945
そして循環参照は何も問題にならないから
循環して良いとも書いてあったでしょう?

947 :Name_Not_Found:2014/11/03(月) 10:53:26.50 ID:???
まじで
ってことはglobal = nullって書かなくてもいいってことですか

948 :Name_Not_Found:2014/11/03(月) 11:09:59.20 ID:???
そもそも>>940のコードではaaaaaaaaa内からglobalへの参照がないので循環参照していない
仮に循環参照していても、サポート切れのXP以下でしか使えないIE6など気にする必要ない

949 :Name_Not_Found:2014/11/03(月) 11:22:22.66 ID:???
>>945
aaaaaaaaa が無名関数式のケースで循環参照する、といわれていただけだろう
あなたがちゃんと理解できていないだけ

950 :Name_Not_Found:2014/11/03(月) 12:00:16.37 ID:???
そんなに循環参照が気になるなら
jQueryとかを使ったほうがいいよ。

あんた、何時間こんなくだらないことに
時間費やしてるのさ?

951 :Name_Not_Found:2014/11/03(月) 12:14:23.16 ID:???
理解しようとするのはくだらない事じゃないが、読解力に問題があるようだな
循環参照は回避するスタイルは好き好きだし、自由にしていいと思うが

952 :Name_Not_Found:2014/11/03(月) 12:58:43.73 ID:???
温泉はやっぱり100%掛け流しでないとダメだな。

953 :Name_Not_Found:2014/11/04(火) 11:06:18.33 ID:???
テンプレに入れて

■主要FAQ (全部は http://fiddle.jshell.net/vSqKr/33/show/ )
window.onload 中でやるとか。
Q10. (function(global){〜})(window)無名関数の中で循環参照を切ったほうがいいですか?
A10. 今のモダンブラウザではその必要はありません

954 :Name_Not_Found:2014/11/04(火) 11:28:13.13 ID:???
$(function () {
...
});

ってonloadの中に書いたほうがいいですか?

955 :Name_Not_Found:2014/11/04(火) 11:34:37.28 ID:???
>>954
むしろonloadの中に書くのは間違いだし実行が遅れる
特別な意図がなければ裸で<script>内に書けばおk

956 :Name_Not_Found:2014/11/04(火) 12:22:11.25 ID:???
>>954

そのjqueryの書き方自体がloadじゃないのかい

957 :954:2014/11/04(火) 12:38:25.01 ID:???
ありがとうございます

958 :Name_Not_Found:2014/11/04(火) 23:56:34.58 ID:JYOicRBV
html5の質問スレってこの板無くないですか?
http://peace.2ch.net/test/read.cgi/hp/1393153279/
ここはまともに機能してないし

959 :Name_Not_Found:2014/11/05(水) 00:31:56.03 ID:???
HTML5ではないけど、ここでいいんじゃない? http://peace.2ch.net/test/read.cgi/hp/1385344752/
HTMLとJSは切れない関係だし、ここで聞いても誰か答えてくれるかもね

960 :Name_Not_Found:2014/11/05(水) 00:35:51.85 ID:???
sectionとarticleってどう違うのでしょうか?
よくわからないのでもうsectionだけ使おうかと
考えているのですが問題無いですか?

961 :Name_Not_Found:2014/11/05(水) 02:34:57.82 ID:???
HTML5のタグについては、スレ違いだけど、

sectionは一般的なセクションを表す
nav,article,asideで表せるなら、そちらを優先して、
そのどれにも当てはまらない場合に、sectionを使う

articleは、ニュースサイトやブログの記事のように、
一つずつが独立しているもの
RSSフィードで扱うもの

962 :Name_Not_Found:2014/11/05(水) 08:59:44.20 ID:???
HTML5の話題なんだからいいだろw

963 :Name_Not_Found:2014/11/05(水) 09:18:59.02 ID:???
JavaScriptが関係しないならスレ違いだね

964 :Name_Not_Found:2014/11/05(水) 10:07:30.87 ID:???
>>960
ググレばたくさん解説でてきますけどw

965 :Name_Not_Found:2014/11/05(水) 10:07:45.30 ID:???
>>961
>そのどれにも当てはまらない場合に

section はsectionとしてセクショニングの機能を独立に備えているから
併用してもいいんではないのか?

966 :Name_Not_Found:2014/11/05(水) 10:45:09.39 ID:???
>>965
>>961は併用を否定してるようには見えない

967 :Name_Not_Found:2014/11/05(水) 13:35:01.46 ID:???
https://archive.org/details/internetarcade

ここでブラウザ上で出来るアーケードゲームのエミュレータが公開されました
おそらくJavaScriptで動いていると思うのですが
JavaScriptでゲームが組まれているのではなく、
JavaScriptでエミュレーションしているのはすごくないですか?
こういうので問題のない処理速度が出せるほどJavaScriptって速いものでしたっけ?

968 :Name_Not_Found:2014/11/05(水) 14:34:15.71 ID:???
当時のゲーム機よりは十分に速いんじゃね?

969 :Name_Not_Found:2014/11/05(水) 14:34:30.66 ID:???
>>967
Firefoxが最速って言ってるからemscripten使ってネイティブコードをasm.jsにコンバートしてるんだろう
asm.jsはFirefox上だとネイティブコードと遜色無い速度で動く

970 :Name_Not_Found:2014/11/05(水) 14:42:41.87 ID:???
forEachとfor inってどういうときにfor (var i=0;i<10;i++)みたいなのより適しているのか教えてください

971 :Name_Not_Found:2014/11/05(水) 16:38:02.00 ID:???
forEachは範囲を決めずに全部じゃーっと舐めたいとき
for inはキーが数字じゃないオブジェクトを舐めたいとき

972 :Name_Not_Found:2014/11/05(水) 16:49:27.67 ID:/pZnzRY/
>>967
見るからに80年台のアーケードゲームって配色してんな

973 :Name_Not_Found:2014/11/05(水) 19:17:56.18 ID:LF+Z+Z7Q
フォームに入力するとあらかじめ用意されたHTMLの雛形に反映されてソースコードが完成するっていう指示はできますか?

974 :Name_Not_Found:2014/11/05(水) 19:26:09.85 ID:???
できます

975 :Name_Not_Found:2014/11/05(水) 19:45:26.97 ID:???
>>961
> articleは、ニュースサイトやブログの記事のように、
> 一つずつが独立しているもの
ニュースサイトやブログ以外が難しいね。
オンラインショッピングとか検索エンジンとか
TwitterやFacebookなど。

つぶやきはarticleにするべきなのか?
タイムラインはつぶやきの集まりだが、
一つのつぶやきがarticleなのか?みたいに


>>965
> section はsectionとしてセクショニングの機能を独立に備えているから
セクショニングの機能なら
articleも備えてるけどね。
navもasideも

976 :Name_Not_Found:2014/11/05(水) 19:58:01.05 ID:???
>>967
アーケードゲームは専用チップとか積んでるはずだから
あまり参考にならないと思うけど、

1990年ごろのアーケードゲームの基盤のスペック
http://ja.wikipedia.org/wiki/CP%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
> メインCPU: モトローラ 68000 @ 10 MHz
> サウンドCPU: ZiLOG Z80 @ 4 MHz

それに対して今のCPUは1Ghzをゆうに超える。
100倍近く速いマシンを使ってるのだから
それぐらいのエミュレーションはできるでしょ。

ブラウザのJavaScriptで遅いのはDOM関連だけど
(少し変更が入るだけで多くの再描画が行われるから)
ゲームだとそういうのが発生しないだろうしね。

専用の3Dアクセラレータを使っているような
ゲーム以外は十分エミュレートできる性能だと思う。

977 :Name_Not_Found:2014/11/05(水) 23:00:03.82 ID:???
>>970
同じ質問をよく見かけるのだが、同じ人が質問してるのかな
同じような質問で同じような回答を何度ももらってる印象

978 :Name_Not_Found:2014/11/05(水) 23:12:06.12 ID:???
テンプレに入れといて

979 :Name_Not_Found:2014/11/05(水) 23:23:47.29 ID:???
次スレ

+ JavaScript の質問用スレッド vol.121 +
http://peace.2ch.net/test/read.cgi/hp/1410603104/

980 :Name_Not_Found:2014/11/06(木) 08:16:33.41 ID:???
同じ人じゃないだろ
呆け老人かよw

981 :Name_Not_Found:2014/11/06(木) 11:09:06.00 ID:???
クズが別スレ立てたな

982 :Name_Not_Found:2014/11/06(木) 13:10:33.85 ID:???
var a = null;
var b = null;
var c = a|b|'test';
console.log(c);

ベンダープレフィックスが付いたオブジェクトを使う時に|区切りで変数に代入する方法があるので同じことがしたいのですが
aとbがnullなら'test'をc似入れたいんですがログでは0が出力されます
どうやって書けば他がnullとかundefinedの場合は'test'が入るのか教えてください

983 :Name_Not_Found:2014/11/06(木) 13:44:47.84 ID:???
||

984 :Name_Not_Found:2014/11/06(木) 13:45:17.47 ID:???
||

985 :Name_Not_Found:2014/11/06(木) 15:25:03.37 ID:???
 ∧||∧
(  ⌒ ヽ
 ∪  ノ
  ∪∪

986 :Name_Not_Found:2014/11/06(木) 17:48:18.49 ID:???
>>982
|はビットごとの演算子
||は論理演算子or

987 :Name_Not_Found:2014/11/06(木) 18:06:07.69 ID:???
プログラマに頭おかしい人が比較的多いのはなぜですか

988 :Name_Not_Found:2014/11/06(木) 20:41:34.73 ID:???
>>987
なんで嘘つくの? なんで?

989 :Name_Not_Found:2014/11/06(木) 21:05:41.44 ID:???
>>987
比較的多いんだったら間違ってないだろうな
プログラムやるやつは普通の人よりは物事を複雑に考えるから
程度によってはおかしいと思われる

990 :Name_Not_Found:2014/11/06(木) 21:20:36.82 ID:???
思うとかどうでもいいわw
どうせ嘘なんだろ?
証拠出せって言われたら逃げるか
言い訳するレベルだろ?w

991 :Name_Not_Found:2014/11/06(木) 21:53:42.32 ID:???
人と接触する時間が少ないから

992 :Name_Not_Found:2014/11/07(金) 07:48:34.47 ID:???
個人制作者ならアスペほど有利ときいたことがある
でも職業プログラマは人と作るときオレオレコードだと使えないから
ある程度コミュニケーション能力ないとだめ

993 :Name_Not_Found:2014/11/07(金) 10:46:47.16 ID:???
アスペの人は変化を嫌うんで、いつも同じ反応をする物が好きらしいよね。
鉄道みたいに、ダイヤに忠実に動いてる物とか。

994 :Name_Not_Found:2014/11/07(金) 11:34:15.31 ID:???
それ池沼じゃね

995 :Name_Not_Found:2014/11/07(金) 23:16:44.89 ID:???
>>993
リンゴは赤いもの
つまり、赤いものはリンゴ

↑と言ってる奴がアスペ

アスペの人は変化を嫌う
変化を嫌う人はアスペ

↑と言ってる奴がアスペ

996 :Name_Not_Found:2014/11/07(金) 23:17:18.41 ID:???
>>993
俺、変化は嫌いだけど、アスペじゃないよw

997 :Name_Not_Found:2014/11/07(金) 23:51:51.95 ID:???
現実でアスペなんて言葉使ったら、使った方が頭おかしいと思われる

998 :Name_Not_Found:2014/11/08(土) 01:38:59.21 ID:???
最もだが、それをいうなら>>987のような質問する人も同じだよなあ

999 :Name_Not_Found:2014/11/08(土) 02:11:03.89 ID:???
1000

1000 :Name_Not_Found:2014/11/08(土) 02:32:09.02 ID:???
埋め

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

282 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)