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

みんなの評価 :
レスフィルター : (試験中)
>>250
グローバル変数は使うな。
コードが無駄に複雑になるというか
使う必要がある時点で複雑な証拠でもある。
そのコードが問題かどうかという以前に
そういうコードが必要になってしまっているのが問題。
グローバル変数は使うな。
コードが無駄に複雑になるというか
使う必要がある時点で複雑な証拠でもある。
そのコードが問題かどうかという以前に
そういうコードが必要になってしまっているのが問題。
var str0 = new String('foo');
var name = new String('foo');
alert(str0 instanceof String); // true
alert("str0=" + str0 instanceof String);//false★1
alert(name instanceof String); //★2
質問します
★1で何故trueでなくfalseになるのは何故なのでしょうか?
(IE11とクローム(32.0.1700.107 m)で試したところfalseでした。)
★2の結果は、
IE11はtrue、クローム32.0.1700.107 mではfalseでした。
何故ブラウザで動作が違うのでしょうか?
教えてください。
var name = new String('foo');
alert(str0 instanceof String); // true
alert("str0=" + str0 instanceof String);//false★1
alert(name instanceof String); //★2
質問します
★1で何故trueでなくfalseになるのは何故なのでしょうか?
(IE11とクローム(32.0.1700.107 m)で試したところfalseでした。)
★2の結果は、
IE11はtrue、クローム32.0.1700.107 mではfalseでした。
何故ブラウザで動作が違うのでしょうか?
教えてください。
>>255
ありがとう、そういうことか。
グローバルスコープでテストしたのかいけなかったのね。
(function () {
var name = new String('foo');
console.log(name instanceof String); // true
}());
ありがとう、そういうことか。
グローバルスコープでテストしたのかいけなかったのね。
(function () {
var name = new String('foo');
console.log(name instanceof String); // true
}());
var str0 = new String('foo');
var name = new String('foo');
alert(typeof str0);//object
alert(typeof name);//★1
★1はIE11はobject、クローム32.0.1700.107 mではstringでした。
クロームではnameがstring型になるのが原因ということですか。
var name = new String('foo');
alert(typeof str0);//object
alert(typeof name);//★1
★1はIE11はobject、クローム32.0.1700.107 mではstringでした。
クロームではnameがstring型になるのが原因ということですか。
>>241
この件ですが、これもText URL Linkerというエクステンションのせいでした・・
開発時はエクステンションを外せばいいですが
エクステンションを入れている環境にどう対応すべきか、
と考えると難しい問題です・・
この件ですが、これもText URL Linkerというエクステンションのせいでした・・
開発時はエクステンションを外せばいいですが
エクステンションを入れている環境にどう対応すべきか、
と考えると難しい問題です・・
オートリンク系エクステンションって定期的にHTML全体をパースしてるんだよな
結構処理が重そう
結構処理が重そう
そういや最近は背景色とかの指定までjqでやるキチガイ多いよな。CSSでやれよ。
selectionやrangeについて詳しく書いているJavaScriptの本があれば教えて下さい
>>261
ほらもっと短くなった。
$(function() {
$(document).on('click', 'img', function(event) {
$('#id1').removeClass('hoge');
});
});
ほらもっと短くなった。
$(function() {
$(document).on('click', 'img', function(event) {
$('#id1').removeClass('hoge');
});
});
えー遅くなりましたが、要するに現状矩形編集をする方法は事実上ない、ということでよろしいのでしょうか
あまりニーズがないのでしょうかね? あると地味に便利なのですが
あまりニーズがないのでしょうかね? あると地味に便利なのですが
それでなにか深刻な問題が?
jQuery使っておいてパフォーマンスが~とか言わないでよね
そもそもグローバルでもなんでもいいから
そんなことで一々質問すな
最近どうでもいいことに病的に凝るやつ大杉
Chrome君とテキスト君はいい加減迷惑
jQuery使っておいてパフォーマンスが~とか言わないでよね
そもそもグローバルでもなんでもいいから
そんなことで一々質問すな
最近どうでもいいことに病的に凝るやつ大杉
Chrome君とテキスト君はいい加減迷惑
>>266
コードを長くする「すごく大きなデメリット」と比較しろって話。
コードを長くする「すごく大きなデメリット」と比較しろって話。
クリック処理はクリックした時だけしか発生しないから少しくらいパフォーマンス悪くても問題ない
タイミング的にシビアな処理、
ユーザーを待たせるバッチ的な処理ではチューンすべきだけど
タイミング的にシビアな処理、
ユーザーを待たせるバッチ的な処理ではチューンすべきだけど
>>266
パフォーマンスを気にするなら
event.target.ownerDocumtent.getElementById('IdName')
とするけどね。
そもそも、キャッシュするにしてもグローバル変数にキャッシュするのはない。
ローカルスコープに閉じ込めればいいのに、なぜ最も遅いグローバルスコープにするのか。
パフォーマンスを気にするなら
event.target.ownerDocumtent.getElementById('IdName')
とするけどね。
そもそも、キャッシュするにしてもグローバル変数にキャッシュするのはない。
ローカルスコープに閉じ込めればいいのに、なぜ最も遅いグローバルスコープにするのか。
キャッシュは色んなところからアクセスするんだからグローバルで問題ない
ローカルにキャッシュすることもあるけど、したいのはそういうことじゃないだろう
ローカルにキャッシュすることもあるけど、したいのはそういうことじゃないだろう
キャッシュするためにグローバルしているわけだよね。
そのグローバルってだけでデメリット。
安易なキャッシュはコードを複雑化させるだけだからやめた方がいい。
本当にそれをやる価値があるかどうかを見極めてからやるべき。
それに、キャッシュっていうのは合ってもなくても同じように動くのが理想。
$('#id')をclickイベントが起きてから取得するのと、clickイベントが発生する前に
取得しておくのとでは動きが違っている。
一般的な使い方を考えると、clickイベントが起きてから取得するべきだろう。
そのグローバルってだけでデメリット。
安易なキャッシュはコードを複雑化させるだけだからやめた方がいい。
本当にそれをやる価値があるかどうかを見極めてからやるべき。
それに、キャッシュっていうのは合ってもなくても同じように動くのが理想。
$('#id')をclickイベントが起きてから取得するのと、clickイベントが発生する前に
取得しておくのとでは動きが違っている。
一般的な使い方を考えると、clickイベントが起きてから取得するべきだろう。
JSでクラス・メソッドのネスト化ってどうやんの?
function func1(){
func1.prototype.func2 %3d function func2(){
func2.prototype.func3 %3d function func3(){
}
}
}
がエラーになるんだが
共通ライブラリとかまとめたいんだよな
function func1(){
func1.prototype.func2 %3d function func2(){
func2.prototype.func3 %3d function func3(){
}
}
}
がエラーになるんだが
共通ライブラリとかまとめたいんだよな
>>273
お前のほうがグローバル変数をわかってないんじゃね?
どこからでもアクセスできるのが、いけないんじゃないんだよ。
どこからアクセスされてるかわからないのが、いけないんだよ。
名前空間に入れておけば、少なくともその名前空間を利用していないものは
アクセスしないだろうってことが予想できる。
これが大差ないわけがないだろ。
privateという概念がない言語もあるが、そういう言語でも
_をつけることでprivateを意味するという慣習があることが多い。
これは実質publicなのだが、外部からアクセスされないということに
なってることが大きな意味を持っている。
お前のほうがグローバル変数をわかってないんじゃね?
どこからでもアクセスできるのが、いけないんじゃないんだよ。
どこからアクセスされてるかわからないのが、いけないんだよ。
名前空間に入れておけば、少なくともその名前空間を利用していないものは
アクセスしないだろうってことが予想できる。
これが大差ないわけがないだろ。
privateという概念がない言語もあるが、そういう言語でも
_をつけることでprivateを意味するという慣習があることが多い。
これは実質publicなのだが、外部からアクセスされないということに
なってることが大きな意味を持っている。
>>273
> グローバルというだけで教条的に忌避するのはC級プログラマ
この場合、画一的にグローバルを避けているわけじゃない。
パフォーマンスを気にする人がグローバル変数にキャッシュするのは明らかに目的に合致してない。
スコープの浅い場所にキャッシュする方が明らかにパフォーマンス上有利。
プロパティアクセス演算子を複数回使うのもパフォーマンス上不利になる。
> グローバルというだけで教条的に忌避するのはC級プログラマ
この場合、画一的にグローバルを避けているわけじゃない。
パフォーマンスを気にする人がグローバル変数にキャッシュするのは明らかに目的に合致してない。
スコープの浅い場所にキャッシュする方が明らかにパフォーマンス上有利。
プロパティアクセス演算子を複数回使うのもパフォーマンス上不利になる。
>>276
スコープが浅くてもそこまで辿るのに一旦そのコンテキスト上の最上位空間まで上がる必要がある
hoge.hoge.cacheにキャッシュを持たせたら
最上位空間からhogeを探す→hogeを探す→cacheを探す
となる
最上位空間に持たせた場合は
最上位空間からcacheを探す
となる。
キャッシュという性質上グローバルアクセスが出来ないと意味がないのだから
「グローバル変数にキャッシュするのがおかしい」という言説は頓珍漢
スコープが浅くてもそこまで辿るのに一旦そのコンテキスト上の最上位空間まで上がる必要がある
hoge.hoge.cacheにキャッシュを持たせたら
最上位空間からhogeを探す→hogeを探す→cacheを探す
となる
最上位空間に持たせた場合は
最上位空間からcacheを探す
となる。
キャッシュという性質上グローバルアクセスが出来ないと意味がないのだから
「グローバル変数にキャッシュするのがおかしい」という言説は頓珍漢
アクセス速度で言えば一番速いのがローカル変数
次に速いのがグローバル変数
スコープチェーンは上位から辿って行くのだから
非グローバル変数へのアクセスでもグローバル空間の探査は行なわれる
次に速いのがグローバル変数
スコープチェーンは上位から辿って行くのだから
非グローバル変数へのアクセスでもグローバル空間の探査は行なわれる
でもクロージャの場合はどうなるんかな?
一つ外のクロージャへのアクセスとグローバルアクセスはどっちが速いだろう
一つ外のクロージャへのアクセスとグローバルアクセスはどっちが速いだろう
いずれにしろ、
キャッシュで浮かせるコスト >>>>>>>> スコープチェーン走査コスト
なのでキャッシュなのにグローバル変数云々はおかしいけど
キャッシュで浮かせるコスト >>>>>>>> スコープチェーン走査コスト
なのでキャッシュなのにグローバル変数云々はおかしいけど
DOMについてですが、
childNodesを持ち、なおかつdataも持つような要素って存在しますか?
childNodesを持ち、なおかつdataも持つような要素って存在しますか?
まったく、その些細な速度の違いを
あーだーこーだいうのをやめろって言ってんだよ。
そんな1ミリ秒も差がでないようなことのために
コードを複雑にするなよ。
複雑なコードというのは開発している間
ずっと違いを感じることになるんだぞ?
あーだーこーだいうのをやめろって言ってんだよ。
そんな1ミリ秒も差がでないようなことのために
コードを複雑にするなよ。
複雑なコードというのは開発している間
ずっと違いを感じることになるんだぞ?
>>283
HTMLObjectElementとか?
HTMLObjectElementとか?
一般的にキャッシュなんて言うものはベンチマークをしてからやるもの。
キャッシュのためにコードを増やすのはちょっとの事に
見えるかもしれないが見通しが悪くなる。あとから
修正する必要がでたとき余計なコードがあると面倒になる。
一行、二行コードが増えることが問題じゃない
メンテナンス性が落ちるということが問題。
だから、キャッシュしたほうが早くね?なんか良くね?なんて
程度の考えなら、やらないほうが何倍も良い。
キャッシュのためにコードを増やすのはちょっとの事に
見えるかもしれないが見通しが悪くなる。あとから
修正する必要がでたとき余計なコードがあると面倒になる。
一行、二行コードが増えることが問題じゃない
メンテナンス性が落ちるということが問題。
だから、キャッシュしたほうが早くね?なんか良くね?なんて
程度の考えなら、やらないほうが何倍も良い。
うん。効率が違うだけ。
それはJavaScriptでやれることは
C言語でもアセンブラでもやれると言ってるようなもの。
重要なのは、できるかどうかではなく効率。
それはJavaScriptでやれることは
C言語でもアセンブラでもやれると言ってるようなもの。
重要なのは、できるかどうかではなく効率。
枠組みを自分で作ればいい。世界でたった一つフレームワークさ。クロスブラウザで。
>>292
質問者がパフォーマンスを気にしているようだったので>>291を推奨しただけで、キャッシュしないならそれでいいと思う。
原理的にはキャッシュすることで速くなるはずだからキャッシュが無意味には同意できないが。
付け加えるなら jQuery(function($) { は不要。
jQuery(function($) { はキャッシュする為に書いたのであってキャッシュしないのなら DOMContentLoaded を待つ必要はない。
キャッシュの必要性は質問者が判断する事なので口を挟むつもりはないが、そこまで細かなパフォーマンス差を気にするようならグローバル変数を避けるべきだし、ネイティブ実装の関数を使うべきだとは思った。
拘るなら徹底的に拘れといいたい。
「何となく」という理由でパフォーマンス差が気になるようなら大した差はないから気にするな、ってのは同意。
せいぜい同じ関数内で同じ要素を二度呼ぶ場合にローカル変数に格納するといいぐらいか。
というか、パフォーマンスが気になるなら質問者が自分でベンチマークをとるべきなんだよな。
自分にとって有意な差があるかを確かめる確かな手段が用意されているんだから、もっと積極的にテストしてもらいたい。
質問者がパフォーマンスを気にしているようだったので>>291を推奨しただけで、キャッシュしないならそれでいいと思う。
原理的にはキャッシュすることで速くなるはずだからキャッシュが無意味には同意できないが。
付け加えるなら jQuery(function($) { は不要。
jQuery(function($) { はキャッシュする為に書いたのであってキャッシュしないのなら DOMContentLoaded を待つ必要はない。
キャッシュの必要性は質問者が判断する事なので口を挟むつもりはないが、そこまで細かなパフォーマンス差を気にするようならグローバル変数を避けるべきだし、ネイティブ実装の関数を使うべきだとは思った。
拘るなら徹底的に拘れといいたい。
「何となく」という理由でパフォーマンス差が気になるようなら大した差はないから気にするな、ってのは同意。
せいぜい同じ関数内で同じ要素を二度呼ぶ場合にローカル変数に格納するといいぐらいか。
というか、パフォーマンスが気になるなら質問者が自分でベンチマークをとるべきなんだよな。
自分にとって有意な差があるかを確かめる確かな手段が用意されているんだから、もっと積極的にテストしてもらいたい。



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [100%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.133 + (1001) - [97%] - 2018/6/8 10:45
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.117 + (1009) - [97%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.123 + (966) - [97%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [97%] - 2015/4/27 23:30
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
トップメニューへ / →のくす牧場書庫について