元スレ+ JavaScript の質問用スレッド vol.115 +
JavaScript覧 / PC版 /みんなの評価 :
1 = :
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。
回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合はhttp://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止ではありませんが、ライブラリスレで聞くとより回答を得やすいかもしれません。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
4 = :
■主要FAQ (全部はhttp://fiddle.jshell.net/vSqKr/33/show/ )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。
5 = :
■各種仕様 (http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
◆ Standard ECMA-262
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
http://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
8 = :
関数の中で関数を定義している場合
親関数が呼ばれるたびに子関数は再定義されるのでしょうか?
9 = :
onscrollハンドラが、スクリプトによるscrollでも反応します
しかし、タイミング的に反応して欲しくない時があります
一時的にハンドラを無効にするいい方法はないでしょうか?
10 = :
>>9の件ですが、bindFirstプラグインで別のハンドラを上に登録し、そこでイベントをstopし、
反応してほしくない期間が終わったらその蓋ハンドラを削除するというウルテクを思いつき
うまくいきました
もっといい方法はあるでしょうか?
11 = :
>>9
もっといいかどうかわからんが
その期間中ハンドラの中で条件分岐とか
removeEventListner+addEventListenerとか
別のハンドラでcapture+stopPropagationとか
これらの組み合わせなど
テクと言うほどでもない方法はある
12 = :
コールバック関数を使ったプログラミングでは
後で実行されるコードを先に書いたりして、すごく見にくくなります
コールバック関数の中で更にコールバック関数を使ったりすると更にごちゃごちゃになります
見やすくする方法はないでしょうか?
13 = :
ぼくもちょうどそれを質問しようとしたのでしりたいです
簡単なものは今までは↓の感じでやっていました
var _to = {};
_to.print = function(a) { console.log(a); };
_to.abs = function(a) { return Math.abs(a); };
function sum(a,b,callback,callback_name,callback2,callback2_name) {
return callback[callback_name](a+b,callback2,callback2_name);
};
sum(1,-3,_to,'print'); // -2
console.log(sum(1,-3,_to,'abs')); // 2
sum(1,-3,_to,'abs',_to,'print'); // 2
14 = :
>>12
あるよ。 「javascript 非同期ライブラリ」でぐぐれば
いろんな人が分かりやすく教えてくれてる。
>>13
君はまず、いいライブラリを使って見る必要があるね。
lodashとかピッタリだろう。
よく考えられて作られたライブラリは
どのような使い方をするのか勉強すれば
自分でも作れるようになるだろう。
15 = :
前スレ >996
エスケープの意味がわからないが、一般的に、
人が入力するデータは、間違いが多いから、
入力チェックや訂正をする
>>8
再定義ってどういう意味?
>>9
イベントを処理しないのなら、
ハンドラの冒頭で、即リターンすれば?
16 = :
質問なのかよくわからないんですが
JavascriptやjQueryにオススメのテキストエディタってありますか?
17 = :
どうみても質問です
18 = :
本当に
21 = :
個人的に「あれ?あの関数なんていったっけ?ti・・・ti・・・」→time()
って予測変換で教えてくれるのがあればいいなーって思ってます
22 = :
単語補完とかスニペットとかのキーワードでググると吉。
24 = :
うおおおおsublimetextっての調べてみたらコレは凄い
これです、こんなの探してましたありがとうございます
これでフリーだなんて世の中凄いものがあるもんですね
25 = :
IE6-11
Fire最新
Google最新
で動作する
文字サイズを変更した時のイベントをキャッチしてアラートだしたいのだがリファレンス見ても文字サイズ変更のイベントがのっとらん
このままでは
非表示のテキスト入りオブジェクトをクリエイトしたのち
セットタイムアウトで関数を何度も呼び出してして要素の高さが変わったらアラート
と言うことをしなければならない
なんかセットタイムアウトを使わない良い方法あるか?
もちろんセットインターバルもなしで
26 = :
そんなイベント聞いたことないな
多分ないよ
27 = :
配列で返ってきた返り値を直接スカラー変数に代入することはどうやってもできないでしょうか?
ES6では出きるそうですが、ES3で。
見通しが悪くなるから一時変数は減らしたいんですよね~
関数言語的アプローチもそういうところから来てるんですかね
28 = :
PCが時間とともに進化していくのは必然
ということはあらゆるコードは自動的に高速化していくということ
だとするならば、筋のいいコードとは、見やすく保守性の高いコードではないだろうか?
むろん何度も深いスコープの変数にアクセスするよりは、一度ローカル変数に代入した方が
見やすく保守性もあがるので、ローカル変数に代入するという方針は基本的には正しいが、
速度面で避けていた関数言語的アプローチも、保守性の面からは採用すべきかもしれない。
29 = :
>>26
やっぱ無いのかー
30 = :
>>16
http://webcre8.jp/use/software-editor-brackets.html
31 = :
ブラケットって少し前にこのスレに話題になった時に試したけど
sublimeをパクろうとして失敗したくそエディターじゃん
今はマシになったの?
32 = :
>>25
iframe in フレームのスクロール変化でどや?!
33 = :
setTimeoutで呼ばれた関数の中から
またsetTimeoutで同じ関数を呼ぶ
ということを繰り返したら、スタックは増加しますか?
setTimeoutで遅れて呼ぶので、スタックの増加はないと思っていたのですが
妙なかくつきがあり、もしかしてスタックが積まれすぎてるせいでは?と思ったのです
34 = :
>>33
setTimeout自体は何も評価せずスケジュールだけ組んで即時に戻るから
コールスタックは積まれない
かくつきは一般的にそのスケジュールが
何か他の処理よりも後回しにされている
または他の処理にブロックされていることを意味する
35 = :
>>34
やっぱり積まれませんよね
ありがとうございます
36 = :
>>32
フレームか
JSで扱ったこと無いわ
ちょっとググってみる
ありがと
37 = :
>>28
たしかにそうかも
LEGACY用の処理とか、無駄なのがいつまでも残ってたりするし
いまだに//NN4とかw
38 = :
???
古い時代に書いたコードの話とは関係ないんだが
むしろ、そういうのを一々正すほうが無駄だろ
お前は過去に書いたコードを永久にサポートできるのか?
それともお前の知り合いに未だにNN用コードを新規で書く奴が要るのか?
それを一々気にするのが一番の無駄だが
39 = :
ふむふむ
前の会社が運営していたサイトはメンテもしないで思いまんま使うと
なるほど、それなら楽でいいですね
40 :
運営とコードメンテは普通別会社か別部署じゃね?
少なくとも一人の開発者がメンテするかどうかまで決める訳じゃないし関係ないことだ。
41 = :
保守を別会社にやらせるのは時代遅れ。
いまは保守を抱えることで、顧客が気がつく前に改善点を見つけ出し、
そこから能動的に提案活動につなげるのが主流だよ。
43 = :
lodashに_.isUndefinedがありますが
それならundefinedを返す_.undefinedみたいな関数も必要じゃないですか?
44 = :
>>43
標準で用意されている機能をライブラリで用意する必要はない
45 = :
それならisUndefinedやisNullもいらないのでは
46 = :
>>45
はっきり言って不要だと思うが、リファレンスを読む限りではis系を全て揃えるポリシーがあるのだろう
また、Lo-Dashは定数を返すメソッドorプロパティを作らないポリシーなのだろう
undefined だけでなく、NaN, infenety..を返す機能も用意されていない
http://lodash.com/docs
正直、開発ポリシーを開発者ではない俺に聞かれても困るんだが
そんなことは作者に直接提案するなり、質問するなりすべきではないのか
47 = :
定期的にこっちでlodashの話題振ってるのは前暴れたあれにしか見えん
48 = :
idの配列と、idをキーに持ったオブジェクトがあります
オブジェクトから、配列に含まれるキーのものだけを抜き出してあらたなオブジェクトを作るのに、
lodashを使い
_(idList).mapValues(function(id) {
return object[id];
});
という書き方に辿り着きました
これ以上シンプルな書き方はありますか?
50 = :
なんと
ありがとうございました
ちなみに上記の例はmapValuesではなくmapで、
そして_(idList)のようなオブジェクト指向風の書き方だと結果もlodashオブジェクトになってしまうという
不具合がありました
類似してるかもしれないスレッド
- + 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
トップメニューへ / →のくす牧場書庫について