X



+ JavaScript の質問用スレッド vol.133 +
■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
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にして見えないようにしてください。文句をつける=荒らしです
0002Name_Not_Found
垢版 |
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 型の中身をそのまま表示してくれます。)
0003Name_Not_Found
垢版 |
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 和訳)
0004Name_Not_Found
垢版 |
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
0006Name_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 とすればいいだけだし
0007Name_Not_Found
垢版 |
2018/04/18(水) 02:31:05.60ID:???
>>6
そんなめんどくさい書き方しないといけないjavascript
0008Name_Not_Found
垢版 |
2018/04/18(水) 02:36:46.77ID:???
数字文字列か否か厳密な区別が欲しいならphpならctype_digit()を使えばいい
キャストしたいときシンプルで短い(int)$hogeで済む
0009Name_Not_Found
垢版 |
2018/04/18(水) 03:42:24.64ID:???
>>7
面倒くさい?

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

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

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

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

・・・・という主張はまさにjquery厨
0020Name_Not_Found
垢版 |
2018/04/18(水) 12:21:56.26ID:gORI/69S
PHPやVBのがよっぽどクソ言語だと思うね

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

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

という処理を書く時に一番いいやり方はどういうものでしょうか?
0032Name_Not_Found
垢版 |
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の証明書が死んで、そこらじゅうのサイトが余波で崩壊してるね
とりあえずセキュリティ例外にぶっこめば動くには動くが・・・セキュリティ面でもサイト利用者にそれを求めるのかって点でもマズイな
0033Name_Not_Found
垢版 |
2018/04/20(金) 13:39:18.86ID:???
>>32
良く分からないけどCDNを使ってる時だけでは?
はい論破
0034Name_Not_Found
垢版 |
2018/04/20(金) 14:05:55.82ID:???
code.jquery.comの証明書なんかあったん?

今みてlets encrypt使ってることには驚いたが
確かlets encryptのとこの証明書は全体からみたらごく一部だけど使えない端末あるから
0037Name_Not_Found
垢版 |
2018/04/20(金) 20:32:58.34ID:???
jQueryのようなヘビー級ライブラリはCDN使用が前提。
各サイトに置かれたらキャッシュ効かないだろバカか。
これはjQuery公式が言ってたことだぞ。
それがこの体たらく。
たいした組織じゃなかったな。一気に信用なくなった。
都合悪くなったとたんスレ違いjQueryニキもだんまりだしww
0038Name_Not_Found
垢版 |
2018/04/20(金) 20:39:43.10ID:???
どうしても必要じゃない限りcdn使わないんだよなあ

jqueryもどうしても必要じゃない限り使わないんだが
0039Name_Not_Found
垢版 |
2018/04/20(金) 20:49:03.67ID:???
>>32
使ってないから状況が理解できない
0040Name_Not_Found
垢版 |
2018/04/20(金) 21:30:20.25ID:???
cloudflareのようなところに自分で配置すればいいのでは?
0041Name_Not_Found
垢版 |
2018/04/20(金) 21:40:30.42ID:???
cloudflareだろうがnetlifyだろうが多数のサイトが少数のurlからロードしてこそキャッシュが効くのだ。
お前がcloudflareに上げて公開したところがお前のクソサイトからしか利用されんから意味ない。
0042Name_Not_Found
垢版 |
2018/04/20(金) 22:03:57.70ID:???
Google, MS のCDN を使うのが普通
0044Name_Not_Found
垢版 |
2018/04/20(金) 23:42:36.51ID:???
>>29
> なんか勘違いしてるみたいだけど、NaNも立派なdouble型の数値だよ

数値じゃないよ。数値じゃないからNaNはどうやっても計算できない
数として扱われないから
0045Name_Not_Found
垢版 |
2018/04/20(金) 23:43:06.02ID:???
>>32
> jQuery宣伝ニキ出てこいオラッw
> webを壊したjQuerywww

それだけ多く使われていたってことですかねぇw
0046Name_Not_Found
垢版 |
2018/04/20(金) 23:47:03.60ID:???
>>34
> 今みてlets encrypt使ってることには驚いたが

驚くことじゃない

Let's Encryptのルート証明書「IdentTrust」、SSL認証局第1位に
https://news.mynavi.jp/article/20180325-605154/

> Q-Successは3月22日(ドイツ時間)、「IdenTrust, which is used as root certificate
> for Let's Encrypt, has become the most popular SSL certificate authority」において、
> IdentTrustのシェアが17.5%に到達し、SSL認証局として最も高いシェアを確保したと伝えた。
> 3年前にはシェアがゼロだったIdentTrustがこの3年間で業界首位に上り詰めたことになる。
0047Name_Not_Found
垢版 |
2018/04/20(金) 23:51:41.66ID:???
>>37
> jQueryのようなヘビー級ライブラリはCDN使用が前提。
jQueryがヘビーってw
gzip圧縮時でたった30KBだぞ
0048Name_Not_Found
垢版 |
2018/04/20(金) 23:56:21.69ID:???
jQueryのようなヘビー級ライブラリはCDN使用が前提。
各サイトに置かれたらキャッシュ効かないだろバカか。
これはjQuery公式が言ってたことだぞ。
それがこの体たらく。
たいした組織じゃなかったな。一気に信用なくなった。
都合悪くなったとたんスレ違いjQueryニキもだんまりだしww

こんなときばっかり、だんまりかよwwww
0049Name_Not_Found
垢版 |
2018/04/20(金) 23:58:41.60ID:???
こんなときばっかり、だんまりのjQueryニキwww
こっちは大ポカ発覚で
たのしーwwww
0050Name_Not_Found
垢版 |
2018/04/21(土) 00:12:35.45ID:???
jQueryがヘビー級ライブラリって何年前の知識だ?
いまやライト級ライブラリ扱いだぞ
知識が数年前で止まってる技術者ほど厄介なやつはいないよね
0051Name_Not_Found
垢版 |
2018/04/21(土) 00:15:31.85ID:???
どう考えてもヘビーだろw
同じことをDOM APIだけで実現すれば
ライブラリのサイズは0!
自分で書いたコードの量だけですむ
0052Name_Not_Found
垢版 |
2018/04/21(土) 00:16:53.05ID:???
それはライブラリではない
今はライブラリの中でヘビーかライトかの話
0053Name_Not_Found
垢版 |
2018/04/21(土) 00:17:58.89ID:???
その自分で書いたコードの量が多いっていう落ちだろw
自分で書いたコードはCDN仕えっても効果ないし


という指摘されるところまでが予定のうちですw
0054Name_Not_Found
垢版 |
2018/04/21(土) 00:37:05.79ID:???
いったんjQuery入れてしまえば最後、何だかんだでプラグイン始めどこの馬の骨とも分からないクオリティバラバラなjQuery依存のライブラリを導入することになる。そしてさらにこれらに依存したコードを書くからjQueryコケると皆コケるwww
まるで将棋だなwwwww
0055Name_Not_Found
垢版 |
2018/04/21(土) 00:41:03.92ID:???
クオリティバラバラなのと全部俺様クオリティどちらを取りますか?
俺様クオリティは10年経ってもクオリティはかわりません!
0056Name_Not_Found
垢版 |
2018/04/21(土) 00:43:20.52ID:???
10年たっても低いクオリティのまま
成長してないんじゃダメだろうw
0057Name_Not_Found
垢版 |
2018/04/21(土) 01:15:00.72ID:???
荒らしを煽って遊ぶのも同類だからな
0058Name_Not_Found
垢版 |
2018/04/21(土) 06:59:49.02ID:???
最近だとasync関数使ってその中で
awaitやfor-awaitやwhile_awaitでイベント待ちたい場合もあると思うんだけど
コールバックベースであるjQuery使ってる人ってどうやって上手く調整してるんだろうか
0060Name_Not_Found
垢版 |
2018/04/21(土) 10:12:05.79ID:???
>>59
そこにも数値じゃない値って書いてあるね
0061Name_Not_Found
垢版 |
2018/04/21(土) 10:32:13.24ID:???
Not a Numberなのに数値という意味が分からない
Nullが文字列って言うようなものでは?
0063Name_Not_Found
垢版 |
2018/04/21(土) 14:19:52.67ID:???
>>29
ソースよろ

NaNはNumberオブジェクトに属し
typeof NaNでnumberを返すくらいの認識しかない

数値計算の結果生成されるからNumberオブジェクトに入れてるだけじゃないの?
0064Name_Not_Found
垢版 |
2018/04/21(土) 14:35:18.38ID:???
>>63
その前にやることが有るだろ。

お前の、ソースよろ だ
0065Name_Not_Found
垢版 |
2018/04/21(土) 14:39:08.77ID:???
typeof nullがオブジェクトwwwww
javascriptワロタwwwww
0066Name_Not_Found
垢版 |
2018/04/21(土) 14:55:55.87ID:???
Rubyなんか、null(nil)にnil?メソッドが有るんだぜw
もちろん nil.is_a? Object は true である
0067Name_Not_Found
垢版 |
2018/04/21(土) 15:26:28.92ID:???
>>64
は?なんのソース?
アタリマエのこと書いただけのつもりなんだが?
0068Name_Not_Found
垢版 |
2018/04/21(土) 15:37:56.43ID:???
もしdoubleな数値型の値だったら、比較や加減乗除できるはずなんじゃないの
0069Name_Not_Found
垢版 |
2018/04/21(土) 16:56:23.20ID:???
比較も演算もできるやろ
まあ結果が直感には反するかもしれんが
仕様(IEEE 754)に沿ってるだけ

そもそもなんでそんな仕様なんだクソが、とは思わなくもない
既存の数値処理にあわせたとか、ゼロ除算や文字列からの変換をエラーにしたくなかったとか、なんか理由はあるんだろう
0070Name_Not_Found
垢版 |
2018/04/21(土) 17:09:35.50ID:???
jQuery は、gzip圧縮時で、30KB。
広告1つ分

CDN はサポートがしっかりしている、Google, MS を使うのが普通

jquery.com は、テスト用で使えるってだけ。
jQuery はソースコードを作っている団体。
CDN サービスなど、やっていない
0072Name_Not_Found
垢版 |
2018/04/21(土) 17:33:08.62ID:???
広告の30KBと圧縮コードの30KBでは全然違う。
jQueryはロードしたねヨカッタヨカッタというようなライブラリではなく、導入しているからには様々なプラグイン、依存ライブラリ、依存コードの依存先となる。
つまり非同期読み込みできない。bodyの下のほうに置いてる場合でもない。head内でなるべく早く読み込まなければ依存コードが動かない。
なのでbodyの最後に置ける広告コードと違い、圧縮状態で30KBのコードが展開され、パースされ、ロードされるまでそのページはブロックされる。
0073Name_Not_Found
垢版 |
2018/04/21(土) 17:39:44.61ID:???
jQueryはbodyの最後におけるよ
実際にやってる人いた

jQueryとCSSを最後に読み込ませてサイトの表示速度を上げる方法
https://hodalog.com/move-jquery-to-footer/

たしかにjQueryを最後の方で読み込ませることで
表示速度が改善されているね
0074Name_Not_Found
垢版 |
2018/04/21(土) 17:46:46.13ID:???
最近はwebpackで一つないし少数のファイルに結合してしまうけど、
昔RequireJSを使っていた頃は、jQueryを含めて依存プラグイン全てを
非同期で読み込ませていたな

どういう仕組みかと言うとRequireJSが全てのJavaScriptファイルを
同時に読み込み、依存関係情報に従って、すべてが揃ってから発動する
だから、jQueryをjQueryを使うライブラリを非同期で両方同時に読込始めて、
先にjQueryを使うライブラリの読み込みが終わったとしても
jQueryの読み込みが終わってからライブラリの処理が発動するから問題なく動作する
0075Name_Not_Found
垢版 |
2018/04/21(土) 17:50:45.44ID:???
操作前のDOMが描画された後にガチャガチャ動いて良いなら当然そうできる。
ただし依存コードもすべてその後ろに置くこと。
コードの規模にもよるが、大きくなるにしたがって姿は見えれどインタラクション不能状態が長くなる。
0076Name_Not_Found
垢版 |
2018/04/21(土) 18:03:06.79ID:???
>>75
jQueryに限らずDOMを操作するものは全て同じことでは?

広告はページ本編から独立しているから、問題ないのであって
同じように独立していればjQueryでも同じことできるし。

えーと、なにが良いたいんだい?
最初の一回は読み込むのが遅いけど、二回目以降は
まったく問題ないよで解決するよね。
0077Name_Not_Found
垢版 |
2018/04/21(土) 18:14:14.29ID:???
アホがjQury厨を召喚したせいでまたjQueryのすれになっとるわ
死ねよカス
別スレでやれやばーか
0078Name_Not_Found
垢版 |
2018/04/21(土) 18:19:17.17ID:???
同じサイトで2回目以降問題ないのは当たり前だろ
無関係のサイトでも同じcdnから読んでればキャッシュ効くのがいいとこなのに
0080Name_Not_Found
垢版 |
2018/04/21(土) 18:37:35.48ID:???
angular使ってるサイトってどこがある?
教えて
0081Name_Not_Found
垢版 |
2018/04/21(土) 19:04:42.90ID:???
>>61,63
(nullはオブジェクトではないけど)
オブジェクトに対するnullみたいな存在だよ

他にもInfinityとか、0が+-の2種類あるとか、double型ならではの仕様があるけれど
結局それらもNaNも全部ひっくるめてJSの数値の内なんだよ

JSの仕様と言うかもうCPUに内蔵されてる仕様で、
1.0+1.0が2.0になるように、1.0/0.0などをするとNaNになる
それらは全てdouble=64bit型の数値であってビット配列が違うだけなんだよ
0082Name_Not_Found
垢版 |
2018/04/21(土) 19:10:20.62ID:???
ちょっと自分もどういう流れで話してたか忘れそうだから纏めるけど、
だから通常の数値=doubleが期待される関数でNaNが返ってくるのは極めて自然なんだよってこと
それとJSの数値がdoubleであることによる特徴と、int/uintの特徴と、int/uint化の手法
くらいはしっかり理解しておくのもいいよということ
(概念上は一時的だけど)intにキャストすればInfinityや-0、NaNなんかは出てこないからね
0083Name_Not_Found
垢版 |
2018/04/21(土) 19:54:19.34ID:???
浮動小数点数の演算においてゼロ除算の結果の扱いと

文字列をintに変換しようとしたときの扱いと

全然関係なくね
0084Name_Not_Found
垢版 |
2018/04/21(土) 20:36:52.71ID:???
文字列をInt型に変換しようと思ってparseIntを使ったという話ならそれは確かに
parseIntが悪いっていうか紛らわしいってことになるかもしれないね

ただ、(ES.nextの話は抜きで簡単に言うと)
JSの数値っていうのは全てdouble型だからね
Int型を返す関数っていうのは無いの

parseIntのIntは、元のJavaでは確かにint型のIntの意味合いもあるけど、
JSではせいぜいInteger=整数っていう程度のものと考えると良い
つまり文字列の中の整数(=integer)を抜き出して、double型で返す関数ということ

そしてdouble型を返す関数に於いて、不正な値を例えば0にするか、それともNaNを返すか
どちらが自然かと言えばやっぱり後者だろうよ
0086Name_Not_Found
垢版 |
2018/04/21(土) 20:59:55.77ID:???
javascriptで阪神を勝たせる方法ありますか
0087Name_Not_Found
垢版 |
2018/04/21(土) 22:00:20.54ID:???
var 試合結果出力 = () => {
var rand = Math.rand();
var 阪神勝利フラグ = true;
console.log(阪神勝ちフラグ ? '阪神勝利!' : rand > 0.5 ? '阪神勝利!' : '阪神敗北…');
};
試合結果出力();
0088Name_Not_Found
垢版 |
2018/04/22(日) 02:32:21.88ID:???
以上のように、数値リテラルには様々な表現方法がありますが、本質的にはこれらの違いは見かけ上のものに過ぎません。
JavaScriptにとっては「0b10010」(2進数)、「0o22」(8進数)、「0x12」(16進数)、「1.81e1」(指数は)はいずれも同じく10進数の18なのです。
どの表記を選ぶかは、その時々でのよみやすさに応じて決めるべきです。

JavaScript本格入門より
0089Name_Not_Found
垢版 |
2018/04/22(日) 03:04:58.75ID:???
10進数と言うのは嘘だな。
ならどうして0.1 + 0.2が0.30000000000000004になるんだい?
2進数だろう?
0090Name_Not_Found
垢版 |
2018/04/22(日) 03:42:38.53ID:???
>>89
"10進数" リテラル を
内部的に2進数に変換して計算しているからだけど?
だから10進数であっている
0091Name_Not_Found
垢版 |
2018/04/22(日) 03:55:37.21ID:???
合ってない。
> いずれも同じく10進数の18なのです。
8進数の22なのです。
16進数の12なのです。

"8進数" リテラル を
内部的に2進数に変換して計算しているからだけど?
だから8進数であっている

"16進数" リテラル を
内部的に2進数に変換して計算しているからだけど?
だから16進数であっている
0092Name_Not_Found
垢版 |
2018/04/22(日) 04:09:14.79ID:???
いやあってるじゃん?

なにを根拠に違うって言ってるのか?
0094Name_Not_Found
垢版 |
2018/04/22(日) 08:46:37.34ID:???
phpにおけるNAN(phpにおいてはNaNじゃなくてNAN)がphpにおいてはfloat/double型に属するというのはいい
しかしNANが数値だとすると以下が成り立ってしまうのではないか

前提1: NAN - 1 は NAN となる
前提2: NAN - 2 は NAN となる
∴1=2である
0095Name_Not_Found
垢版 |
2018/04/22(日) 08:49:52.28ID:???
∞に1を足しても∞に2を足しても∞なのは変わらない
しかし1=2とはならない
それは∞が特定のある数値を指すものではなく、∞=無限大という概念を指すものだから
NaNも同じ
0096Name_Not_Found
垢版 |
2018/04/22(日) 08:51:18.69ID:???
JS は、内部的には整数は無い。
数値型は、Double のみ

整数かどうか判断できる、関数もない

一方、Ruby では整数型もある
0097Name_Not_Found
垢版 |
2018/04/22(日) 08:52:45.10ID:???
つまりRubyはすごくて偉大で最高
0098Name_Not_Found
垢版 |
2018/04/22(日) 09:07:18.88ID:???
>>94
NaNはdouble型で非数値なんだよ
そう書いてあるでしょ?
http://php.net/manual/ja/function.is-nan.php

> NAN(phpにおいてはNaNじゃなくてNAN)
NANは誤植じゃないの
NaNと書いてある箇所もあるし、NANが正しいなら、"Not A Number" が正式名称になる
単数の "A" を大文字にするのはどう考えてもおかしい
0099Name_Not_Found
垢版 |
2018/04/22(日) 09:45:50.26ID:???
>>98
前段
>>29からずっとNaNがdoubleがって言ってるやつが、>>29でこう書いてる
>なんか勘違いしてるみたいだけど、NaNも立派なdouble型の数値だよ
「NaNも(中略)数値だよ」

後段
php -r "var_dump(NaN);" // Notice: Use of undefined constant NaN と共にstring(3) "NaN"を出力
php -r "var_dump(NAN);" // float(NAN)を出力
0100Name_Not_Found
垢版 |
2018/04/22(日) 09:54:15.00ID:si0FuKql
>>99
ああ、ごめん
型の話と勘違いしてた
>>59,93,98までが自分で他は知らない
■ このスレッドは過去ログ倉庫に格納されています

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