+ JavaScript の質問用スレッド vol.140 +
レス数が950を超えています。1000を超えると書き込みができなくなります。
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください
■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」から解離した議論はよそでやること。
■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
■前スレ
+ JavaScript の質問用スレッド vol.139 +
https://mevius.5ch.net/test/read.cgi/hp/1555750241/ >>845
そのとおり
理解しててもしてなくても、セミコロン付けると発生率が下がるのよ 結論:
絶対にミスしないウソつき以外にはセミコロン省略は使えない >>851
セミコロン必須にすると、タイプミスや修正漏れが減る根拠を教えて下さい! >>849
関係あるよ
var a = []
(function () {})() ←タイプミス セミコロン関係ない、「ミスをしないからミスしにくい手法など気にする必要はない」理論に持っていったのはセミコロン省略おじさんのほう 下手なminifierだとASIを認識しなくてバグるよ >>853
ごめん発生率はASIによるバグの発生率だったわw 対してセミコロン省略派の詭弁テクはなかなかのものがある。
いつも屁理屈言い訳ばかりしてるから上達したのだろう。 セミコロン付けときゃ余計なバグの心配もないのに
なんでそんな拘るかね┐(´-`)┌ヤレヤレ 総括すると、こういうことらしい
理解した「つもり」になってる奴はセミコロン必須にしろ var a = []
(function(a){
console.log(a)
})(1)
//=> [] is not a function なし派はメリット一つも言わないんだよなー
理解しろ理解しろ理解したらバグは起こらない!
いやそれでメリットは? >>865
セミコロンなくてスッキリしてていいな!
今度からそう書くわ! 結論
ASIの仕様に詳しくなりたい人は、セミコロンを省略しよう!
理解が浅いとバグっちゃうから、スリル満点だぞ! >>866
>>666
理解しろ派は省略派ではなかったろ
読解力を身に着けた方がいい セミコロン必須派ってなんでこんなに気持ち悪いんだろ
jQuery房と同質のものを感じるわ いや理解する必要があるのは省略派だろ
頭沸いてんのか 内容に反論できなくて結局人格否定に走るしかないのねw
哀れみw めりっと
・ASIの仕様に詳しくなれる
デメリット
・意図しない関数呼び出し
var a = []
(function () {})() //=> [] is not a function
・意図しないreturn文
return
a + b
・ダサいスタイル
;(function () {...})()
![1,2,3].map(...) >>873
>>797で再指摘されてんのに、注意力散漫すぎだろ ASIの仕様を実践できるのはセミコロン省略派だけ!
君もセミコロン省略派になって、セミコロン省略スタイルでしか役に立たない知識を身に付けよう! むしろ、セミコロン必須のメリットが突っ込みどころ多すぎた ![1,2,3].map(...)
これ全然直感的じゃないよなw
もうセミコロンさえなければ何でもいいという執念を感じるw つける派のメリット
>>796で書かれているとおり
デメリット
つけない派の根拠0の執拗な攻撃に遭う 「文末にセミコロンなんて付けたくない! 死んでも付けないぞ!」
つ >>865
「ぶ、文頭ならおk」
なんでや… >>883
そりゃ俺らの言葉なんかより権威ある出所からのお言葉なら大満足でしょ ☆セミコロン占い☆
セミコロンを省略しちゃうあなたは見た目に騙され本質が見えないタイプ。
プログラミング言語はRubyがお似合いかも!? >>885
そして、別の権威者が反対の事を言い出したら、意見を100%反転させるのだな 今時、コーディング規約を思考停止で守ってる奴は珍しくない
意味を分かってないから、タイプミスや修正漏れは日常茶飯事 >>887
まあ言うてgithubシェアNo.1ですから 必須派ワー必須派ワー
相手にケチつけてばかりで何もメリットを語れない省略派w
大脳新皮質も省略してしまったのだろうか?w let i = 10
do
console.log(--
i
)
while (i)
こんなのアリなのか
初めて知った ■セミコロン必須派の主張
- 同じ文章を何度もコピペ
- 「つもり」を後付け
- 誤認によるセミコロン省略は「タイプミス」
- 作業工程を理解しても「タイプミス」「修正漏れ」「minifyによる圧縮」のミスは起きる
- セミコロン必須でも「タイプミス」「修正漏れ」「minifyによる圧縮」のミスは減る
- 作業工程も仕様も理解していてもミスるからセミコロンはつけよう
- 立証責任を放棄して相手に説明要求
- 答えを何度もはぐらかす
- ID:lh1CUoFSと省略派の区別がつかない 元々セミコロンがある前提でスタートしたJavaScript
ASIはつけ忘れた時の補完用でしかないとは作者の言葉だ
セミコロンが嫌なら別の言語に行くべきだ i = 10; do console.log(--i); while (i)
i = 10; do console.log(--i); while (i) i = 10; do console.log(--i); while (i)
はokで
i = 10 do console.log(--i) while (i)
はエラー、なのか const f1 = function () { console.log(1) } const f2 = function () { console.log(2) }
も
f1() f2()
もエラー、と const a = 1
2
console.log(a)
はokで
const a = 1 2
とか
const a = 1
2 console.log(a)
とか
const a = 1 console.log(a)
とかはエラー、か このようにセミコロンを付けるとこんな気持ち悪い書き方ができます。 minification 絶対にしないことが保証されているなら
セミコロンは省略しまくって良いんだろうね minificationは関係ない。なりすまし工作乙。 実際はセミコロン省略向けLintの設定もあるんだし
省略したからと言ってなにか問題になることはないよね これもう宗教論争だからね
善悪二元論でやりあってるうちは永遠に決着しないよ >>907
if ( condition )
// do something
なら問題ないよー
セミコロンの有無での差は、これから確認してみるね 有名どころだとBootstrapがセミコロン省略派
よって、省略しても大規模プロジェクトできるのは証明済
好きにすりゃいいと思う >>905
一部の mifniiier だとエラーになる可能性があったようだけど
今は全然問題ないの? Bootstrapを大規模っていうのはちょっと違うかな?
まあいいや、とにかくminifyも問題ないので
宗教論争してもしょうがないね
自分はセミコロンなんて基本prettierに打ってもらえばいいじゃん派です あ
先日の integer 問題ですが
console.log(Number.MAX_SAFE_INTEGER)
とかが参考になって、整数どうしの演算でも相応の範囲で誤差がでないっぽい…?
「拡張倍精度浮動小数点数」とか「四倍精度浮動小数点数」だと話が変わるっぽい…?
正確な所は今から調べるんで、妙なことを書いてたらごめんなさい >>904
"ES6" が何を指すかによるんじゃないかなあ…?
「どういう機能を使い、どういうモノは避ける」みたいなのが示されれば、具体的な話も出来るかも
極論 IE11 でも「ES6 の範囲のだけど IE11 で問題ない」モノなら… あるテキストをテキストエリアに入力
それを.element1.value で取得して整形
整形したテキストを element2.textContent で別のテキストエリアに出力
てのをやってる。
ここまではうまく出来た。
で、出力用のテキストエリアのテキストを、JSからじゃなくて、キーボードとか普通の方法で一度変更したりすると
その後JSから .textContentを使って出力ができなくなる。
これどうして?回避方法ある? textareaの書き換えなら、textContentではなくvalueじゃないのか?
https://jsfiddle.net/8e64dmr7/ >>917
value でできました。
最初 value でやってたけど出来ないからtextContentにしたんだけど
なんでだろう…。
最初はボックス一つでインプットボックスにアウトプットしてたからなのかな? >>914
JSのNumber基本数値はDoubleなんだから
Doubleで整数が1刻みで表せる値の間に計算結果が収まる限り誤差は出ない
それかNumberの代わりにBignumを使うと良い >>919
御返答、ありがとうございます。
Chrome 75 系では
console.log(typeof 1152921504606846976n)
は bigint でした。
MDN では Firefox 68系で BigInt のサポートが始まる予定と書かれていますが
ベータ版で確認してみるのも手…なのでしょうか
なにぶん今 Windows8.1 なので、カナリア EDGE は…他に影響ないなら使ってみても良い…? 必要なら躊躇せず使えばいい
もしくはwith-proxyでも実装は大変だがスマートにかける
それか面倒くさいbigint系ライブラリで妥協するか ぐぐるとjsfiddleをvimモードで操作できるってかいてるけど
vimなんて選択肢keymapにないけどどういうこと? DOMSubtreeModifiedが非推奨とのことですがどのように書き換えたら良いでしょうか?
<div contenteditable></div>
<div contenteditable></div>
document.querySelectorAll( "[contenteditable]" ).forEach( function( value ) {
value.addEventListener( "DOMSubtreeModified", function( event ) {
console.log( value.innerText )
});
}); 残しといていいんじゃない?
MutationObserver使えるブラウザの時だけ使うようにすれば document.querySelectorAll("[contenteditable]").forEach(node => {
new MutationObserver(records => {
console.log(node.innerText);
}).observe(node, { childList: true, subtree: true });
}); 質問です
同一平面上に散るn個の点の
他の点との距離を全て計算したいんですが
どうすると計算回数少なくなりますかね? WebGLを利用してマトリックス演算するのが最も速い 誘導されて来ました。
JavascriptでDataTablesが使われているときに
左上のselectをTampermonkeyから自動でselectedにしても
表が更新されません。
どうすればいいのでしょうか。 ・特定のイベントを起こす
・スクリプトに介入して関数を実行する
・今ある表は消して自分で表を作る 初心者の質問ですみません
スクリプト側から「今ブラウザが(どの程度)アイドル状態か」を知る方法ってどんな手があるでしょうか?
タブを開いている最中(読み込んでいる最中)だとか、CPU負荷だとか色んな指標がありますが、
少なくとも今時分のタブだけじゃなく、ブラウザ全体での負荷量や作業量が知りたいのですが。 いちサイトのスクリプト風情が、ユーザー様のブラウザのリソース情報をぶっこ抜きたいという話? >>934
スクリプトからは自分の情報しか見れません。
他の情報は見れたら困る。絶対禁止。 へー、どうやってスクリプトから自分の情報見んだよ。書いてみろよ。 >>934
タブ割当メモリを見る(他のタブにも影響される)
performance.memory (.measureMemory策定中)
CPUの稼働状況を測る
performance.profile()
表示負荷を書けたくない描画は
requestPostAnimationFrame
アイドル中に処理がしたければ
requestIdleCallback
システムがロックされていたり、ユーザーのアイドル状態を検知するには
IdleDetector >>938
ありがとうございます
まさにrequestIdleCallback が目的のことに使えそうでした
急ぎではない処理を、ブラウザの他の重い作業(他のタブの作業やブラウザアドオン等)の邪魔をせずに始めたい
(そうしないとブラウザが果てしなく重くなり自分にとっても操作が緩慢になるだけなので)という要求があったのですが
こういう機能がついたということは他の人にとってもこれが欲しい状況はあるあるだったのでしょうね。
それにしてもこういう便利な機能を網羅的につらつら読んで知っていける本ってあるのでしょうか >>939
とりあえずここでも見たら?
https://www.chromestatus.com/features
HTML5ムーブメント時代からの重要点が1500項目くらいにまとまってるので
HTML、HTML5の基本を勉強してこれを全部読み、さらに興味があるものを深掘りするのが良いと思う 質問です(初心者です)
{(ストレージなど)を読み、加工して、書き込む}、という一連の処理部分があるとします、
そこを実行してる時に他の同類の処理が並行して走ると、ストレージの加工の前後関係が崩れてしまうという時に
{}内の動作だけは他の(タブやスレッドの?)処理を止めたい、割り込まれたくない、という時はどうしたらいいんでしょうか? >>941
一連だけど同期的じゃないんだよね
ほぼ同期的ならIDBでwriteモードで開けば
その間は他はwriteモードで開けない
汎用的にやるならLock APIを使って皆で管理する DBに制御する機能が無いなら
皆でルールを守って使うということになる ユーザからの入力文字数を一定以内に制限する必要があるのですが、
CSSで使える色名は何文字にするのが良いでしょうか?
rebeccapurpleのようにいきなり色んな理由で長名の色が入る事があるのではないかと危惧しています。
かと言って合理的で最小限の数値としてその数字を選んだ根拠を示さないと行けないので十分余裕を持って50文字とか、ちょっとキリ良く20文字位にする的な決定はできません。 >>945
LineモバイルのID入力欄はこんなかんじ
<input type="text" name="loginAccount" class="md01InputTxt FnRequired FnOneByteAlphabetNumeric FnMin FnAllowEnterToGo"
maxlength="20" minlength="6" placeholder="ログインID" value="" /> >>945
> CSSで使える色名
hex強制で6文字とか <input type="color">じゃダメなんですか? hexだと "6" だな
16進数強制で最大6文字(だめか) レス数が950を超えています。1000を超えると書き込みができなくなります。