元スレ+ JavaScript の質問用スレッド vol.115 +
JavaScript覧 / PC版 /みんなの評価 :
751 = :
内部関数を使うのじゃ
754 = :
>>746
関数の内容に依存するとしかいえません。
必須の引数を第一引数にはしますが、どちらが必須か判断できる情報が出てないので。
蛇足ですが、Function#length があるのでオプション扱いの引数なら仮引数は指定しません。
755 = :
>>746
どっちとかはないからDOMの操作と合わせてみるとかはどうですか。
var insertedElement = parentElement.insertBefore(newElement, referenceElement)
756 = :
ネストされたオブジェクト
hoge.moge.poge.page
にアクセスしたいですが、hogeの内容は不定で、
hoge.moge
などが存在する時もしない時もあるとします。
もし存在しない時に
if (hoge.moge.poge.page)
のような条件判定をすると、末端のpageの有無を調べる前にエラーになってしまいます
こういった複数階層のオブジェクトの属性をエラーを出さずに調べることの出来る
ライブラリみたいのありませんか?
757 = :
>>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); }
758 = :
ありがとうございます
ですがこれは例で、階層を構成するキーの名前や深さは毎回色々変わります
760 = :
便乗で質問なのですがtry catchでスルーしちゃだめなのですか
761 = :
>>759
ありがとうございます
自分もほぼ同じ処理を今書いたところでした・・
762 = :
例外は基本的に異常を目立つ方法で知らせるものなので
通常の範疇で発行するのは控えた方がいいと本に書いてありました
763 = :
例外を投げるんじゃなくてエラーをそのままにしておくので少し違いましたね
764 = :
>>761
プロパティアクセス演算子を ToBoolean で判定するより、in 演算子で判定する方が好ましいと思います
765 = :
>>760,762
例外を放置することになるので、特殊なケースを除いて出来るだけ避けるべきです
通常は例外が発生しないようにコードを組みます
766 = :
>>762,763,765
なるほど勉強になりました
ようはデバッグのときに使えということなのでしょうかね
767 = :
>>766
デバッグで try-catch は使いませんよ。
例外を回避したら、エラー不明でむしろデバッグできなくなります。
デバッグするなら例外は発生させるべきです。
そもそも、例外とは意図的に発生させるものです。
TypeError なら特定の型以外の引数は受け付けないという事。
ならば、関数呼び出しする前に typeof 演算子で型判定を入れれば例外を回避できます。
多くの場合はこのように実行前に回避できますが、中には関数呼び出しするまで例外条件を判定できないケースがあり、その場合に try-catch を使用します。
768 = :
広告を非表示にするアドオンに対抗するためのantiblockっていうのあるじゃないですか
これは広告を非表示にするアドオンを入れると
Please disable your なんちゃらってメッセージが出てページ内の表示をブロックされるんですが
このantiblockが生成する要素をconsoleから消してるんですが、消したらすぐにまたブロックの要素が表示されます
http://antiblock.org/?p=v3&demo
これってどういう仕組みになっているのでしょうか?
769 = :
>>768
要素の削除を検知する mutation event を利用しているっぽい
コードの中に
addEventListener("DOMNodeRemoved", ... )
がある
そのハンドラで削除された要素を再生成しているのだろう
770 = :
まじすか
クソうぜえっすね
どうにもならなそうですね
今は降伏することにします
771 = :
Chromeなら開発者ツールからコード直接編集できるだろ
772 = :
エディターやらIDEやらってなに使ってます?
773 = :
atom
774 = :
>>770
削除ではなく、非表示にしてみてはどうでしょう?
775 = :
>>750-752
ありがとうございます
内部関数で解決しました
776 = :
>>774
その手がありますね!ありがとうごじあます
777 = :
>>771
ページを移動するたびに手動で編集するのは堪えますw
778 = :
>>759
> if(obj instanceof Object){
これやって、一体何のメリットが有るんですか?
(注意 俺は無駄だと思ってる)
779 = :
最後のelseがあるからじゃない
780 = :
var xx=function(){}
ってする人はバカなんですか?
みにくいんですけど
781 = :
>>788
あー、それは俺も思う。
必要な場合はそれでいいけど、
普通は、function xx() {} であるべきだよな。
782 = :
どっちでもいいんでないの
後から変更することもあるから最初から
var xx=function(){}
にしとけば手間を省けるとか
エディタのシンタックス強調の設定を手抜きしたいとか
>>778
チェックしないと obj[name] がエラーになるやん
783 = :
>>780
変数が実体化されるタイミングが違う
784 = :
タイミングとはもっと詳しくおしえてください
785 = :
ぐぐれかす
786 = :
タイミングが違うのは判った上でだろ
787 = :
タイミングが違う事がわかってるなら「バカなんですか?」とバカな発言はしないだろ
788 = :
>>784
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/10_Execution_Contexts.html#section-10.1.3
安易に「バカなんですか?」なんて質問すると冷たい反応しか得られないから注意してね
789 = :
普通に考えるとタイミングが違うだけなら、var xx=function(){} と書くメリットがまったく感じられないんですがw
バカは言いすぎかもしれませんが、頭が悪いかなと思います
790 = :
>>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;
}
791 = :
>>789
まあお前はその程度だよ
792 = :
>>791
その程度のレスしかできないあなたもその程度
793 = :
変数に代入してるならそれを何度か使うんだろ
一度しか使ってないなら、何度か使う可能性があるのかもしれない
794 = :
>>789
どちらにしても小馬鹿にした態度は変わらないのね…
初めから結論が出ているなら質問しない方がいいと思うよ
通常は結論を保留するからこそ質問するものだけど、あなたの質問は逆に見えるからね
両者の違いを理解しない状態で一方を馬鹿と断ずるのは賢い選択とはいえないよね
795 = :
>>745
自己レス。漏れの勘違い
forEachは、順番に処理するんだね
for inが、順序不定だったか
796 = :
結局
var a = function(){}
と
function a(){}
のそれぞれの使い分けを詳しく説明できる人いないの?
797 = :
むしろ何が分からないのかが分からない
798 = :
既に説明されてるし、これ以上詳しく説明しようとも思わない
799 = :
あらたに判明した問題に対して
フラグを新設することで対応して
後から何やってるか分かりにくくなる現象の名前は何ですか?
800 = :
場当たり対応
類似してるかもしれないスレッド
- + 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
トップメニューへ / →のくす牧場書庫について