+ JavaScript の質問用スレッド vol.133 +

■ このスレッドは過去ログ倉庫に格納されています
2018/04/16(月) 00:09:43.45ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
2018/04/16(月) 00:11:27.94ID:???
■FAQ

◆開発者ツール(Developer Tools)の基本的な使い方
 ▼諸注意
  - 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
  - Edge- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
  - Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
  https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html
 ▼要素を検証
 1. ページ上で右クリックして [要素を検証]
 2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
 3. 右側のサイドバーから知りたいステータス名のタブを選択する
   - [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
   - [Computed] タブ … CSSプロパティの算出値を表示("font-size: 1em" を指定していても算出後の "*px" で表示される)
   - [Properties] タブ … 選択したDOMノードのプロパティを表示
 ▼コンソール
 1. JavaScript コード上で console.log('Hello, World!'); と入力
 2. [Ctrl] + [Shift] + [I] キー(IE は [F12])で開発者ツールを開き、[Console] パネルを開く
 3. [Console] パネルに "Hello, World!" と表示される
 (※window.alert() は String 型に変換されますが、console.log() は Object 型の中身をそのまま表示してくれます。)
2018/04/16(月) 00:14:08.44ID:???
■FAQ(続き)
◆JavaScriptの実行速度
JavaScriptの速度は「ブラウザ名」「ブラウザのバージョン」「PCスペック」に依存します(ブラウザのバージョン毎に最適化具合が異なります)。
速度の疑問解消の為に http://jsperf.com/ (githubのアカウントが必要です)にコードをUPしてブラウザ毎に速度計測する事を推奨します。

例外として、仕様における理論上の速度が明確になっている場合があります。
例えば、正規表現によるマッチング処理を考えた場合、「RegExp#test > RegExp#exec > String#match」は ES5 仕様で保証(要出典)されています。
ES5 仕様において RegExp#test が最も処理数が少なく、String#match が最も処理数が多いことが明確だからです。
ブラウザによっては RegExp#test の最適化が十分でなく、String#match の最適化が RegExp#test より十分であれば逆転する可能性はありますが、各メソッドの最適化が一律であればこの前提が崩れる事はありません。

■各種仕様
◆ Standard ECMA-262
http://bclary.com/2004/11/07/ (ECMAScript 3 HTML版)
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://tsofthome.appspot.com/ecmascript.html (ECMAScript 5.1 和訳)
http://www.ecma-international.org/ecma-262/6.0/ (ECMAScript 6 / ECMAScript 2015)
http://kangax.github.io/compat-table/es5/ (ECMAScript 5 compatibility table)
http://kangax.github.io/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 和訳)
2018/04/16(月) 00:14:35.36ID:???
■各種仕様 (続き)
◆ 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)
https://developer.mozilla.org/ja/docs
◆ MSDN Library
https://msdn.microsoft.com/en-us/library/ie/hh828809 (Internet Explorer API)
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)
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
2018/04/16(月) 00:15:00.85ID:???
テンプレは以上です
6Name_Not_Found
垢版 |
2018/04/18(水) 02:12:29.74ID:E7XUBbQg
PHPでやってみたが

intval('123'); # 123
intval('0123'); # 123
intval('abc'); # 0。0じゃないだろw
intval('abc123'); # 0。0じゃないだろクソが
intval(''); # 0。 shine

JavaScriptだと数値じゃないものはNaNとなるから
0と区別できるが、PHPだと区別できないじゃないか

NaNを0にしたければ parseInt('') || 0 とすればいいだけだし
2018/04/18(水) 02:31:05.60ID:???
>>6
そんなめんどくさい書き方しないといけないjavascript
2018/04/18(水) 02:36:46.77ID:???
数字文字列か否か厳密な区別が欲しいならphpならctype_digit()を使えばいい
キャストしたいときシンプルで短い(int)$hogeで済む
2018/04/18(水) 03:42:24.64ID:???
>>7
面倒くさい?

数値に変換できない文字が0になるんですけど、
どう対処すれば良いんですか?

こっちのほうがめんどくせーだろw
2018/04/18(水) 03:43:28.79ID:???
自分は面倒くさい時は1で割るけど邪道なん?
''123"/1 → 123
"0123"/1 → 123
"abc"/1 → NaN
"abc123"/1 → NaN
2018/04/18(水) 03:44:32.88ID:???
>>8
ctype_digit()ってbool返してくるんですけど?w

ctype_digit($hoge) ? intval($hoge) : NULL

とか書くんですかね?w
2018/04/18(水) 03:49:16.53ID:???
NaNとかなんなんですか
2018/04/18(水) 03:49:40.58ID:???
なんで必要なんですか
2018/04/18(水) 03:51:42.69ID:???
キャストって何?
2018/04/18(水) 03:59:21.22ID:???
NaNなんです
16Name_Not_Found
垢版 |
2018/04/18(水) 04:13:17.64ID:gORI/69S
>>14
パンストのきゃわいいやつだ
2018/04/18(水) 08:53:35.36ID:???
まーたペチプァが暴れてんのかw
ペチプの仕様と違うからクソってかww
おととい来やがれwwww
2018/04/18(水) 09:28:29.32ID:???
よく使うものほど短く書けるべき、そのようになっていないならばクソである

・・・・という主張はまさにjquery厨
19Name_Not_Found
垢版 |
2018/04/18(水) 09:43:41.62ID:5caBRzBK
https://entameclip.com/images/2017/06/img20170621nakagawashoko1.jpg
20Name_Not_Found
垢版 |
2018/04/18(水) 12:21:56.26ID:gORI/69S
PHPやVBのがよっぽどクソ言語だと思うね

Javascriptはましな方だとぼくは思いますyo
2018/04/18(水) 14:12:30.96ID:???
テンプレ荒らしのに戻ってんじゃん
2018/04/18(水) 16:03:21.55ID:???
テキストエリアに変更があったら保存する
という処理はどう書くのがいいですか?
keydownなどのたびに比較していたら負荷が大きそうです
2018/04/18(水) 17:04:52.62ID:???
では負荷が大きいかどうか実測しましょう
2018/04/18(水) 17:50:53.85ID:???
changeで
2018/04/18(水) 18:01:09.77ID:???
keydownのたびに比較しても負荷に問題はありません最近の端末は優秀です
2018/04/18(水) 18:09:27.68ID:???
blurでも問題ないのでは
2018/04/18(水) 21:00:31.01ID:???
スレチだったらごめんなさい
スライドを作るjavascriptのフレームワークとしてreveal.jsを見つけてやってみようと思ったんだけど、htmlとかマークダウンで書けるのは分かったけどjavascriptは自分で意識的に使う訳ではないのかな?
スライド遷移とか動作させるのにjavascriptを使ってるってイメージで良いのかな?
2018/04/18(水) 21:02:49.69ID:???
タブをアクティブにする方法ってあります?

tampermonkey(ユーザスクリプト) で使います。
2018/04/20(金) 06:42:25.79ID:???
>>7
なんか勘違いしてるみたいだけど、NaNも立派なdouble型の数値だよ
doubleに変換するならNaNになるのが当たり前
それが嫌なら|0するなりしてintに変換すればいい
2018/04/20(金) 07:53:55.41ID:???
KaN違い
2018/04/20(金) 12:26:33.79ID:???
オブジェクトが格納された配列をイテレートしていく
オブジェクトの指定した属性が指定した値だったら、イテレートを中止し、結果としてtrueを得る
条件に一致するオブジェクトが存在しなければ、結果としてfalseを得る

という処理を書く時に一番いいやり方はどういうものでしょうか?
2018/04/20(金) 12:37:24.37ID:???
jQuery宣伝ニキ出てこいオラッw
webを壊したjQuerywww
920 Name_Not_Found sage 2018/04/20(金) 05:28:09.34 ID:???
code.jquery.comの証明書が死んで、そこらじゅうのサイトが余波で崩壊してるね
とりあえずセキュリティ例外にぶっこめば動くには動くが・・・セキュリティ面でもサイト利用者にそれを求めるのかって点でもマズイな
2018/04/20(金) 13:39:18.86ID:???
>>32
良く分からないけどCDNを使ってる時だけでは?
はい論破
2018/04/20(金) 14:05:55.82ID:???
code.jquery.comの証明書なんかあったん?

今みてlets encrypt使ってることには驚いたが
確かlets encryptのとこの証明書は全体からみたらごく一部だけど使えない端末あるから
2018/04/20(金) 14:25:33.16ID:???
>>31
someという関数がまさにそれでした
2018/04/20(金) 20:15:15.32ID:???
>>32
召喚すんなカス
2018/04/20(金) 20:32:58.34ID:???
jQueryのようなヘビー級ライブラリはCDN使用が前提。
各サイトに置かれたらキャッシュ効かないだろバカか。
これはjQuery公式が言ってたことだぞ。
それがこの体たらく。
たいした組織じゃなかったな。一気に信用なくなった。
都合悪くなったとたんスレ違いjQueryニキもだんまりだしww
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況