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

私的良スレ書庫

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

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

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
901 : Name_Not - 2014/10/02(木) 19:21:26.55 ID:???.net (+55,+29,-22)
まあた質問スレで質問・回答ではない言い合いが始まったよこのバカ達
スレチな話はやめろ
902 : Name_Not - 2014/10/02(木) 19:55:16.52 ID:???.net (+17,-30,-52)
>>898>>899
FirefoxのJSエンジンはさすがにオブジェクト周りはC++で書かれていたけど
new FunctionもObject.createも最終的にはNewObjectWithGivenProtoが呼ばれてるはず
903 : Name_Not - 2014/10/02(木) 20:32:08.66 ID:???.net (-1,-29,-14)
typeofを使ったundefinedチェックはもう過去のものなんですね。
904 : Name_Not - 2014/10/02(木) 20:58:31.46 ID:???.net (+57,+29,-30)
でも、内部的にnewしてるとしても、それはnewだけでは出来なかったことをやっているってことでしょ?
忌避する理由としては弱いのでは
905 : Name_Not - 2014/10/02(木) 20:58:58.67 ID:???.net (+51,+29,-21)
論破バカとステートフルバカは同一人物か
単なるキチガイだな
906 : Name_Not - 2014/10/02(木) 21:06:56.92 ID:???.net (+8,-29,-44)
そういや未定義の話が出たけど、
未定義のチェックってどうしてる?

ブラウザで動かすならこれが一番シンプルだと思う。

console.log('JSON' in window);
907 : Name_Not - 2014/10/02(木) 21:09:02.13 ID:???.net (+95,+29,-60)
かつてはnewしかなかったんだから過渡期にnewと名づけられた関数が使われていたとしても
Object.createの方が原現象に近いんだからnewをしているとはならんのよ
このあたりA級以上じゃないと分からないかなぁ~
908 : Name_Not - 2014/10/02(木) 21:15:33.46 ID:???.net (+14,-30,-38)
>>906
そもそも、そういう形で未定義のチェックはしない
JSONがString型だったら意味ないし
typeof JSON === 'object'
909 : Name_Not - 2014/10/02(木) 21:27:02.20 ID:???.net (+4,-29,-91)
>>906
厳密に調べたい場合はそれかな。

厳密にっていうのは定義されていてundefinedが代入されていても
定義されているとみなしたい場合。

でもJSONオブジェクトみたいなものは、
if (window.JSON) {} でいいと思う。
910 : Name_Not - 2014/10/02(木) 21:28:07.72 ID:???.net (-1,-30,-64)
>>908
それだと何のオブジェクトか分からないから
typeof JSON.parse==="function"&&typeof JSON.stringify==="function"も追加しないと
911 : Name_Not - 2014/10/02(木) 21:31:18.12 ID:???.net (+11,-22,-24)
>>908
その書き方は、JSONがobjectじゃない時に
動かなくなるので駄目だよ。
912 : Name_Not - 2014/10/02(木) 21:34:06.64 ID:???.net (+0,-28,-17)
window.JSONでいいじゃん。

これで何か問題有る?
913 : Name_Not - 2014/10/02(木) 21:37:38.21 ID:???.net (+114,-30,-106)
またundefinedの話してるのかw

確か前回の話はこれで止まったと思うんだが。

=== undefinedの何が駄目か?
それはundefinedになんかの値が入っていた時に困る。

だったら、

(function() {
 var undefined;

 ・・・
})();


って書けばいいんじゃね?
どうせグローバル汚さないようにfunctionで括るんだし。

という流れで、typeof厨は消えたと思うんだけどな。
少なくとも反論のレスはなかった。
914 : Name_Not - 2014/10/02(木) 21:39:23.40 ID:???.net (+0,-29,-14)
>>911
JSON が Object じゃない時ってどんな時さ
915 : Name_Not - 2014/10/02(木) 21:40:18.72 ID:???.net (+202,+29,-9)
>>913
反論は散々出たが、相手するのが馬鹿らしくなって相手にされなかっただけ
916 : Name_Not - 2014/10/02(木) 21:41:54.35 ID:???.net (+59,+22,-42)
>>913
目からうろこ。

undefinedが書き換えられるなら、
逆に自分でundefinedにすればいいのか。
917 : Name_Not - 2014/10/02(木) 21:43:34.30 ID:???.net (+79,+30,-46)
>>915が反論のレスがなかったことの証人になってくれたよ。

レスがなかった理由を>>915がかってに想像しているが、
その想像はどうでもいいとして、事実としてレスがなかった(相手にされなかった)
ことは確からしいw
918 : Name_Not - 2014/10/02(木) 21:49:07.78 ID:???.net (+112,+29,-12)
>>915
じゃあ、今回も相手にするのが馬鹿らしくなったことにして、
これが結論ということでいいかなー?w
919 : Name_Not - 2014/10/02(木) 21:49:12.15 ID:???.net (+65,+29,-2)
>>913
それはかなり前の話だろ
920 : Name_Not - 2014/10/02(木) 22:06:36.33 ID:???.net (+57,+29,-19)
>>913
グローバル変数探索のコスト軽減のためにするんならわかるが、そんな変な理由でやるんかい
921 : Name_Not - 2014/10/02(木) 22:07:22.18 ID:???.net (+72,+29,-16)
>>918
あなたの中ではその結論で良いんじゃない?
ES5にまつわる話が合ったはずだけど、議論するだけ無駄だろうしね
922 : Name_Not - 2014/10/02(木) 22:08:28.80 ID:???.net (+66,+29,-33)
>>913
書き換え禁止の実装でも書き換え可能にするとかどこの馬鹿だよ
923 : Name_Not - 2014/10/02(木) 22:13:58.28 ID:???.net (+119,+29,-31)
>>915
あのときの質問者だが、
「未定義の場合にエラーにならない」って言及したやついなかったぞ。
924 : Name_Not - 2014/10/02(木) 22:18:27.33 ID:???.net (+103,+29,-26)
>>923
> 「未定義の場合にエラーにならない」って言及したやついなかったぞ。
日本語でおk
925 : Name_Not - 2014/10/02(木) 22:24:57.27 ID:???.net (-1,-29,-40)
そもそも undefined 判定なんか使わないな
undefine をセットしたり、比較するコードは改善の余地がある
926 : Name_Not - 2014/10/02(木) 22:26:51.13 ID:???.net (+63,+26,-10)
>>924
すまねぇな
「未定義の場合にtypeofでチェックするとエラーにならない」
これでいいか、アスペ
927 : Name_Not - 2014/10/02(木) 22:32:43.07 ID:???.net (+57,+29,-12)
自己完結してるなら同意を求めずに黙ってろよ
誰もお前がそう思うことは止めないから
928 : Name_Not - 2014/10/02(木) 22:58:14.54 ID:5FN/g44F.net (-2,+29,-8)
もはや何を言い争ってるのか分からんなw
はっきり言えるのはtypeof原理主義みたいな奴は馬鹿ということだけだ
929 : Name_Not - 2014/10/02(木) 23:10:48.57 ID:???.net (+57,+29,-15)
この流れで会話してる奴はコテ付けろよ
930 : Name_Not - 2014/10/03(金) 00:22:38.66 ID:???.net (+57,+29,-12)
A級の人と底辺が言い争ってますね
A級以外の底辺はレスしないでください。スレ汚しです。
931 : Name_Not - 2014/10/03(金) 00:43:04.71 ID:???.net (+1,-26,-10)
「未定義の場合にtypeofでチェックするとエラーにならない」

これデメリットだよね
932 : Name_Not - 2014/10/03(金) 00:43:47.43 ID:???.net (-1,-29,-15)
未定義の場合にtypeofでチェックするとエラーにならない
という問題をどう解決するか。

typeofを使わないのが答えだろう。
933 : Name_Not - 2014/10/03(金) 01:00:12.47 ID:???.net (+57,+29,-44)
そんな下らんことにウジウジ拘るのは底辺の証だわ
底辺はあたま使わずにただ規約に従ってればいいんだよ
934 : Name_Not - 2014/10/03(金) 01:14:55.79 ID:???.net (+102,+29,-29)
>>907
お前はバカか?
俺はC++のソースまで確認して言ってんだよ
原現象って何だよ
そういう仕様で定義されてない感覚的な用語を使ってる時点で素人丸出しだろ
935 : Name_Not - 2014/10/03(金) 01:41:56.77 ID:???.net (+105,+29,-10)
>>934
発想がコードで止まってるからお前はB級なんだよ
ソフトウェアの本質はコードにはない
936 : Name_Not - 2014/10/03(金) 01:50:59.92 ID:???.net (+72,+29,-4)
本当に>>913でレスが止まったなw
937 : Name_Not - 2014/10/03(金) 01:53:57.16 ID:???.net (+57,+29,-4)
でもtypeofにもいいところがあると分かったから良かったよ
938 : Name_Not - 2014/10/03(金) 02:39:30.93 ID:???.net (+51,+28,-2)
止まってなかっただろ
939 : Name_Not - 2014/10/03(金) 02:49:52.05 ID:???.net (+39,-29,-67)
same origin policyが防ぐ脅威についての質問です
もしこれがないとクッキーが盗まれて
gmailやtwitterに勝手にログインされる可能性があると
本に書いているのですが、
クッキーを受け取るには、
gmailやtwitterのサイトで任意のJavaScriptを実行する必要があると思います
しかし、この任意のJavaScriptを実行するということは通常できないのではないですか?
どこか勘違いしてますか?
940 : Name_Not - 2014/10/03(金) 02:53:43.45 ID:???.net (+72,+29,-45)
>>935
お前がOOPもろくに理解してないのは丸わかりなんだよ
しょーもない細部しか見えない視野狭窄で、本質と全く関係ない話ばかりしやがってこのマヌケが
941 : Name_Not - 2014/10/03(金) 03:30:29.99 ID:???.net (+54,+26,-25)
そもそもnewがダサくなかったらObject.createなんて作られないから。
いつまでもダサコード書いとけよイモグラマーが
942 : Name_Not - 2014/10/03(金) 03:34:00.62 ID:???.net (+56,+23,-107)
Object.createとnewとどっちが本質的か考えたらすぐ分かるだろ
createはプロトタイプチェーン伸張
newはプロトタイプチェーン伸張+コンストラクタ呼び出し
つまりObject.createの方がより本質的なんだよ
こんなの簡単なことだろ
センスねー野郎だな
943 : Name_Not - 2014/10/03(金) 05:36:57.01 ID:???.net (+68,+29,-123)
>>939の件ですが、
別タブで他のサイトにログインしている最中
JSからajaxでそのサイトを取得すると、
もしSOPがないとログイン状態のクッキーが送信されて取得できてしまう、
とのことでした。
クッキーはウインドウごとに持っていて、
あるタブでログインしても、別タブを開いたらログインしなおさなければいけないと思っていたのですが、
クッキーはウインドウ毎ではないのですね
944 : Name_Not - 2014/10/03(金) 06:11:25.76 ID:???.net (+90,+25,-62)
同時に同じURLを二つのウインドウを開いた時
ウインドウ1でクッキーに書いた内容は
すぐに(リロードせずに)ウインドウ2のクッキーに反映するのでしょうか?
945 : Name_Not - 2014/10/03(金) 08:13:08.25 ID:???.net (+9,-30,+0)
以下のJavaScriptコードでiframeの高さを中身のページのサイズに仕様としているのですが、
selectObj[i].document.getElementsByTagName("body")[0].scrollHeightがうまくいかず、
「{exception} 未定義または NULL 参照のプロパティ 'getElementsByTagName' は取得できません」と言われてしまいます。
ページにはiframeが2つ設置してあり、今後2つのうち中身の高さが高い方にそろえたいと思っているのですが、
それぞれの高さを取得するにはどうしたらよいのでしょうか?
selectObj[i].document.getElementsByTagName("body")[0].scrollHeightのselectObj[i]部分を
iframeに設定しているnameにすれば高さの取得はうまくいくのですが、
それでは凡庸性がないと思いまして。
document.getElementsByName(selectObj[i].name)などを試してみましたが、
同じようなことを言われました。

function resize() {
var selectObj = document.getElementsByTagName('iframe');
for(i=0; i < selectObj.length; i++){
selectObj[i].height=selectObj[i].document.getElementsByTagName("body")[0].scrollHeight+30;
}
}
946 : Name_Not - 2014/10/03(金) 09:38:48.67 ID:???.net (+20,-30,-187)
>>945
getElementsByTagName('iframe')
で取得した selectObj が Window オブジェクトのリストになると
勘違いをしているようだが
あくまで HTMLElement オブジェクトのリスト

iframe から その内容Documentにアクセスする方法は
HTMLIFrameElement API を調べればよい
http://html.spec.whatwg.org/multipage/embedded-content.html#the-iframe-element
947 : Name_Not - 2014/10/03(金) 10:50:03.53 ID:???.net (-4,-29,-35)
new を使わずに Object.create を使うメリットって何でしょうか?
MDNを見ても分からなかったですorz
948 : Name_Not - 2014/10/03(金) 11:16:53.01 ID:???.net (+96,+29,-79)
ここでデカい口叩いてる奴等って仕様も知らずに感情だけでもの言ってんだよな
プログラム版とかでは仕様の○○項を見ろとか平気で言ってくるやつも多い

コードで例示するか仕様の項目を指摘するか以外の書き込みは、全く信用すべきでないよ
949 : Name_Not - 2014/10/03(金) 11:31:21.02 ID:???.net (+87,+29,-8)
一昔前にnew使うな派みたいなのがいたけど、今さらそういうこと言ってる奴いるのかね
950 : Name_Not - 2014/10/03(金) 11:32:07.00 ID:sQVzkt5f.net (+85,+30,+0)
>>947
概ねはオブジェクト初期化子を使用してインスタンス(のようなもの)を生成できる、という設計上の違いしかないよ。
ただ、Object.create はコンストラクタ呼び出しされないからnew演算子の完全な代替にはならない(これも設計思想の違いといえなくはない)。

Object.create は new 演算子を忌避した Douglas Crockford が作成したコードで、後に ES5 で取り込まれた経緯がある。
彼の拘りは独特で new 演算子のほぼ全否定に近く、個人的にはやりすぎ感があるけど、まあ彼の思想に共感した人もそれなりにいる(個人的には部分的には肯定するけど全肯定は無理だった)。
彼は『JavaScript: The Good Parts』のP26で「JavaScriptが用意したメカニズムは複雑で扱いづらいが、これはかなり簡素化することもできる」という説明から Object.create を紹介している。
彼の感覚では Object.create の方が簡素でわかりやすいという事だね。

はっきりいって個人の感覚と設計思想の違いによるものだから自分の思想に合う方を選択すれば良い。
上の方で繰り広げられている「本質」に纏わる論争は個人間の思想の違いよる宗教戦争だから気にしなくていい。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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