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

みんなの評価 :
レスフィルター : (試験中)
>>191 こんな感じでやればいいと思う
var MS_PER_DAY = 24*60*60*1000
var tid = -1
var snoozeTimes = 5
function setAlerm(h, m) {
clearTimeout(tid)
var d = new Date, n = +d; d.setHours(h); d.setMinutes(m)
tid = setTimeout(playAlerm, (d - n + MS_PER_DAY) % MS_PER_DAY, snoozeTimes)
}
function playAlerm(sn) {
new Audio('alerm.mp3').play()
if (sn) tid = setTimeout(playAlerm, 5 * 60 * 1000, --sn)
}
stopElem.onclick = function () { clearTimeout(tid) }
>>196
indexOfでOK
というか変に凝るのは良くない
var MS_PER_DAY = 24*60*60*1000
var tid = -1
var snoozeTimes = 5
function setAlerm(h, m) {
clearTimeout(tid)
var d = new Date, n = +d; d.setHours(h); d.setMinutes(m)
tid = setTimeout(playAlerm, (d - n + MS_PER_DAY) % MS_PER_DAY, snoozeTimes)
}
function playAlerm(sn) {
new Audio('alerm.mp3').play()
if (sn) tid = setTimeout(playAlerm, 5 * 60 * 1000, --sn)
}
stopElem.onclick = function () { clearTimeout(tid) }
>>196
indexOfでOK
というか変に凝るのは良くない
>>196
何が速いかは一般的に言えない
例えば値をキーにすれば後々の参照は速くなるけど、書き込み時は遅くなるし、その他手間もかかる
順序は大切なのか、とか数値だけなのかとかでも手段は変わる
少なくとも連想配列にする方法は速いかもしれないが良い方法ではない
パフォーマンス上深刻な問題が出て初めて検討するようなこと
indexOfは速くはないかもしれないが良い方法だよ
まあES6のSetが満足に使えれば一番スマートなんだけどね
何が速いかは一般的に言えない
例えば値をキーにすれば後々の参照は速くなるけど、書き込み時は遅くなるし、その他手間もかかる
順序は大切なのか、とか数値だけなのかとかでも手段は変わる
少なくとも連想配列にする方法は速いかもしれないが良い方法ではない
パフォーマンス上深刻な問題が出て初めて検討するようなこと
indexOfは速くはないかもしれないが良い方法だよ
まあES6のSetが満足に使えれば一番スマートなんだけどね
PUREっていうヤホー謹製のCSS Framework勉強中だけどかなりいい感じ
BootstrapでjQueryが使われてるようにPUREにはYUIが使用されてる
YUIって今まで知らなかったんだけど、jQueryと比べてどんな違いがあるんだろ
jQueryの方がデザイナー向け、YUIが技術者向けと解説してるブログもあった
BootstrapでjQueryが使われてるようにPUREにはYUIが使用されてる
YUIって今まで知らなかったんだけど、jQueryと比べてどんな違いがあるんだろ
jQueryの方がデザイナー向け、YUIが技術者向けと解説してるブログもあった
jQueryも$(".class")とかやるとめっちゃ遅くなるから
大体理解しとけばそれなりに
大体理解しとけばそれなりに
なんとなくchromeのJS速度が遅くなった気がします
ドラッグにモッサリ感が出てきたような
そんな感じしませんか?
ドラッグにモッサリ感が出てきたような
そんな感じしませんか?
>>208
ドラッグとJS速度の関係性について詳しく
ドラッグとJS速度の関係性について詳しく
>>196
レガシーブラウザは非サポートだけどArray.some()というずばりのメソッドがあるよ
レガシーブラウザは非サポートだけどArray.some()というずばりのメソッドがあるよ
改行が\n以外になるブラウザってありますか?
たとえば\r\nとか\rとか
たとえば\r\nとか\rとか
>>213
例えばテキストエリアの場合
内部的なデータは違うかも知れんが入力されたテキストが
js 側からどう見えるかなら
FF はOS関係なしに問答無用で \n に正規化?
IE だけ 9 までは \r\n で IE10 は \n ?
らしいが、
手入力で改行を入力した場合
\r 入りのテキストをコピペした場合
\r\n 入りのテキストをコピペした場合
\n 入りのテキストをコピペした場合
\r\n と \n と \r が入り乱れたテキストをコピペした場合
でも違ってくるかもしれない
例えばテキストエリアの場合
内部的なデータは違うかも知れんが入力されたテキストが
js 側からどう見えるかなら
FF はOS関係なしに問答無用で \n に正規化?
IE だけ 9 までは \r\n で IE10 は \n ?
らしいが、
手入力で改行を入力した場合
\r 入りのテキストをコピペした場合
\r\n 入りのテキストをコピペした場合
\n 入りのテキストをコピペした場合
\r\n と \n と \r が入り乱れたテキストをコピペした場合
でも違ってくるかもしれない
>>212
それは範囲をもたせて当てはまる値の存在を知りたい時に使うもの
厳密等価の値があるかを調べるのにはあまり適さない
>>213
textContentから取得した文字が\r\nとかはブラウザ関係なく普通にありえるよ
ただしtextareaのvalue経由で扱う値では\n、\r、\r\nは\nに置換されることになってる
http://www.whatwg.org/specs/web-apps/current-work/#concept-textarea-api-value
ただ仕様の怪しい物もあって、例えばalertの仕様では
「例えば\nで段落分けすることを含む、高度な表現をサポートすることが期待される」としかされてない
実装はChはJSの「改行文字4種」で改行して、Fxは\nだけでするとかバラバラ
「改行文字4種」とは\nと\rと\u2028と\u2029のこと、それに\r\nを加えた5つをJSでは改行のトークンとして扱うことになってる
(だから例えば"1\r1"は11に見えるかも知れないけどeval("1\r1")は1になる)
でも基本的にHTMLのNewlinesの定義に従うべきだとするなら、\rと\nと\r\nを1改行と扱うのが適当だと思う
とすると、Fxでは\rのサポートが足りてないし、Chでは\r\nを2改行として表示してしまうのが良くない
また厳密に言うとalertはただの文字列ではなくメッセージを表示するものだから、ただの改行ではなく段落分けされる方が好ましい
それは範囲をもたせて当てはまる値の存在を知りたい時に使うもの
厳密等価の値があるかを調べるのにはあまり適さない
>>213
textContentから取得した文字が\r\nとかはブラウザ関係なく普通にありえるよ
ただしtextareaのvalue経由で扱う値では\n、\r、\r\nは\nに置換されることになってる
http://www.whatwg.org/specs/web-apps/current-work/#concept-textarea-api-value
ただ仕様の怪しい物もあって、例えばalertの仕様では
「例えば\nで段落分けすることを含む、高度な表現をサポートすることが期待される」としかされてない
実装はChはJSの「改行文字4種」で改行して、Fxは\nだけでするとかバラバラ
「改行文字4種」とは\nと\rと\u2028と\u2029のこと、それに\r\nを加えた5つをJSでは改行のトークンとして扱うことになってる
(だから例えば"1\r1"は11に見えるかも知れないけどeval("1\r1")は1になる)
でも基本的にHTMLのNewlinesの定義に従うべきだとするなら、\rと\nと\r\nを1改行と扱うのが適当だと思う
とすると、Fxでは\rのサポートが足りてないし、Chでは\r\nを2改行として表示してしまうのが良くない
また厳密に言うとalertはただの文字列ではなくメッセージを表示するものだから、ただの改行ではなく段落分けされる方が好ましい
>>212
Array#indexOf で遅いといっている人に Array#indexOf より遅い Array#some を薦めるのは…。
Array#indexOf が標準的な書き方で最適だと思うが、関数コストが重いと感じる環境なら for 文で回せばいいと思う。
最も、そこまでパフォーマンスに不満がある状況なら実装方法を変えたほうがいいかもしれないが。
Array#indexOf で遅いといっている人に Array#indexOf より遅い Array#some を薦めるのは…。
Array#indexOf が標準的な書き方で最適だと思うが、関数コストが重いと感じる環境なら for 文で回せばいいと思う。
最も、そこまでパフォーマンスに不満がある状況なら実装方法を変えたほうがいいかもしれないが。
contenteditable=trueで
スペースを入力した時のタグ化のアルゴリズムはどういうものでしょうか
必ず に変換する、だと思っていたのですが、違うようです
http://jsbin.com/EzaloQO/1/edit
ここでスペースを入力すると、コンソールにhtmlソースを出力するので確かめられます
何故必ず に変換しないのかが分かればアルゴリズムも分かると思うのですが
スペースを入力した時のタグ化のアルゴリズムはどういうものでしょうか
必ず に変換する、だと思っていたのですが、違うようです
http://jsbin.com/EzaloQO/1/edit
ここでスペースを入力すると、コンソールにhtmlソースを出力するので確かめられます
何故必ず に変換しないのかが分かればアルゴリズムも分かると思うのですが
文末と行頭は に変換する
その後、連続するスペース二つはスペース+ に変換する
で、chromeの場合のアルゴリズムは再現できました。
しかし何故こんな変なやり方をしているのでしょうか?
その後、連続するスペース二つはスペース+ に変換する
で、chromeの場合のアルゴリズムは再現できました。
しかし何故こんな変なやり方をしているのでしょうか?
当分前にChromeのバグの件で質問した者ですが、4年かかってようやく直ったみたいです
http://code.google.com/p/v8/issues/detail?id=691
obj = { get fn() { alert(1) } }
obj.fn( alert(2) )
がChromeだけ2、1となってしまう例のアレです
あのときは分かって貰えず色々言われて"ちょっと"悔しい思いをしてましたが、まあ直ってほっとしました
"ちょっと"遅かったですけどね、、、
http://code.google.com/p/v8/issues/detail?id=691
obj = { get fn() { alert(1) } }
obj.fn( alert(2) )
がChromeだけ2、1となってしまう例のアレです
あのときは分かって貰えず色々言われて"ちょっと"悔しい思いをしてましたが、まあ直ってほっとしました
"ちょっと"遅かったですけどね、、、
[
{name:"a",ikioi:500},
{name:"b",ikioi:600},
{name:"c",ikioi:400}
]
こんな感じになっている(連想配列が要素として入っている)配列を
[
{name:"b",ikioi:600},
{name:"a",ikioi:500},
{name:"c",ikioi:400}
]
という感じに、勢い昇順でソートしたいのですが、
勢いを親配列のキーにする(配列の中に連想配列ではなく連想配列の中に連想配列にする)
以外で何か良い方法ありませんか?
{name:"a",ikioi:500},
{name:"b",ikioi:600},
{name:"c",ikioi:400}
]
こんな感じになっている(連想配列が要素として入っている)配列を
[
{name:"b",ikioi:600},
{name:"a",ikioi:500},
{name:"c",ikioi:400}
]
という感じに、勢い昇順でソートしたいのですが、
勢いを親配列のキーにする(配列の中に連想配列ではなく連想配列の中に連想配列にする)
以外で何か良い方法ありませんか?
>>223
Array.prototype.sort
Array.prototype.sort
>>222
Stephen Bourne乙。
Stephen Bourne乙。
>>224
ありがとうございます!
ありがとうございます!
divAの中にdivB,dicC,divDが入っていて
Aとそのコンテンツとの間にCSS適用用のdivを挟み込んだり、また抜いたりしたいです
どうするのが一番いいですか?
一番簡単なのは、innerHTMLをdivで挟んでまた代入、みたいなのだと思いますが
Aとそのコンテンツとの間にCSS適用用のdivを挟み込んだり、また抜いたりしたいです
どうするのが一番いいですか?
一番簡単なのは、innerHTMLをdivで挟んでまた代入、みたいなのだと思いますが
何がしたいのか解読に時間がかかったが、
わざわざ要素をその都度入れ替えするくらいなら、
最初からそのCSS適用用のdivとかやらを作っておいて、classの値を付け外しする方が良い。
わざわざ要素をその都度入れ替えするくらいなら、
最初からそのCSS適用用のdivとかやらを作っておいて、classの値を付け外しする方が良い。
>>228
その方法は既存ページに手を加えずに機能を付け足す場合には通用しない
その種の divA が大量にある場合も動的な方がいいかもしれない
>>227
=======挟み込む
var div1 = document.createElement('div');
var range = document.createRange();
range.selectNodeContents(divA);
range.surroundContens(div1);
=======抜く
range.selectNodeContents(div1);
divA.appendChild(range.extractContents());
divA.removeChild(div1);
その方法は既存ページに手を加えずに機能を付け足す場合には通用しない
その種の divA が大量にある場合も動的な方がいいかもしれない
>>227
=======挟み込む
var div1 = document.createElement('div');
var range = document.createRange();
range.selectNodeContents(divA);
range.surroundContens(div1);
=======抜く
range.selectNodeContents(div1);
divA.appendChild(range.extractContents());
divA.removeChild(div1);
残念ですがその方法はケータイのブラウザでは対応してないようです
世の中には簡易なJSに対応している数千万台のフィーチャーフォンがあることを意識して回答してくださいね
世の中には簡易なJSに対応している数千万台のフィーチャーフォンがあることを意識して回答してくださいね
textareaで秀丸のような矩形編集がやりたいです
既存ライブラリではないようなので自作しようと思いましたが
複数位置選択のやり方がわかりません
もしかして出来ないのでしょうか?
既存ライブラリではないようなので自作しようと思いましたが
複数位置選択のやり方がわかりません
もしかして出来ないのでしょうか?
>>230
なにそれ?シティーフォン?
なにそれ?シティーフォン?
var {hoge} = nanntara;
っていう風に変数名を{}で囲ってるのを見るんですが
これはどういう意味なんですか?
っていう風に変数名を{}で囲ってるのを見るんですが
これはどういう意味なんですか?
>>231
今のトレンドはcanvasで全部自前実装
今のトレンドはcanvasで全部自前実装
chromeにコントロールキーを押しながらクリックすると
カーソルを動かしてスクロールできる機能が付きましたが
この機能の名前は何ですか?
カーソルを動かしてスクロールできる機能が付きましたが
この機能の名前は何ですか?
たしかcanvasの仕様書にそんなことやめろとか
10個か20個かやたらしつこく理由が挙げられていたような…
10個か20個かやたらしつこく理由が挙げられていたような…
chromeでcontenteditbleを使った時
URLを書くと勝手にリンクされてしまいます
これを防ぐにはどうしたらいいでしょうか?
URLを書くと勝手にリンクされてしまいます
これを防ぐにはどうしたらいいでしょうか?
var MYAPP = MYAPP || {};
MYAPP.utilities = (function (){
var util = {};
util.start = function() {
console.log("スタート!");
};
util.end = function() {
console.log("おわり!");
};
return util;
})();
とした場合
MYAPP.utilities.start(); // スタート!
のように使えますが、
別のファイルからstart()やend()を呼びたいときは
var utilities = new MYAPP.utilities();
utilities.start();
って↓に書いてあるのですが、別ファイルから呼ぶって
http://takanamito.hateblo.jp/entry/2013/04/12/000357
どういったときを想定しているのでしょうか?
MYAPP.utilities = (function (){
var util = {};
util.start = function() {
console.log("スタート!");
};
util.end = function() {
console.log("おわり!");
};
return util;
})();
とした場合
MYAPP.utilities.start(); // スタート!
のように使えますが、
別のファイルからstart()やend()を呼びたいときは
var utilities = new MYAPP.utilities();
utilities.start();
って↓に書いてあるのですが、別ファイルから呼ぶって
http://takanamito.hateblo.jp/entry/2013/04/12/000357
どういったときを想定しているのでしょうか?
>>234
これわからないからどこで見たのか教えてください
これわからないからどこで見たのか教えてください
chromeでctrl+clickをした時、
スクロール状態になるのを防ぐ方法ありますか?
clickイベントをpreventしたら防げると高をくくっていましたが、
ctrlを押しながらclickすると、
clickイベント自体が発生しないようです
イベントがすべてスルーされた結果としてデフォルトの特殊機能が発動するのが
マトモな実装だと思いますが、そうはなっていないようで・・。
スクロール状態になるのを防ぐ方法ありますか?
clickイベントをpreventしたら防げると高をくくっていましたが、
ctrlを押しながらclickすると、
clickイベント自体が発生しないようです
イベントがすべてスルーされた結果としてデフォルトの特殊機能が発動するのが
マトモな実装だと思いますが、そうはなっていないようで・・。
http://jsbin.com/sejuj/1/edit
実証コードを書いていて気付きましたが
jsbinでoutputを一体型にしている時は、ctrl+clickの機能が発動しないみたいです
outputを別画面にした時は発動します
実証コードを書いていて気付きましたが
jsbinでoutputを一体型にしている時は、ctrl+clickの機能が発動しないみたいです
outputを別画面にした時は発動します
とんでもないことに気付きました
autoscrollとかいうエクステンションのせいでした・・
chromeのバージョンアップから現象が発生したので、
chromeのせいと思い込んでいました・・
スレ汚しすみません
googleも疑ってすみません
autoscrollとかいうエクステンションのせいでした・・
chromeのバージョンアップから現象が発生したので、
chromeのせいと思い込んでいました・・
スレ汚しすみません
googleも疑ってすみません



類似してるかもしれないスレッド
- + 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
トップメニューへ / →のくす牧場書庫について