+ JavaScript の質問用スレッド vol.109 +
innerHTMLより遅いなんてよほど馬鹿なコード書いてるとしか思えん
>>948 実際の動作によって性質を判定する方法をダックタイピング的と言ったのです
これは今後もJavaScriptにおいても重要な手法となるので覚えておいてくださいね
逆にブラウザ名で判別するのはモダンではない
jQuery.browserがなくなったのも同じ傾向上にあるものです
>>951 innerHTMLの方が速い場合もあるよ
場合によって使い分けるべきで、どちらの方が絶対にいいというもでもない
そりゃ逆だ
物の肩書ではなく持っている性質によって振る舞いが決定される
つまり主導権は物側にあるというのがダックタイピングだ
性質を量るというのはタイプ、つまり型で判定するということで
ダックタイピングとは真逆だぞ
>>954 それをダックタイピング的と呼ぶのは恥ずかしいからやめとけ
>>955 そうか〜?innerHTMLでできることをパーサーを動かさないノード操作に
置き換えて遅くなるとかほとんど無かったんだが
一見すると絶対innerHTMLの早いだろう?って感じのコードでも実際に
計ってみるとノード操作の方が早かったりした
まあそれでも、誤差程度の差にしかならん場所には、
わかりやすさ重視でinnerHTMLを使ったりするけどね
>>956 それは違います
レンダリングという実際のふるまいで判定しているのですからダックタイピング的です
比較対象が最終段階で数字となっているのであなたは勘違いしているのです
ものごとの本質を見て下さいね
>>957 C級技術者には伝わらないということが嫌というほど分かったで気を付けますね
てか少し前に、このスレでもinnerHTMLの方が速い場合もあるという結論が出てたと思うけど
>>959 ダックタイピングっていうのはあくまでも型付けの手法
実際のふるまいは関係無い
実際のふるまいでなくメソッドの名前等(シグネチャ)で判別される
異なるふるまいをするとしても同じシグネチャのメソッドが揃っていれば同じ型とみなされる
>>959 素直に「そうだったんですか」とか
「勘違いしました」って謝ればいいのに
引込みがつかなくなるとこまで意地を張る哀れな性格の奴だな
今からでも「分かりました」って一言かけば
こちらとてそれ以上追求しないし
お前さんの人間度もupするぞ
いい加減見苦しい意地張りはやめよう
恥ずかしいよ?
>>960 一般的な操作においては明らかに遅いです
コードも貼られてないんだから一般的なケースで話すのが当たり前
〜の場合もあるとか言ってたらキリがないし
パフォーマンス云々じゃなくて質問者のコードの問題を取り去って
改善するという考え方でいかないと
javascriptで関数の引数を配列として明示したいのですが
どのようにやればいいのでしょうか?
function(int[] arr){}
みたいにやりたいのですが
配列として明示するって具体的にどういうこと?
見た目の問題?
配列以外をエラーにしたいの?
それとも初期値を空配列にしたいとか?
もしくはargumentsみたいなこと言ってるんじゃないよね?
>>967 見た目の問題です
配列ってわかるようにしたいです
function(array arr){}みたいにはできないみたいですし
教えてください
>>968 /**
* @param {Array} arr 配列でね!
*/
function( arr ){}
ではだめかね
は?
「arr」で配列だって一目瞭然じゃない?
この程度にDOCなんていらんよ
ダックタイピング的に考えると
配列が必ずしもArrayであるとは限らない
TypeScriptでも使ったほうがいいな
ダック・タイピング的にやるなら、こうすか?
function( arr ){
if(arr != null && typeof arr === "object" && 'splice' in arr && 'join' in arr){
console.log('良し');
}
else{
throw('フジャッケンナ!フジャッケンナ!');
}
}
ダックタイピング&実用的にはArray.fromでパースするのがいい
lengthを持つあらゆるオブジェクトとイテレータブルオブジェクトを配列に変換できるすぐれもの
見た目的でいいんなら悪い書き方だけどこう書くこともできるよ
function ( arr = Array ) { }
もし部下がこんなコード書いてたら90分説教だわ
>>977 また本質的には変わらないコード書いた上に
長い説教するのだけは勘弁して下さい
>>976 これ引数指定し忘れたりundefinedだっらarrがArrayオブジェクトになるんだぞ
それでもいいんか?
まずArrayかどうかを判断するのがもの凄く難しいからな……
Array.isArrayが使える環境なら問題ないんだけど
だからこそのダックタイピング
>>964 誰が「一般」を決めるんだよw
innerHTMLが速いのは大量のコードをDOMツリーに追加するような場合だよ
これも十分一般的な用途だが
>>963 それはこっちの台詞だよw
最初は優しく教えてあげてるんだからそれで納得しろよ
君と関わってもこっちは何も得るところがないんだから
まとめての場合でも50倍遅いって上のベンチで出ちゃってるじゃんwwww
嘘つきw
しまった巨人様だ!
皆スルーして早く帰ってもらおう!
>>827 この件ですが、pot.jsをヒントにして配列をインターバルにイテレートする処理を書いて
体感速度を大幅に上昇させることができました
ありがとうございました
ポットンJSの話何回するんですかねえ……
引篭り児童を更生させてあげるのも大人の役目
早く彼が良くなることを願って茶番に付きあおう
こりゃ大層なツッコミ待ちだこと
>>821 確かにお前さん言うとおり只者で無いことは分かった。
表に出ちゃいけない人間だよ、お前。
流れが悪いと察するやいなや個人攻撃に切り替える人間の屑
屑だよあんた、屑、屑、屑、くず!1
質問スレで議論うぜえな
すみませんでした
今ではむきになって言い過ぎたと反省しております
反省は人を成長させる
実際の使用方法は要素を空にするより追加や書き換えが主
>>953の比べ方こそ特殊
富豪プログラミングしろよ
999ならパフォーマンス厨昇天
1000ならパフォーマンス厨堕天
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。