私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.115 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
var i=0;
function fun(){
if(i==0){
i++;
return fun();
}else{
return 999;
}
}
function fun(){
if(i==0){
i++;
return fun();
}else{
return 999;
}
}
>>726
Array#concat, Array#slice で index = 1 を除く配列を再構築し、Array#forEach で処理してはどうでしょう?
>>745
Array.prototype.forEach は 0 から昇順に処理していく仕様であり、処理順はランダムではありません。
別の仕様と勘違いしておられるのでは?
http://es5.github.io/#x15.4.4.18
Array#concat, Array#slice で index = 1 を除く配列を再構築し、Array#forEach で処理してはどうでしょう?
>>745
Array.prototype.forEach は 0 から昇順に処理していく仕様であり、処理順はランダムではありません。
別の仕様と勘違いしておられるのでは?
http://es5.github.io/#x15.4.4.18
>>746
関数の内容に依存するとしかいえません。
必須の引数を第一引数にはしますが、どちらが必須か判断できる情報が出てないので。
蛇足ですが、Function#length があるのでオプション扱いの引数なら仮引数は指定しません。
関数の内容に依存するとしかいえません。
必須の引数を第一引数にはしますが、どちらが必須か判断できる情報が出てないので。
蛇足ですが、Function#length があるのでオプション扱いの引数なら仮引数は指定しません。
>>746
どっちとかはないからDOMの操作と合わせてみるとかはどうですか。
var insertedElement = parentElement.insertBefore(newElement, referenceElement)
どっちとかはないからDOMの操作と合わせてみるとかはどうですか。
var insertedElement = parentElement.insertBefore(newElement, referenceElement)
ネストされたオブジェクト
hoge.moge.poge.page
にアクセスしたいですが、hogeの内容は不定で、
hoge.moge
などが存在する時もしない時もあるとします。
もし存在しない時に
if (hoge.moge.poge.page)
のような条件判定をすると、末端のpageの有無を調べる前にエラーになってしまいます
こういった複数階層のオブジェクトの属性をエラーを出さずに調べることの出来る
ライブラリみたいのありませんか?
hoge.moge.poge.page
にアクセスしたいですが、hogeの内容は不定で、
hoge.moge
などが存在する時もしない時もあるとします。
もし存在しない時に
if (hoge.moge.poge.page)
のような条件判定をすると、末端のpageの有無を調べる前にエラーになってしまいます
こういった複数階層のオブジェクトの属性をエラーを出さずに調べることの出来る
ライブラリみたいのありませんか?
>>756
var hoge = {};
if(hoge && hoge.moge && hoge.moge.poge && hoge.moge.poge.page) { console.log(hoge); }
hoge.moge = {}
if(hoge && hoge.moge && hoge.moge.poge && hoge.moge.poge.page) { console.log(hoge); }
hoge.moge.poge = {};
if(hoge && hoge.moge && hoge.moge.poge && hoge.moge.poge.page) { console.log(hoge); }
hoge.moge.poge.page = {};
if(hoge && hoge.moge && hoge.moge.poge && hoge.moge.poge.page) { console.log(hoge); }
var hoge = {};
if(hoge && hoge.moge && hoge.moge.poge && hoge.moge.poge.page) { console.log(hoge); }
hoge.moge = {}
if(hoge && hoge.moge && hoge.moge.poge && hoge.moge.poge.page) { console.log(hoge); }
hoge.moge.poge = {};
if(hoge && hoge.moge && hoge.moge.poge && hoge.moge.poge.page) { console.log(hoge); }
hoge.moge.poge.page = {};
if(hoge && hoge.moge && hoge.moge.poge && hoge.moge.poge.page) { console.log(hoge); }
ありがとうございます
ですがこれは例で、階層を構成するキーの名前や深さは毎回色々変わります
ですがこれは例で、階層を構成するキーの名前や深さは毎回色々変わります
>>756
構文的には
((( hoge || {} ).moge || {} ).poge || {} ).page
のようにするのが単純かな
しかし例えば hoge.moge が undefined でもオブジェクトでもない場合はエラーになる
より汎用的には
function getNested(obj, names){
// obj は根元のオブジェクト, names は名前の配列
for(var i = 0; i < names.length; i++ ){
if(obj instanceof Object){
obj = obj[ names[i] ];
} else if (obj === undefined){
return undefined;
} else {
??? // undefined でもオブジェクトでもない場合
}
}
return obj;
}
getNested(hoge, ['moge', 'poge', ...]);
構文的には
((( hoge || {} ).moge || {} ).poge || {} ).page
のようにするのが単純かな
しかし例えば hoge.moge が undefined でもオブジェクトでもない場合はエラーになる
より汎用的には
function getNested(obj, names){
// obj は根元のオブジェクト, names は名前の配列
for(var i = 0; i < names.length; i++ ){
if(obj instanceof Object){
obj = obj[ names[i] ];
} else if (obj === undefined){
return undefined;
} else {
??? // undefined でもオブジェクトでもない場合
}
}
return obj;
}
getNested(hoge, ['moge', 'poge', ...]);
例外は基本的に異常を目立つ方法で知らせるものなので
通常の範疇で発行するのは控えた方がいいと本に書いてありました
通常の範疇で発行するのは控えた方がいいと本に書いてありました
>>761
プロパティアクセス演算子を ToBoolean で判定するより、in 演算子で判定する方が好ましいと思います
プロパティアクセス演算子を ToBoolean で判定するより、in 演算子で判定する方が好ましいと思います
>>766
デバッグで try-catch は使いませんよ。
例外を回避したら、エラー不明でむしろデバッグできなくなります。
デバッグするなら例外は発生させるべきです。
そもそも、例外とは意図的に発生させるものです。
TypeError なら特定の型以外の引数は受け付けないという事。
ならば、関数呼び出しする前に typeof 演算子で型判定を入れれば例外を回避できます。
多くの場合はこのように実行前に回避できますが、中には関数呼び出しするまで例外条件を判定できないケースがあり、その場合に try-catch を使用します。
デバッグで try-catch は使いませんよ。
例外を回避したら、エラー不明でむしろデバッグできなくなります。
デバッグするなら例外は発生させるべきです。
そもそも、例外とは意図的に発生させるものです。
TypeError なら特定の型以外の引数は受け付けないという事。
ならば、関数呼び出しする前に typeof 演算子で型判定を入れれば例外を回避できます。
多くの場合はこのように実行前に回避できますが、中には関数呼び出しするまで例外条件を判定できないケースがあり、その場合に try-catch を使用します。
広告を非表示にするアドオンに対抗するためのantiblockっていうのあるじゃないですか
これは広告を非表示にするアドオンを入れると
Please disable your なんちゃらってメッセージが出てページ内の表示をブロックされるんですが
このantiblockが生成する要素をconsoleから消してるんですが、消したらすぐにまたブロックの要素が表示されます
http://antiblock.org/?p=v3&demo
これってどういう仕組みになっているのでしょうか?
これは広告を非表示にするアドオンを入れると
Please disable your なんちゃらってメッセージが出てページ内の表示をブロックされるんですが
このantiblockが生成する要素をconsoleから消してるんですが、消したらすぐにまたブロックの要素が表示されます
http://antiblock.org/?p=v3&demo
これってどういう仕組みになっているのでしょうか?
>>768
要素の削除を検知する mutation event を利用しているっぽい
コードの中に
addEventListener("DOMNodeRemoved", ... )
がある
そのハンドラで削除された要素を再生成しているのだろう
要素の削除を検知する mutation event を利用しているっぽい
コードの中に
addEventListener("DOMNodeRemoved", ... )
がある
そのハンドラで削除された要素を再生成しているのだろう
まじすか
クソうぜえっすね
どうにもならなそうですね
今は降伏することにします
クソうぜえっすね
どうにもならなそうですね
今は降伏することにします
>>770
削除ではなく、非表示にしてみてはどうでしょう?
削除ではなく、非表示にしてみてはどうでしょう?
>>774
その手がありますね!ありがとうごじあます
その手がありますね!ありがとうごじあます
>>771
ページを移動するたびに手動で編集するのは堪えますw
ページを移動するたびに手動で編集するのは堪えますw
var xx=function(){}
ってする人はバカなんですか?
みにくいんですけど
ってする人はバカなんですか?
みにくいんですけど
どっちでもいいんでないの
後から変更することもあるから最初から
var xx=function(){}
にしとけば手間を省けるとか
エディタのシンタックス強調の設定を手抜きしたいとか
>>778
チェックしないと obj[name] がエラーになるやん
後から変更することもあるから最初から
var xx=function(){}
にしとけば手間を省けるとか
エディタのシンタックス強調の設定を手抜きしたいとか
>>778
チェックしないと obj[name] がエラーになるやん
>>780
変数が実体化されるタイミングが違う
変数が実体化されるタイミングが違う
タイミングが違う事がわかってるなら「バカなんですか?」とバカな発言はしないだろ
>>784
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/10_Execution_Contexts.html#section-10.1.3
安易に「バカなんですか?」なんて質問すると冷たい反応しか得られないから注意してね
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/10_Execution_Contexts.html#section-10.1.3
安易に「バカなんですか?」なんて質問すると冷たい反応しか得られないから注意してね
普通に考えるとタイミングが違うだけなら、var xx=function(){} と書くメリットがまったく感じられないんですがw
バカは言いすぎかもしれませんが、頭が悪いかなと思います
バカは言いすぎかもしれませんが、頭が悪いかなと思います
>>778
objがプリミティブ値(Number | String | Boolean Null | Undefined)
かどうかを判定してると読めばいいんじゃない?
function getNested(obj, names){
var v = obj[ names[0] ];
/* nameの最後、またはプリミティブ値に達するまでobjを探る */
for (var i = 1; i < names.length; i++) {
if (! v instanceof Object) break;
v = v[ names[i] ];
}
return v;
}
objがプリミティブ値(Number | String | Boolean Null | Undefined)
かどうかを判定してると読めばいいんじゃない?
function getNested(obj, names){
var v = obj[ names[0] ];
/* nameの最後、またはプリミティブ値に達するまでobjを探る */
for (var i = 1; i < names.length; i++) {
if (! v instanceof Object) break;
v = v[ names[i] ];
}
return v;
}
>>789
まあお前はその程度だよ
まあお前はその程度だよ
>>791
その程度のレスしかできないあなたもその程度
その程度のレスしかできないあなたもその程度
変数に代入してるならそれを何度か使うんだろ
一度しか使ってないなら、何度か使う可能性があるのかもしれない
一度しか使ってないなら、何度か使う可能性があるのかもしれない
>>789
どちらにしても小馬鹿にした態度は変わらないのね…
初めから結論が出ているなら質問しない方がいいと思うよ
通常は結論を保留するからこそ質問するものだけど、あなたの質問は逆に見えるからね
両者の違いを理解しない状態で一方を馬鹿と断ずるのは賢い選択とはいえないよね
どちらにしても小馬鹿にした態度は変わらないのね…
初めから結論が出ているなら質問しない方がいいと思うよ
通常は結論を保留するからこそ質問するものだけど、あなたの質問は逆に見えるからね
両者の違いを理解しない状態で一方を馬鹿と断ずるのは賢い選択とはいえないよね
結局
var a = function(){}
と
function a(){}
のそれぞれの使い分けを詳しく説明できる人いないの?
var a = function(){}
と
function a(){}
のそれぞれの使い分けを詳しく説明できる人いないの?
あらたに判明した問題に対して
フラグを新設することで対応して
後から何やってるか分かりにくくなる現象の名前は何ですか?
フラグを新設することで対応して
後から何やってるか分かりにくくなる現象の名前は何ですか?
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.135 + (1002) - [97%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.125 + (1001) - [97%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.117 + (1009) - [97%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.105 + (1001) - [97%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.109 + (1001) - [95%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2022/11/29 16:30
- + JavaScript の質問用スレッド vol.126 + (348) - [95%] - 2023/1/12 17:00
- + JavaScript の質問用スレッド vol.100 + (1001) - [95%] - 2012/6/13 22:46
トップメニューへ / →のくす牧場書庫について