X



+ JavaScript の質問用スレッド vol.133 +
レス数が1000を超えています。これ以上書き込みはできません。
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までが自分で他は知らない
0101Name_Not_Found
垢版 |
2018/04/22(日) 09:58:40.77ID:???
>>100
その>>59からして変なんだがどういう認識で>>59を書いたんだ?

>>59がレスしている>>44は、doubleかどうかではなく数値かどうかを問題にするもので、
  まさにNaNを数値と言う>>29に対するレス
・NaNの扱いやNaNの発生なんて言語ごとの定義次第だが、なぜかJSスレでphp.netのURLを持ってくる
0102Name_Not_Found
垢版 |
2018/04/22(日) 10:09:51.60ID:si0FuKql
>>101
元の>>6がPHPだし、double型といってるからphp.netを持ってきた

JavaScriptの話をするなら、NaNはNumber型で非数値(数値型で非数値)
型名称と非数値の性質の名前の混乱が起きやすいのはどの言語でも同じでそういう話かと思ってた
0103Name_Not_Found
垢版 |
2018/04/22(日) 10:15:10.60ID:???
>>102
これ「文字列をintにキャストしようとしたときjsだと頭が非数値文字列ならNaNになる、phpだと0になる、どっちが直感的か」の話だろ
NaN周りの仕様持ち出すならjsのじゃないと意味ないし
どんな頭してんだ
0104Name_Not_Found
垢版 |
2018/04/22(日) 10:16:02.86ID:???
ああまあ、言いすぎた
ただの勘違いだったんならそれでいい、すまん
0105Name_Not_Found
垢版 |
2018/04/22(日) 10:25:06.40ID:si0FuKql
>>104
こちらもすまんかった
0108Name_Not_Found
垢版 |
2018/04/22(日) 13:01:05.56ID:???
結局NaNがdoubleだってソース誰も出せてねぇじゃんw
0109Name_Not_Found
垢版 |
2018/04/22(日) 13:07:31.37ID:???
doubleマックのソースなら
0110Name_Not_Found
垢版 |
2018/04/22(日) 13:42:51.83ID:???
console.log( (typeof 1) );
console.log( (typeof 1.0) );
console.log( (typeof 1.1) );
console.log( (typeof NaN) );

結果は全部 number
jsではintやlongint、float/doubleみたいな型分けが無く、全部number型に押し込められてて実質全部double
なのでNaNも実質double

頭ではわかる気がする
けど、そうすると整数扱ってたつもりが浮動小数点数にありがちな誤差が生じて……みたいなことは、ないの?
0111Name_Not_Found
垢版 |
2018/04/22(日) 13:48:06.96ID:???
typeof null
オブジェクトwwwww
0112Name_Not_Found
垢版 |
2018/04/22(日) 17:04:26.83ID:???
typeof ""
ストリングwwwww

typeof {}
typeof []
オブジェクトwwwww

typeof (()=>{})
ファンクションwwwwww
0113Name_Not_Found
垢版 |
2018/04/22(日) 17:39:44.09ID:???
型といえば関数型プログラミングとオブジェクト指向型プログラミングってどっちがいいの?
0114Name_Not_Found
垢版 |
2018/04/22(日) 17:42:29.17ID:???
オブジェクト指向は全体の構造を司るもの
わかりやすく言えばクラス

関数型は処理を司るもの
わかりやすく言えばメソッド

だから両方組み合わせるのが良い
0115Name_Not_Found
垢版 |
2018/04/22(日) 18:06:55.47ID:???
>>108
https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type
>>The Number type ...... representing the double-precision 64-bit format IEEE 754-2008 values ......
https://tc39.github.io/ecma262/#sec-terms-and-definitions-number-type
>> set of all possible Number values including the special “Not-a-Number” (NaN) value ......
https://tc39.github.io/ecma262/#sec-terms-and-definitions-nan
>> number value that is an IEEE 754-2008 “Not-a-Number” value
0117Name_Not_Found
垢版 |
2018/04/22(日) 21:48:13.24ID:???
倍精度浮動小数点数があるなら
3倍精度浮動小数点数とか
4倍精度浮動小数点数とかあるの?
0120Name_Not_Found
垢版 |
2018/04/23(月) 00:20:35.95ID:???
IEEE 754では、NaNの表現について、指数部は全て1とし(これは無限大と同じ)、無限大の場合は仮
数部の全てを0とするのに対し、NaNは全0以外の任意のビット列としている。他に、先頭の符号
ビットで正負の区別がある。また、NaNの種別としてquiet NaN (qNaN) とsignaling NaN(sN
aN)があり、例外を投げる場合について違いがある。
0121Name_Not_Found
垢版 |
2018/04/23(月) 01:21:54.08ID:???
position:absolute;でブロック要素を自由に動かす
みたいな手法ってまだ生き生きしていますか?
例えば、div要素で小窓作ってD&Dで動かすみたいな作業です。

なぜこんな質問をしたかというと、3年くらいjs事情から離れていたので
もしかしたらブラウザから万能小窓を呼び出せるような機能が追加されたりしてないかな
と思ったからです
要は、alert窓の万能版(htmlタグも解釈できるし、呼び出したタブのみでjsで情報の授受ができる、など)みたいな
やはり、div要素で小窓作ってcssで操作というのが基本でしょうか?
0122Name_Not_Found
垢版 |
2018/04/23(月) 03:20:26.98ID:???
position:absolute;でやるけどdraggable属性とd&d APIが提供するevent使って実装ずいぶん楽になったんじゃないのかな。知らんけど。
0124Name_Not_Found
垢版 |
2018/04/23(月) 10:50:12.67ID:???
使われなくなったイベントリスナを削除し忘れて
ずっと残っている時がありますが、使われなくなったイベントリスナを検知するにはどうすればいいですか?
0125Name_Not_Found
垢版 |
2018/04/23(月) 11:00:55.36ID:???
使われなくなったことをどうやって検知するんですか?

イベントリスナが貼り付けられた要素が削除されればブラウザが勝手に開放してくれんじゃないか
0126Name_Not_Found
垢版 |
2018/04/23(月) 12:54:47.97ID:???
いやそういう意味ではなく、
ソースコードの中に、もはや使われなくなったイベントリスナ追加処理のコードが残るということです
呼ばれないイベントリスナは特に問題を起こさないので、見つけるタイミングが少ないです
0127Name_Not_Found
垢版 |
2018/04/23(月) 13:26:24.03ID:???
どういう意味だよ日本語が不自由すぎる
0128Name_Not_Found
垢版 |
2018/04/23(月) 13:57:41.12ID:???
は?
ここまで書いて分からないということは、多分あなたには分からないのでしょうね
0129Name_Not_Found
垢版 |
2018/04/23(月) 17:11:34.45ID:???
俺も意味分からんからスルーしてたw
0130Name_Not_Found
垢版 |
2018/04/23(月) 17:30:05.01ID:???
コードの変更改修によって
もう使われなくなった「リスナに呼んでもらう関数」を
掃除したい

という意図にピザまん3個
0132Name_Not_Found
垢版 |
2018/04/23(月) 23:56:59.95ID:???
意味が分からんな
オブジェクトにもう使われなくなったプロパティが残ってるからそれを削除したい
と同じようなニュアンスか?
0133Name_Not_Found
垢版 |
2018/04/24(火) 09:14:58.58ID:???
用済みになったコードを削除したいんじゃない?
次のように

{
let func = function(event){
…何かやる…
func = null;
}

element.onclick = func
}
0134Name_Not_Found
垢版 |
2018/04/24(火) 09:28:46.12ID:???
「イベントリスナ追加処理のコード」だからなあ
やっぱり意味不明
0135Name_Not_Found
垢版 |
2018/04/24(火) 09:28:46.27ID:???
必要なのか、不要なのかは人間様が判断しないとダメです
JavaScriptに人工知能は実装されていません
0136Name_Not_Found
垢版 |
2018/04/24(火) 09:29:38.36ID:???
この流れ、もしかして一休さんかな
0138Name_Not_Found
垢版 |
2018/04/24(火) 23:38:54.58ID:???
型情報って物理的にはどういう風に保持されてるの?
0139Name_Not_Found
垢版 |
2018/04/25(水) 03:53:37.54ID:???
物理的にメモリをですね
0140Name_Not_Found
垢版 |
2018/04/25(水) 22:33:55.34ID:hTMdu4KG
>>28お願いします

非アクティブになってるタブをアクティブにしたいです。
非アクテヒブになるとジャバスクリプトも停止するので無理なのでしょうか?
0142Name_Not_Found
垢版 |
2018/04/26(木) 00:12:45.00ID:???
なにがしたいのかよくわからない
ブラウザのタブをアクティブにしたいの?
だとしたらコンテンツからでは無理だよ
0143Name_Not_Found
垢版 |
2018/04/26(木) 00:44:57.34ID:???
配列のreduceメソッドが何も減らないのになぜreduceなんて名前になってるかわからなくてイライラするので
理由を教えて下さい
0145Name_Not_Found
垢版 |
2018/04/26(木) 01:44:47.41ID:???
>>144
蓄積変数ある以外forEach とかわらんやん
使った配列の中身が減っていくならまだ分かるけど減らんし
forEachWithAccumlatorVersionSpecialArrayMethodって名前にすべき
reduceなんておかしいわ
0146Name_Not_Found
垢版 |
2018/04/26(木) 01:46:38.21ID:???
関数型にforなんてものはありませんよ?
0147Name_Not_Found
垢版 |
2018/04/26(木) 01:47:57.22ID:???
>>142
例えば指定した時間になるとタブをアクティブにするとかです
0150Name_Not_Found
垢版 |
2018/04/26(木) 13:16:29.47ID:???
map
射影。1対1

reduce
蓄積変数・accumulator に畳み込む。多対1
SQL のgroup by
0152Name_Not_Found
垢版 |
2018/04/26(木) 21:23:45.17ID:???
>>122-123
なるほど
HTML5APIに便利なのがどんどん追加されてるみたいですね
dialog要素とかUI系ライブラリが対応すればまさに、という感じでした
ありがとうございました
0153Name_Not_Found
垢版 |
2018/04/27(金) 13:14:02.46ID:???
null と undefinedの違いと使い分け方をおしえて
0154Name_Not_Found
垢版 |
2018/04/27(金) 14:44:46.29ID:???
基本undefinedは自分で使うな
0155Name_Not_Found
垢版 |
2018/04/27(金) 16:01:01.79ID:???
lodashのdebounceを使う時は

const f = _.debounce(()=>{
console.log('debounce');
},1000);

function hoge(){
f();
}

hoge();
hoge();

のように呼び出す関数の外で定義しておかないと、
前回のキャンセルが出来ませんが
呼び出す関数の中でdebounceを定義する方法はありますか?
0156Name_Not_Found
垢版 |
2018/04/27(金) 16:35:33.80ID:???
画面遷移のあるSPAはフレームワークを使った方がシンプルに作れると思いますが
一番シンプルなSPA用JavaScriptフレームワークは何ですか?
0157Name_Not_Found
垢版 |
2018/04/27(金) 17:36:44.71ID:???
SPAは意識高い系の営業がよく使いたがるな
それだけ
0158Name_Not_Found
垢版 |
2018/04/27(金) 19:24:30.41ID:???
アプリがSPAになるのはごく当然のことだと思いますが・・
0159Name_Not_Found
垢版 |
2018/04/27(金) 20:08:32.39ID:???
開発がものっそい面倒になるけどメリットが見合わない印象

画面内の一部の要素をajaxで動的に変更するだけで十分で、複数ページ分の機能を丸ごとjsで面倒見るメリットがない
みたいな状態でほんとにSPA必要なんか?ってのが多いというか
0160Name_Not_Found
垢版 |
2018/04/27(金) 20:40:13.55ID:???
一番普及してるものが一番シンプルやろ
面倒くさいのは普及しない
つまりReact
0161Name_Not_Found
垢版 |
2018/04/27(金) 20:42:38.61ID:???
SPAって何のことかとおもってググったけど雑誌のことか。
すれち。
0162Name_Not_Found
垢版 |
2018/04/27(金) 20:54:27.67ID:???
>>155
何をしたいのかさっぱり分からん。
どうせやりたいことはこれだけだろ?

const hoge = _.debounce(()=>console.log('debounce'), 1000);

hoge();
hoge();
0163Name_Not_Found
垢版 |
2018/04/27(金) 20:56:23.36ID:???
>>159
SPAは、ウェブアプリ、例えばGmailやGoogle Mapのようなものには必要
ウェブサイトには必要ない。jQueryで十分
0164Name_Not_Found
垢版 |
2018/04/27(金) 21:07:56.21ID:???
実際に使っているかどうかと必要かどうかは別だろう
0165Name_Not_Found
垢版 |
2018/04/27(金) 21:09:31.76ID:???
訂正

SPAは、ウェブアプリ、例えばGmailやGoogle Mapのようなものには必要かもしれない
ウェブサイトには必要ない。jQueryで十分
0166Name_Not_Found
垢版 |
2018/04/27(金) 21:10:14.58ID:???
SPAはウェブアプリには必要かもしれないが
実際には殆ど使われていない
0167Name_Not_Found
垢版 |
2018/04/27(金) 21:26:15.72ID:???
要するに金を搾り取るための道具・査定を低くするための道具としては優秀
0168Name_Not_Found
垢版 |
2018/04/27(金) 21:47:26.10ID:???
自分が出来る・分かる→必要!重要!
自分が出来ない・分からない→不要![自分が知ってるもの]で十分!
なんて言うんだっけこういうの?
0169Name_Not_Found
垢版 |
2018/04/27(金) 21:50:42.00ID:???
防衛機制の合理化だね。
酸っぱいブドウはその一例。
また英語圏では「Sour Grapes」は「負け惜しみ」を意味する熟語でもある。

手に入れたくてたまらないのに、人・物・地位・階級など、努力しても手が届かない対象がある場合、その対象を「価値がない・低級で自分にふさわしくない」ものとみてあきらめ、心の平安を得る。
0170Name_Not_Found
垢版 |
2018/04/27(金) 21:55:29.34ID:???
と他人事のようにいうことで、心の平安を得る
0171Name_Not_Found
垢版 |
2018/04/27(金) 22:02:39.21ID:???
loadashとかしらん超初心者だけど挑戦という体で

var func1 = () => {
console.log('debouce1')
}
var func2 = () => {
console.log('debouce2')
}
const f = (func) => {
return _.debounce( ()=>{
return func()
}, 1000)

var hoge = (fun) => {
f(fun);
}

hoge(func1);
hoge(func2);
0172Name_Not_Found
垢版 |
2018/04/27(金) 22:09:35.70ID:???
const hoge = (function() {
 const f = _.debounce(()=>console.log('debounce'),1000);
 return function() {
  f();
 }
)();

hoge();
hoge();
0173Name_Not_Found
垢版 |
2018/04/27(金) 23:54:54.66ID:???
>>162
いや、例を合理化されても困るんですが。
知りたいのは呼び出す関数の中でdebounceを定義する方法はあるかどうかです
全部debounceでくるめるのなら最初からそうしてます
0174Name_Not_Found
垢版 |
2018/04/28(土) 00:41:00.47ID:???
簡単なSPA なら、jQuery Mobile, Vue.js

Angular, React, Electron などは、複雑
0175Name_Not_Found
垢版 |
2018/04/28(土) 01:50:40.01ID:???
>>173
よくわからんけど
addEventListenerに対するremoveEventListenerを考えたらいいんじゃないかな
0176Name_Not_Found
垢版 |
2018/04/28(土) 02:11:36.03ID:???
結局、SPAとは1pのフロントで全部やる利点が欠点よりも明らかに大きいんですか?


「1pにできてファイル数少なくなるから管理が楽」
なんて抜かした阿呆は知ってるけど
0177Name_Not_Found
垢版 |
2018/04/28(土) 02:31:47.46ID:???
ファイルは逆に多くなるだろうなw
0178Name_Not_Found
垢版 |
2018/04/28(土) 02:48:12.61ID:???
(フロントに)一極集中させたがったり
ファイル数を少なくしたがる層が一定数いるけど、なんでなのかね
0180Name_Not_Found
垢版 |
2018/04/28(土) 10:50:18.65ID:???
自動化するんだから数ではなにも変わらないと思うが?
0181Name_Not_Found
垢版 |
2018/04/28(土) 10:58:27.81ID:???
難しいからspaクソ言うてる勢が自動デプロイ環境なんて整えるわけないよね。
いまだにftpでポチポチやってるに1票ww
0182Name_Not_Found
垢版 |
2018/04/28(土) 11:12:49.88ID:???
ん? SPAって最終的に1ページになるだけで
ソースコードは普通に複数のファイルになるぞ

そしてビルド環境必須だから当然整えてるし、
それができる人ならデプロイ環境も整えられる
0183Name_Not_Found
垢版 |
2018/04/28(土) 11:18:14.92ID:???
index.htmlとbundle.jsの2ファイルになるわ
0184Name_Not_Found
垢版 |
2018/04/28(土) 11:26:13.26ID:???
SPAって別にビルド環境必須ではないぞ
別にサイトのうち多くのデータを1つのページで扱わないといけないこともないし
例えば2ページ間の遷移をajaxで行えばそのページはSPAと言える

もうちょっとSPAっぽくしたければ、
Nodeのようなアプリケーションサーバとpjax使えば非常に簡単に作れる
0185Name_Not_Found
垢版 |
2018/04/28(土) 11:28:56.98ID:???
何度も検索するようなページではSPAにすれば通信が減る
とか書いてるサイトがクソほどあって失笑
お前検索をクライアントサイドに閉じ込められると思ってんのか
検索結果部分だけ動的に更新させりゃ済むだろが
0186Name_Not_Found
垢版 |
2018/04/28(土) 12:28:48.67ID:???
> 検索結果部分だけ動的に更新させりゃ済むだろが

それ検索結果の表示ページに遷移しないんだからアプリかどうかは知らんがシングルページじゃん

> お前検索をクライアントサイドに閉じ込められると思ってんのか

クライアントサイドに閉じ込められるかどうかはspaうんぬんと関係ないぞ。
クライアントサイドをどう作るかであって、サーバサイドと連携するしないやどうやるかは別の話で関係ない。
0187Name_Not_Found
垢版 |
2018/04/28(土) 12:47:29.15ID:???
>>186
アホ丸出しか
通信が減るかどうかの問題だぞ
クライアントで完結するか?しないだろ、どうやってもxhrが挟まるだろ
0188Name_Not_Found
垢版 |
2018/04/28(土) 12:48:46.96ID:???
ajaxっていつからSPAって名前に変わったんですかねえ…
0189Name_Not_Found
垢版 |
2018/04/28(土) 12:54:10.63ID:???
SPAなんて単なる概念でしょ
ムキになりすぎ
0190Name_Not_Found
垢版 |
2018/04/28(土) 13:59:36.52ID:???
ぶっちゃけ提唱されたけどほとんど馴染まないまま消え去っていってる最中だからな
0191Name_Not_Found
垢版 |
2018/04/28(土) 16:48:58.11ID:???
>>188
ajaxとSPAは別物ですよ
外部との通信を必要としないSPAもありますし
0192Name_Not_Found
垢版 |
2018/04/28(土) 16:53:28.57ID:???
let a = function hoge(){
console.log(hoge);
}

a();

このような形で関数内から自分自身を参照出来ますが
関数外部からhoge();
としたらエラーになります
この関数名は、関数内からしか参照できないのでしょうか?
だとしたら関数にstatic変数を持たせるのに都合がいいですが、
関数名を使ってstatic変数を持たせる方法はアリなのでしょうか?
0193Name_Not_Found
垢版 |
2018/04/28(土) 18:36:40.24ID:???
何がしたいか知らんけどクロージャ

var f = (n) => {
var count =n
return ()=> {
return ++count;
}
}

var f1 = f(1);
var f100 = f(100);

f1() //2
f100() //101
f1() //3
f100() //101
0195Name_Not_Found
垢版 |
2018/04/28(土) 19:06:05.21ID:???
アンカくらいつけろよ無能
0196Name_Not_Found
垢版 |
2018/04/28(土) 19:34:59.86ID:???
あんか(行火)は炭火、電気ヒーター、化学発熱体等を内蔵した
一人用可搬型の採暖用保温具。 布団などに入れ直接手足に当てて
暖をとる暖房器具である。 地域や世代によっては
「こたつ」「足炬燵」と呼ばれることもある。
0197Name_Not_Found
垢版 |
2018/04/28(土) 19:45:59.98ID:???
はいはいおもしろいおもしろい
0199Name_Not_Found
垢版 |
2018/04/28(土) 20:24:14.55ID:npVPEEtd
>>192
関数内からしかアクセスできない
有り無しは個人の判断、自分で判断しろ
0200Name_Not_Found
垢版 |
2018/04/28(土) 20:32:01.16ID:???
>>193
いえクロージャは知ってます

>>199
じゃあアリにします
ありがとうございました
0203Name_Not_Found
垢版 |
2018/04/28(土) 20:59:34.26ID:???
他人がどういうコード書こうと批判する気は無いけど

>だとしたら関数にstatic変数を持たせるのに都合がいいですが

これはちょっとわからない
0204Name_Not_Found
垢版 |
2018/04/28(土) 21:24:58.02ID:npVPEEtd
>>203
hoge.foo = 1; とか、したいんじゃない?
a.foo = 1; でも出来るから意味不明だけど
0205Name_Not_Found
垢版 |
2018/04/28(土) 21:52:42.23ID:???
>>204
この場合の自関数名は読み取り専用
自前でhoge.foo = 1; できるから、ではなくて
「関数にstatic変数を持たせる」という目的に、この場合の自関数名が関係しない
なので意味がわからない
0206Name_Not_Found
垢版 |
2018/04/28(土) 22:19:46.07ID:npVPEEtd
>>205
正直に言うと、後段の部分は俺も理解してなくて、質問者本人が判断すれば良いから投げた
突っ込みどころを出せば、キリがない

- 関数名の参照はスコープからの参照だよな?Function#nameは外のスコープからも参照可能だが、関係ないよな?
- そもそも、static変数はクラスのためのものだが、どういう用途を想定してるんだ?
- つか、JavaScriptにstatic変数はないが、Java定義の認識でいいのか?
- sratic変数は外のスコープから参照可能だが、スコープ上で関数への参照が閉じ込められる性質とどう組み合わせるんだ?
0207Name_Not_Found
垢版 |
2018/04/28(土) 22:27:36.73ID:???
自分はCのstaticの意だと解釈した
0208Name_Not_Found
垢版 |
2018/04/28(土) 22:37:23.05ID:???
>sratic変数は外のスコープから参照可能だが

typoは無視するとして、>>192もそうだがprivateとごっちゃになっている気がする
staticはstatic
0209Name_Not_Found
垢版 |
2018/04/28(土) 22:44:14.05ID:???
妄想に論理性を求めるのは無駄というもの
0210Name_Not_Found
垢版 |
2018/04/28(土) 22:52:41.12ID:???
ふぅ、こんなピリピリした話をしてるなら
いつものようにjQueryの話題で盛り上がっていたほうが良いな
0211Name_Not_Found
垢版 |
2018/04/28(土) 22:59:25.11ID:???
俺はSPAの実際のところが気になる

できるかどうか、難易、フレームワーク云々、以前にSPA必須な案件にまったく遭遇しない
0212Name_Not_Found
垢版 |
2018/04/28(土) 23:06:03.45ID:???
普通のサイトがSPA取り入れても
違和感が出るだけだしな。

クリックしたらページが変わるだろう所で変わらないから
違う、そうじゃないって思っちゃう
0213Name_Not_Found
垢版 |
2018/04/28(土) 23:23:14.82ID:???
そんなもんトランジションアニメーションさせればいいだけの話。
アドレスバーのurlも自由自在よ。
0214Name_Not_Found
垢版 |
2018/04/29(日) 00:13:40.97ID:???
そこまでしてSPAにこだわるメリットがない
0215Name_Not_Found
垢版 |
2018/04/29(日) 00:29:00.58ID:???
>>192
あたまよさそうだねきみ
後学のためにどういう風に使うのか具体的な事例とコードよろしく
0216Name_Not_Found
垢版 |
2018/04/29(日) 12:00:52.31ID:???
>>208
そんなわけないでしょう
privateの意味分かってますか?
0217Name_Not_Found
垢版 |
2018/04/29(日) 12:50:16.42ID:???
>>215
$(document).on('click', '#hoge', function f(e) {
if (!f.fadeout) {
f.fadeout = _.debounce(() => {
$('#moge').fadeOut();
}, 10000);
}
// いろいろな処理
f.fadeout();
});

こんな感じに、関数の中から同一オブジェクトにアクセスしたい場合に使います
fadeout開始するまでの待ち時間に再び呼び出された時には
前回のfadeout予約がキャンセルされるような関数を、lodashのdebounceで作っています
jqueryのdelayとstopで同じことをしようとしたのですが何故かうまくいかなかったので。
これが唯一の実装方法でないのは当然ですが、複雑さを関数の中だけに閉じ込めるのがシンプルで好みです
もっといい方法ありますか?
0218Name_Not_Found
垢版 |
2018/04/29(日) 13:30:10.24ID:???
>>192で言ってることをどこでつかっとんそれ?
0219Name_Not_Found
垢版 |
2018/04/29(日) 14:54:33.07ID:???
イベントは、発行/購読パターンが基本

Mediator もある。
仲介者、まとめ役、橋渡し役、管制塔

イベントキャンセルできるイベントキューのライブラリは、
オライリーの著者などの、外人が作っている

自分で作ったら、複雑すぎて大変

Stoyan Stefanov 著
JavaScriptパターン ―優れたアプリケーションのための作法、2011
オブジェクト指向JavaScript、2012

JavaScriptデザインパターン、Addy Osmani, 2013
0220Name_Not_Found
垢版 |
2018/04/29(日) 17:08:55.60ID:???
setTimeoutの戻り値を自関数の中で管理するだけで済むように見えるんだが、こういう挙動が欲しいのではないのか?

document.getElementById('mybutton').addEventListener( 'click', function f(){
  var delay = 3000;
  if( ( 'timeoutId' in f ) === false )
    f.timeoutId = false;
  if( f.timeoutId !== false )
    clearTimeout(f.timeoutId);
  f.timeoutId = setTimeout( function(){
    f.timeoutId = false;

    /* my oparation */

  }, delay );
}, false );

目印は別にfalseでなくてもいいが
0222Name_Not_Found
垢版 |
2018/04/29(日) 17:15:23.82ID:???
>>221
関数「名」は、予約&予約キャンセルの仕組みには、一切関係ないではないか
ということだと思うが
0223Name_Not_Found
垢版 |
2018/04/29(日) 17:15:50.11ID:???
>>220
setTimeoutの返り値でキャンセルするっていうのは当たり前の話です
わざわざ複雑にした処理をドヤ顔で書ける神経が分かりません
0224Name_Not_Found
垢版 |
2018/04/29(日) 17:16:45.71ID:???
>>223
目的の挙動はこれで合っているのか間違っているのか、だけが欲しい
0225Name_Not_Found
垢版 |
2018/04/29(日) 17:17:08.29ID:???
>>222
いや、だから何????
そんな話誰してないだろ???
0226Name_Not_Found
垢版 |
2018/04/29(日) 17:18:56.35ID:???
>>224
いやだから、何でわざわざ無駄に複雑にした処理を検討しなきゃいけないの???
甘えすぎじゃね???
0227Name_Not_Found
垢版 |
2018/04/29(日) 17:19:32.79ID:???
>>225
>この関数名は、関数内からしか参照できないのでしょうか?
>だとしたら関数にstatic変数を持たせるのに都合がいいですが、

「関数名」を「参照できる範囲(private性)」について、「だとしたら」で繋いでいるから
0229Name_Not_Found
垢版 |
2018/04/29(日) 17:21:24.64ID:???
質問スレにはままあることですが
回答者に回るレベルに至っていない連中がちょっと回答者に回りすぎでは?
もう少しわきまえて下さい
分かりましたね?
0232Name_Not_Found
垢版 |
2018/04/29(日) 17:28:47.28ID:???
$('#hoge').on('hoge',(e)=>{
console.log('hoge');
});

$(document).trigger('hoge');

このように上位要素でtriggerしても下位の要素で受け取ることは出来ません
上位で受け取ってコールバックするような機構が必要だと思いますが
どうやるのが定石なのでしょうか?
0233Name_Not_Found
垢版 |
2018/04/29(日) 17:45:58.89ID:e1YEqCos
>>221
は?
何を言ってるか分からんてアホ?
>>192で言ってることをどこで使ってるか説明してって言ってるだけなんだが?
使ってないってこと?
0234Name_Not_Found
垢版 |
2018/04/29(日) 17:50:40.94ID:???
>>229
バカが回答をりかいできなくて逆ギレしだすのも質問スレにはよくある
0235Name_Not_Found
垢版 |
2018/04/29(日) 17:52:00.36ID:???
結局>>192をどうつかってるのか分からんだよね
0237Name_Not_Found
垢版 |
2018/04/29(日) 17:54:55.27ID:???
> 関数外部からhoge();
> としたらエラーになります

こことかpublic/privateの話だよね
0238Name_Not_Found
垢版 |
2018/04/29(日) 18:17:39.97ID:???
>>235
192はアホすぎて使いようがいない印象をうける
だからこそどうやって使うのかにはかなり興味あるのだがそれは示せないだろう
0239Name_Not_Found
垢版 |
2018/04/29(日) 18:19:11.61ID:???
>>232
意味が分からん。

$(document).trigger('click')ってやったら、
HTMLに含まれる全てのボタンやリンクに対して
クリックされたというイベントを発動させたいのか?
0240Name_Not_Found
垢版 |
2018/04/29(日) 23:26:04.99ID:???
>>217
たしかにどこが複雑なのかも分からん
我流じゃなくて関数型の勉強したほう良いと思う
0241Name_Not_Found
垢版 |
2018/04/30(月) 02:27:12.24ID:???
うっせかす
俺より底辺共が生意気言うなぼけ
0242Name_Not_Found
垢版 |
2018/04/30(月) 07:42:58.80ID:???
簡潔で非ライブラリ依存なコードをあっさり提示されてて草
0244Name_Not_Found
垢版 |
2018/04/30(月) 09:26:53.31ID:???
わからんね。簡素じゃなくて冗長なクソコードなら
>>220にあるけどそれのことかな?w

なにがクソかというと無駄なことしてるから。
clearTimeoutが無効な値を渡しても例外でないのは保証されてるのだから
>>220はこれだけでいい。これがクソコードである根拠
やらなくて良いことをやるのは丁寧なのではなく単に無駄なだけ

document.getElementById('mybutton').addEventListener( 'click', function f(){
  var delay = 3000;
  clearTimeout(f.timeoutId);
  f.timeoutId = setTimeout( function(){
    /* my oparation */
  }, delay );
}, false );

そしてもちろんこれはライブラリを使えば、もっと簡素に実現できる

$('#mybutton').click(_.debounce(function() {
 /* my oparation */
}, 3000));

非ライブラリのコードも簡素に書けないやつが、
ライブラリよりも簡素に書けるとか言わないほうが良い
恥をかくだけだぞw
0245Name_Not_Found
垢版 |
2018/04/30(月) 09:38:55.23ID:???
>>217
単に_.debounceの使い方が良くない

_.debounce は オリジナルのイベントハンドラを
遅延実行機能付のイベントハンドラに変えるもの
と考えたほうが良い

そこに書いたコードは、これだけでいい

$(document).on('click', '#hoge', _.debounce(function() {
  $('#moge').fadeOut();
  // いろいろな処理
}, 3000));

jQueryのstopはよく分からんね。俺もアニメーションはあまり使わないので。
俺が言えることは今はCSSを使ったほうが良いということぐらいだろう

stopだけで単体で実行したらキャンセルされるが、stop().delay()みたいに
続けるとキャンセルできないアニメーションのキュー(?)の絡みの仕様なんだろうけど

ドキュメントにも、setTimeoutを置き換えるものじゃないと書いてあるので
https://api.jquery.com/delay/
setTimeoutをそのまま使うか、lodashでラップされた関数を使うほうが良いのだろう
0246Name_Not_Found
垢版 |
2018/04/30(月) 09:41:25.07ID:???
やっぱり俺がいないとスレのレベルが下がるなw
jQueryを使ったコードだけでなく、
ネイティブのコードもね
0247Name_Not_Found
垢版 |
2018/04/30(月) 10:15:48.14ID:???
>>244
旧泥でclearTimeoutにundefinedを渡すとエラー吐くことがあった気がするが
nullや、あと確かfalseだとエラーを吐かない

LS仕様ではdo nothingと決められていることや
ライブラリではその辺の扱いを別所で定義しているから行数が減ることは間違いない
見て読みやすいコードは無駄ではないことも間違いないとは思うが
0248247
垢版 |
2018/04/30(月) 10:21:17.97ID:???
今ちらっとlodashのgithubを見てきたがdebounce.jsのcancelで以下のように確認を入れてから
cancelTimerでclearTimeoutしているところから見ても、少なくとも無駄ではないと思う
というより、事前確認が無駄ならlodashのこの記述も無駄になるような

if (timerId !== undefined) {
cancelTimer(timerId)
}
0249Name_Not_Found
垢版 |
2018/04/30(月) 10:27:39.80ID:???
>>247
そういうことを考慮したとしてもこれだけですむ
冗長なことに変わりはないよ

document.getElementById('mybutton').addEventListener( 'click', function f(){
  var delay = 3000;
  if (f.timeoutId) clearTimeout(f.timeoutId);
  f.timeoutId = setTimeout( function(){
    f.timeoutId = undefined;
    /* my oparation */
  }, delay );
}, false );
0250247
垢版 |
2018/04/30(月) 10:46:15.44ID:???
>>249
clearTimeoutに渡す内容の確認はクソコードかつ無駄ではなく必要なものだったと
認めたということで良いかな

初期化は好み次第だと思うけどね
javascriptではプロパティは事前定義しなくてもいいというのは正直どうかと思うところがある
0251Name_Not_Found
垢版 |
2018/04/30(月) 10:51:32.04ID:???
いや? 無駄だよ。
意味があるというのならその証拠をどうぞ
0252Name_Not_Found
垢版 |
2018/04/30(月) 10:56:25.11ID:???
こんな木っ端の作法で云々言うのやめようよ
0253Name_Not_Found
垢版 |
2018/04/30(月) 10:57:24.46ID:???
jq兄貴lodashを否定してしまう
0254Name_Not_Found
垢版 |
2018/04/30(月) 10:57:57.08ID:???
せやねw

最終的な答の簡潔さに比べれば
そんな問題考えるだけ無駄

$(document).on('click', '#hoge', _.debounce(function() {
  $('#moge').fadeOut();
  // いろいろな処理
}, 3000));
0255Name_Not_Found
垢版 |
2018/04/30(月) 10:58:33.72ID:???
この流れで認めるとこはビシっと認めたらかっこよかった
0256Name_Not_Found
垢版 |
2018/04/30(月) 11:01:33.09ID:???
どこかの誰かと違って、ライブラリ最高って言ってるわけじゃないんだから
ライブラリにも無駄なところはあるよ。(はい、ビシッと認めましたよ?w)
だからこそライブラリはバージョンアップし続けてるんだろう。
0257Name_Not_Found
垢版 |
2018/04/30(月) 16:37:45.33ID:???
解釈の原因は解釈者自身の固定観念。解釈の自由には責任が伴う
言葉風紀世相の乱れはそう感じる人の心の乱れの自己投影。人は鏡
憤怒は一時の狂気、無知無能の自己証明。中途半端な知識主ほど激昂
「真実は一つ」は錯誤。執着する者ほど矛盾を体験(争い煩悩)
他人に不自由(制約)を与えれば己も不自由(不快)を得る
問題解決力の乏しい者ほど自己防衛の為に礼儀作法マナーを要求
情報分析力の低い者ほどデマ宗教フェイク疑似科学に感化洗脳
自己肯定感の欠けた者ほど「己の知見こそ全で真」に自己陶酔
人生経験の少ない者ほど嫌いキモイ怖いウザイ憎い想定外を体験
キリスト教は世界最大のカルト。聖書は史上最も売れているト本
全ては必然。偶然 奇跡 理不尽 不条理は思考停止 視野狭窄の産物
人生存在現象に元々意味価値理由目的義務使命はない
宗教民族領土貧困は争いの「原因」ではなく「口実動機言訳」
虐め差別犯罪テロ紛争は根絶可能。必要なのは適切十分な高度教育
体罰は指導力問題解決力の乏しい教育素人の独善甘え怠慢責任転嫁
死刑は民度の低い排他的集団リンチ殺人。「死ねば償える」は偽善
核武装論は人間不信と劣等感に苛まれた臆病な外交素人の精神安定剤
投票率低下は社会成熟の徴候。奇人変人の当選は議員数過多の証左

感情自己責任論 〜学校では教えない合理主義哲学〜 m9`・ω・)
0258Name_Not_Found
垢版 |
2018/04/30(月) 17:47:37.77ID:???
レベル低い人ばっかりですね。
面倒くさいのでレベル低いだけで私のコード理解できないとかいう人はレスしないでもらえますか?
0259Name_Not_Found
垢版 |
2018/04/30(月) 18:20:09.86ID:???
コテ付けて貰えば最初から近付かないよ
0260Name_Not_Found
垢版 |
2018/04/30(月) 19:08:04.78ID:???
>>259
何を言ってるんでしょうか?
自分でレベル低いってのは認識してるとおもうので
貴方みたいなレベル低い人はそもそも回答なんてしなければいいだけじゃないのでしょうか?
0261Name_Not_Found
垢版 |
2018/04/30(月) 19:21:10.31ID:???
>>260
自称高レベルの君が書いたコードはどれなの?
0262Name_Not_Found
垢版 |
2018/04/30(月) 19:37:40.07ID:???
>>261
バカなのですか?
あなた達が低レベルが理解できないとかいってるコードがそれですよ
聞かないとわからないほど低レベルなんですか?
私は誰でも名前をしってる会社で働いてるんです。
あなた達とはレベルガチがすぎる。
まさか5chがここまでレベル低いとは思わなかったのですが
もうこんなとこ来ません。
0266Name_Not_Found
垢版 |
2018/05/01(火) 09:27:21.96ID:???
初めてのandroidアプリ開発でSPA使っちゃった(cordova)けどまずかった?
0267Name_Not_Found
垢版 |
2018/05/01(火) 18:20:10.76ID:l1wYHpV1
誰でもできる在宅ワーク儲かる方法
少しでも多くの方の役に立ちたいです
グーグルで検索するといいかも『金持ちになりたい 鎌野介メソッド』

IZRJV
0268Name_Not_Found
垢版 |
2018/05/01(火) 20:41:26.09ID:???
>>249
そんなこと気にしだしたらidがオーバーフローしてないかとか
万が一doubleの整数部分超える実装になってたらどうするのかとか
ほんとキリがないゾ

余計な懸念は捨てて少なくともここに提示するコードは最小限のものにしようヤ
パッチは実際テストで問題出てからでいいじゃん
今や6ヶ月毎にブラウザは更新されるんだから同じバグがいつまでもあるものではないシ
反対に新しいバグがその時に出てきてるかもしれないんだからサ
0270Name_Not_Found
垢版 |
2018/05/01(火) 21:31:49.76ID:???
>>266
全然というかSPAはあくまでもwebアプリに対する概念
普通cordovaでページ遷移は付けない
0271Name_Not_Found
垢版 |
2018/05/02(水) 06:34:20.39ID:???
そんなことはない
Google検索とかもSPAのうち
0274Name_Not_Found
垢版 |
2018/05/02(水) 13:55:52.37ID:???
ありがとうございました
0275Name_Not_Found
垢版 |
2018/05/02(水) 13:58:47.38ID:???
class構文において
staticなメソッドはstaticキーワードをメソッド名に置くことで実現できますが
staticなプロパティはどうやって実現するのでしょうか?
0276Name_Not_Found
垢版 |
2018/05/02(水) 13:59:25.54ID:???
×メソッド名に
○メソッド名の前に

でした
0278Name_Not_Found
垢版 |
2018/05/02(水) 17:42:21.32ID:???
lodashのuniqueIdって、PHPのuniqidみたいな、
まずバッティングしないIDを生成するものかと思っていたのですが
ただ連番を返すだけのもののようです・・
PHPのuniqidみたいなIDが欲しい時にはどうやるのでしょうか?
0279Name_Not_Found
垢版 |
2018/05/02(水) 20:10:58.91ID:???
>>277
確かにそれで出来るのですが、どこで初期化するのかが問題です
初期化用staticメソッドを用意して外から呼ぶか、
コンストラクタからそれを最初の一回だけ実行するとかでしょうか?
0280Name_Not_Found
垢版 |
2018/05/02(水) 22:23:57.87ID:???
class Hoge {
}
Hoge.initialize();

みたいにクラス定義のすぐ下に書くことにしました
これもイケてないですが、イケてるやり方なんてなさそうなので・・
0281Name_Not_Found
垢版 |
2018/05/03(木) 16:42:00.63ID:???
殆どの場合 static get method ( ) { } で済むでしょ
それかES2019まで待つか
0282Name_Not_Found
垢版 |
2018/05/03(木) 17:12:10.95ID:???
get set追加したんならoperatorも追加してほしい。
以上、混沌を望むものより。
0283Name_Not_Found
垢版 |
2018/05/03(木) 17:13:49.42ID:???
hoge.js
(function(){/* hogehoge */})();
fuga.js
(function(){/* fugafuga */})();

みたいに分けてグローバル汚染を回避しつつモジュールみたいにして管理したいんですけど
export/importみたいなのっていつ頃標準化?されるんでしょうか
0286Name_Not_Found
垢版 |
2018/05/03(木) 17:46:16.04ID:???
>>282
提案はずっと前から色々あるぞ
まずbigintが追加されたでしょ、その後はnumberの拡張が来る
n = 1px + 2em
みたいに書けるようになるってこと

だけどそれ以上はまだ目処がついてないかな
でもそのクラスのインスタンスがvalue proxy的なものになるんだと考えると
混沌ではなくむしろ比較的自然でシンプルだし、そういう流れで行くかもね
0287Name_Not_Found
垢版 |
2018/05/03(木) 18:01:57.47ID:???
>>284-285
ローカルだとセキュリティやら何やらでできないみたいですね
サーバーにアップしたらいけました
ありがとうございます
0288Name_Not_Found
垢版 |
2018/05/03(木) 20:51:06.15ID:???
export default class {
constructor(x,y){
this.x=x;
this.y=y;
}
sum(){
return this.x+this.y;
}
}

こういう宣言をしていて、classのブロックの中ではなく
別のところにsum関数を(ES6で)書き加えたい時ってどうすればよいのでしょうか
0289Name_Not_Found
垢版 |
2018/05/03(木) 20:52:25.15ID:???
補足
>別のところ
export default class{
constructor(){}
}
sum(){}

みたいな感じです
0290Name_Not_Found
垢版 |
2018/05/03(木) 21:04:14.07ID:???
別のところ、ってどこで誰が使う想定なのか
0291Name_Not_Found
垢版 |
2018/05/03(木) 21:14:47.36ID:???
const Hoge = function(){}
Hoge.prototype.sum = function(){}

みたいに、単にこういう風に書けるのだろうか
と思っただけです >>290
書けなくても特に問題ないです
0292Name_Not_Found
垢版 |
2018/05/03(木) 22:18:11.57ID:???
classは単なる糖衣構文だし
default exportに名前をつけちゃいけない決まりはないから
export default class Hoge{
constructor(){}
}
Hoge.prototype.sum = function(){}
みたいのは可能なんじゃないの(ごめん試してないです)
0293Name_Not_Found
垢版 |
2018/05/03(木) 22:59:33.23ID:???
>>292
最初はdefaultもなしでexport class Hogeで、prototypeで追加してたのですが
なんとなくES6で書き加えたい(統一したい)なと思ったのです
あとは、import先で汚染した(や被り気味の命名など)と気づいたとき
export先と行ったり来たりするのがめんどうかなと思い
あえてdefaultのままにしました
0294Name_Not_Found
垢版 |
2018/05/04(金) 00:54:10.65ID:???
結局staticってどういうこと?
0295Name_Not_Found
垢版 |
2018/05/04(金) 04:16:05.09ID:???
なぜprototypeに書き加える必要があるのか
というか書き加えたメソッドはHomeObjectが設定されないし
最初から存在するメソッドと等価にはならないからね
0297Name_Not_Found
垢版 |
2018/05/04(金) 15:17:45.94ID:???
>>295
HomeObjectとかよその用語当たり前みたいに使うなよな
jsスレでマジックメソッドがどうの言ってるきちがいもいた
0298Name_Not_Found
垢版 |
2018/05/04(金) 16:17:13.67ID:???
JSBinの読み方はジェイエスビンでいいのでしょうか?
0300Name_Not_Found
垢版 |
2018/05/04(金) 23:07:45.97ID:???
指定の値を指定数並べた配列を作るには
ループでpushしたり
lengthを伸ばしてからfillしたりするしかないのでしょうか?
0301Name_Not_Found
垢版 |
2018/05/04(金) 23:21:13.30ID:???
javascriptで今流行りの機械学習勉強したいのですがだめですか?
本が全然みつからない。
もう年だしプログラマーでもないので他の言語やりたくない。
0302Name_Not_Found
垢版 |
2018/05/04(金) 23:29:33.17ID:???
ガッツリやりたいならCPUでは限界があるから
どちらにせよWebGLを使うことになるからそれは他言語で書いてるようなもの
まあTensorFlow.jsくらいからやるといいんじゃない
0303Name_Not_Found
垢版 |
2018/05/04(金) 23:31:14.64ID:???
>>300

つくりたい数列による
遅延評価とか再帰をつかって数列を作る手法もある。
0304Name_Not_Found
垢版 |
2018/05/04(金) 23:41:16.30ID:???
>>303
ありがとうございます
単純な整数値を入れた配列です
0305Name_Not_Found
垢版 |
2018/05/04(金) 23:46:54.39ID:???
一定の規則に沿った数列をいくつか作りたいなら
ベースとなる配列作っといてそれをmap()で回すとか?
0306Name_Not_Found
垢版 |
2018/05/05(土) 01:38:02.67ID:???
>>304
たとえば3を45個並べた配列aを作るには、
var a = Array(45).fill(3)
だがこういうことではなくて?
0307Name_Not_Found
垢版 |
2018/05/05(土) 09:52:31.36ID:???
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発
https://www.amazon.co.jp/dp/toc/4873117836/ref=dp_toc?_encoding=UTF8&;n=465392

徹底マスター JavaScriptの教科書 プログラミングの教養から、言語仕様、開発技法までが正しく身につく (Informatics&IDEA)
https://www.amazon.co.jp/dp/toc/4797388641/ref=dp_toc?_encoding=UTF8&;n=465392

上の2つならどっちがおすすめ?
一通りの知識はあるけどもうちょっと知識深めたいってレベルです。
0308Name_Not_Found
垢版 |
2018/05/05(土) 10:22:50.38ID:???
>>306
ありがとうございます
たしかに配列を作成するのはそれが一番シンプルですね
実際の問題はすでにある配列に同一の要素を任意数追加するというもので
fillやpushを使う以外にもっとシンプルな方法があるんじゃないかと思ったのですが、なさそうですね
ありがとうごさいました
0309Name_Not_Found
垢版 |
2018/05/05(土) 13:13:34.14ID:???
配列のlengthを拡張してあってパターンを含ませてるならcopyWithinで1発
0310Name_Not_Found
垢版 |
2018/05/05(土) 13:31:53.16ID:???
>>307
それくらいならMDN眺めたり実装追ってるブログ見りゃいいと思うよ
0311Name_Not_Found
垢版 |
2018/05/05(土) 13:48:06.19ID:???
>>308
すでにある配列をaとして、3を45個追加した配列bを作るには、
var b = [...a, ...Array(45).fill(3)]
だがこういうことではなくて?
0312Name_Not_Found
垢版 |
2018/05/05(土) 14:26:31.11ID:???
>>たしかに配列を作成するのはそれが一番シンプルですね
>>実際の問題はすでにある配列に同一の要素を任意数追加するというもので
0313Name_Not_Found
垢版 |
2018/05/05(土) 14:47:32.83ID:???
あー破壊変更が要件なのか
0314Name_Not_Found
垢版 |
2018/05/05(土) 15:44:58.29ID:???
それならpushでいいじゃん。ループは要らないぞ。
何で嫌がるのかサッパリだらっしゃい…

すでにある配列をaに、3を45個追加するには、
a.push(...Array(45).fill(3))
だがこういうことではなくて?
0315Name_Not_Found
垢版 |
2018/05/05(土) 16:54:36.80ID:???
>>fillやpushを使う以外にもっとシンプルな方法があるんじゃないかと思ったのですが、なさそうですね
0316Name_Not_Found
垢版 |
2018/05/05(土) 16:59:08.38ID:???
use strict宣言してた場合、;セミコロンも書かないのが普通?
つまり、好みの問題じゃなく全部改行使って書いたほうがいい?(結局圧縮するだろうし)
0317Name_Not_Found
垢版 |
2018/05/05(土) 19:00:38.55ID:???
use strictはセミコロンの挙動を変えはしないぞ
つまるところ好みの問題だぞ
〜の方が良い?的な質問はしないほうが良いぞ
0318Name_Not_Found
垢版 |
2018/05/05(土) 19:44:45.70ID:???
>>315
もっとシンプルな方法…?
有りうるのか?どういうAPIになるんだろ?
0319Name_Not_Found
垢版 |
2018/05/05(土) 22:54:57.27ID:???
>>308
自分で関数つくればいいだけやろ
しね
0320Name_Not_Found
垢版 |
2018/05/05(土) 23:11:58.39ID:???
だからstaticな変数ってなんなの?
誰か教えてよ
0321Name_Not_Found
垢版 |
2018/05/05(土) 23:32:43.43ID:???
Int8Array.BYTES_PER_ELEMENT
的なクラスに直接生えてるプロパティのことだろ
ES2019くらいで
class {
static p = hoge
}
と書けるようになるとは思うが、
それまでは代わりに
class {
static get p() { return hoge }
}
とするのが定石だな

prototype下のプロパティでも同じだ
0322Name_Not_Found
垢版 |
2018/05/05(土) 23:36:13.47ID:???
>>317
あ、そういう意味ではなくて今後セミコロンが廃止になりますか?
みたいなニュアンスだったのです
調べてみるとuse strictに限らずセミコロンありなし混合はjavascriptのそういうスタイルだったみたいですね
ありがとうございました
0323Name_Not_Found
垢版 |
2018/05/05(土) 23:38:49.21ID:???
super()って便利なのにネーミングがダサくない?
0324Name_Not_Found
垢版 |
2018/05/06(日) 00:27:00.89ID:???
>>320
参照透過性のある書き換え不能の変数じゃないのか?
0325Name_Not_Found
垢版 |
2018/05/06(日) 01:10:59.37ID:???
>>322
そりゃ100年後は分からんが、現時点で非推奨になる理由がないだろう
ある面ではスペースみたいな存在なのだから

ほとんどの普通の言語およびコミュニティに於いてそれが無駄だとしても
言語仕様として過剰なスペースを禁止しようということにはならないだろう
0326Name_Not_Found
垢版 |
2018/05/06(日) 11:40:55.77ID:???
例えばデジタル時計を表示するアプリをつくったときに
setIntervalで1秒毎に更新するようにして
スリープ状態になってスリープ解除すると
遅れた時間が表示されます。

@これはどうしてなのでしょうか?
スリープになると、タイマーが止まって処理が実行されずにキューが溜まっていって、
解除されるとタイマーが止まった時点から再開して
溜まったキューが最初の分からひとずつ実行されるのかなとおもってるのですが
この考えは完全に正解でしょうか?1つでもおかしなとこあったら教えて下さい

Aどう解消すればいいのでしょうか?
0327Name_Not_Found
垢版 |
2018/05/06(日) 13:01:45.01ID:???
@代わりにsetTimeoutで実装することを考えたら分かりやすいだろう
実行されたら次のキューを登録する
したがって実行が遅延するとキューが溜まっていくことはない

Aそもそも精度は保証されて無く、色々なことで遅れるので、
JSに限らずだがタイマーで時を進めて行ってはいけない
更新の度に現在時刻を取得すること
もしストップウォッチ的なものなら開始時刻を取っておいて、毎回比較して差分を出す
そしてオマケで更新はrequestAnimationFrameを使うと良い
0328Name_Not_Found
垢版 |
2018/05/07(月) 01:56:12.73ID:???
>>302
TensorFlow.jsって
TensorFlowの本に書いてるコード実行すればJSでも動くってことですか?
つまり記法は全く同じ?
0329Name_Not_Found
垢版 |
2018/05/07(月) 01:59:23.73ID:???
そのレベルならやめといた方がいい。
pythonでやりな。
あっちはあっちで大変だと思うが。
0330Name_Not_Found
垢版 |
2018/05/07(月) 07:02:16.48ID:???
基本的に既にできてるモデルをWebで動かす用であって
学習もできなくはないけどAPIもぜんぜん違うよ
0331Name_Not_Found
垢版 |
2018/05/07(月) 14:39:20.03ID:???
>>324
それはないでしょ。
だってそれならクロージャで実現できる。
クロージャに値を閉じ込めればいいだけの話。
クロージャは知ってるって言ってたから
そいうことではないだろ。
0332Name_Not_Found
垢版 |
2018/05/07(月) 15:46:50.00ID:???
普通static変数=静的な変数っていったら、呼び出すごとに初期化されず状態が保持される変数のことでいい
言語によって扱いは全然異なる
javascriptではクロージャに閉じ込めればもちろんできるし
そもそもjavascriptにあんまし馴染まない概念といえなくもない

こんなとこで合ってる?(質問)
0333Name_Not_Found
垢版 |
2018/05/07(月) 20:21:58.21ID:???
いや、そういう関数の機能としてのstatic変数が存在する言語は少ないので
普通staticな変数と言ったらクラスの何らかを想定するだろう、JSでも
0334Name_Not_Found
垢版 |
2018/05/07(月) 20:48:57.29ID:???
classでも基本同じでは
インスタンスごとに独立固有でなくインスタンス間で共有され、
インスタンス生成ごとに初期化されるのではなく、一度だけ初期化される、要するに状態が保持される

静的変数が関係する場合、常に同じ入力に対し同じ結果が返されるとは限らない
なので静的変数の性質として「参照透過性があること」を持ってくるのは間違い

書き換え不能かどうかも静的変数の概念には直接関係しない
0335Name_Not_Found
垢版 |
2018/05/08(火) 06:29:45.79ID:???
それを言うとJSの場合はstaticな変数なんて存在しないけどな
staticとして宣言されたものはクラスオブジェクトのプロパティになるだけだから
0336Name_Not_Found
垢版 |
2018/05/08(火) 07:31:14.27ID:???
Node.ELEMENT_NODE は静的変数なんじゃない?
0338Name_Not_Found
垢版 |
2018/05/08(火) 09:10:45.85ID:???
クラスベースオブジェクト思考に毒されたやつは話を聞かない
唯一絶対の真理と思ってやがる
jsにclass構文なんか導入したせいで拍車がかかった
ちなみに拍車とはカウボーイのブーツのかかとについてるトゲトゲの車輪な
0339Name_Not_Found
垢版 |
2018/05/08(火) 09:57:30.62ID:???
「ある要素を、それ以外の要素がクリックされたら閉じる」
のような処理はどう実装するのがベストなのでしょうか?
モーダルウインドウでは半透明の黒幕を表示してそこでイベントを受けるというやり方を見ますが
他のコントロールへのイベントは生かしたままにしたいです
要素にtabindexを付けてフォーカスを持たせて、focusoutを検出したらいいのでは?
と思ってやってみたのですが、ブラウザ以外のアプリにタスク切り替えしても反応してしまいました
あとはdocumentに一時的なclickイベントリスナを付けるくらいしかなさそうですが
これだと他のイベントリスナでstopPropagationされたら反応しなくなると思います
つまり、考えついたどの方法にも何かしら問題があるのです・・
問題のない方法はないでしょうか?
0340Name_Not_Found
垢版 |
2018/05/08(火) 10:20:26.95ID:???
>>339の件ですが
stopPropagationされる可能性が少ないイベントリスナを使えばいいんじゃないかとひらめきました
クリックイベントはmousedownやclickで受けるのが普通なので、
これらはstopPropagationされる可能性がありますが
あまり使われることのないmouseupなら殺されることもないのではないかと。
試しにmousedownやclickをstopPropagationするコードを書いてみましたが
mouseupはちゃんとdocumentまで伝わってきました
これはいいのではないでしょうか?
もっと良い方法ありますか?
0341Name_Not_Found
垢版 |
2018/05/08(火) 13:21:46.06ID:???
>>340
組み込んだらうまく動きました
今まで、リスナでイベントを捕捉して処理をした時には
大抵の場合、とりあえずstopPropagationとpreventDefaultを両方実行していました
処理はもうしたんだから、他の要素はもうそれを知る必要がないだろう、
その方が負荷が下がっていいだろう、と。
が、イベントは一連の処理を開始するきっかけにもなれば、
一連の処理を終わらせるきっかけにもなるので、
「処理はもうしたから、他の要素はもう知る必要がないやろ」という態度は問題ですね
そうしなければならない理由がない限り、
処理を済ませたからといってイベントの伝播を止めるのは良くないのでしょう
0343Name_Not_Found
垢版 |
2018/05/08(火) 16:53:53.96ID:???
自己紹介乙。
Javaワールドから出てくるな
0344Name_Not_Found
垢版 |
2018/05/08(火) 19:18:42.87ID:???
JSでstaticといったら
class C{
static m(){}
}
みたいなのを指すけど
そこに高度な思想や概念なんて特に無いよ
0345Name_Not_Found
垢版 |
2018/05/08(火) 19:26:33.76ID:???
静的関数じゃなくて静的変数の話だぞ
cにだってあるやつ
0346Name_Not_Found
垢版 |
2018/05/08(火) 20:19:18.24ID:???
>>343
名前がにてるんだから仲良くしろやカス
0348Name_Not_Found
垢版 |
2018/05/09(水) 12:41:42.12ID:???
>>345
静的変数の話ではないよ
プロトタイプとprototypeが違うように
静的変数とstaticな変数では意味合いが全く違う
0349Name_Not_Found
垢版 |
2018/05/09(水) 15:08:56.86ID:???
じゃあ、その「静的」や「プロトタイプ」は英語では何というの?
0352Name_Not_Found
垢版 |
2018/05/09(水) 17:28:51.15ID:PpprmdVh
SPAでのログイン処理について詳しく書かれた本があれば教えて下さい
0353Name_Not_Found
垢版 |
2018/05/09(水) 17:42:39.08ID:PpprmdVh
特に分からないのはセッションハイジャック対策です
今はsslが普通なので対策はいらないのでしょうか?
クライアントはidとパスワードを送る
サーバはセッションidを送る
以後、クライアントはセッションidを鍵として使う
これだけでいいのでしょうか?
0354Name_Not_Found
垢版 |
2018/05/09(水) 17:47:03.79ID:PpprmdVh
SSL環境でセッションハイジャックが出来るなら
それはもはやidとパスワードが盗める状態なので
そもそも終わってますよね
そう考えると対策はいらないってことでしょうか?
0355Name_Not_Found
垢版 |
2018/05/09(水) 19:54:14.56ID:???
そのレベルならば自分でセキュリティ考えてはいけません
専門家・専門会社を頼りましょう
0357Name_Not_Found
垢版 |
2018/05/09(水) 21:34:59.93ID:???
>>347
返答ないってことは誰も使ってなくて、
評判も聞かないってこと?
javascriptしかしらないプログラミング初心者の自分には
electronってすげー便利そうなんだけど。。。
0358Name_Not_Found
垢版 |
2018/05/09(水) 21:36:13.07ID:???
終わらんだろ。代替技術がない
0359Name_Not_Found
垢版 |
2018/05/09(水) 21:39:17.57ID:???
>>357
5chだと板分類が微妙で居場所が無い
あと配布サイズがデカくなるので気軽には使いづらい面はある
0360Name_Not_Found
垢版 |
2018/05/09(水) 21:39:48.86ID:???
心中するつもりでのめりこむんなら、あるいは
0361Name_Not_Found
垢版 |
2018/05/09(水) 21:56:34.75ID:???
2015年出版のほんに
「CoffeeScriptは必修科目」って節があって15ページくらいの解説があるんだが
コレ読んだほうがいいの?
ネットで調べるともう終わった言語って評判だけど。。。
0362Name_Not_Found
垢版 |
2018/05/09(水) 22:00:55.46ID:???
端的に必修かそうでないか言うならば、不要
0363Name_Not_Found
垢版 |
2018/05/09(水) 22:01:39.42ID:???
>>361
いらないいらない。もうCoffeeScriptの噛ませ犬としての役目は尽きた
JavaScriptを進化させるための良いプロトタイプになったよ

この言語は最初から流行らず死滅する運命、少し考えればわかったことだね。
https://trends.google.co.jp/trends/explore?date=all&;q=JavaScript,CoffeeScript
0364Name_Not_Found
垢版 |
2018/05/09(水) 22:09:21.18ID:???
昔のコーヒーのコードは見事に負債になってるな。
0365Name_Not_Found
垢版 |
2018/05/09(水) 23:18:39.76ID:???
あの頃の盛り上がりはなんだったんだろうなw
0366Name_Not_Found
垢版 |
2018/05/09(水) 23:29:28.53ID:???
実は盛り上がってなどいなかったんだよ
カツラと同じでそう見せてただけさ
0367Name_Not_Found
垢版 |
2018/05/10(木) 00:12:53.10ID:???
>>357
普通に最高ですよ
ネイティブアプリでないと出来ないことはあるので、作れるものの幅が広がりました
0368Name_Not_Found
垢版 |
2018/05/10(木) 00:19:53.07ID:???
以前は「出来ることならネイティブで作りたいけどウェブ系しかほとんど知らないからウェブアプリにしとこ」
みたいな感じでしたが
electronを知ってからはネイティブで作れるので最高です
0369Name_Not_Found
垢版 |
2018/05/10(木) 06:23:57.54ID:???
遅れてるな
これからはPWAだぞ
0370Name_Not_Found
垢版 |
2018/05/10(木) 06:25:40.82ID:???
ネイティブ?jscriptでいいじゃん(白目)
0371Name_Not_Found
垢版 |
2018/05/10(木) 19:05:46.99ID:???
仕事でJS使ってるんだが、これってどう頑張ってもできないやつとか才能ない奴っている?
頑張れば誰でもできる!ってめちゃくちゃ言われるけど全く頭に入ってこないしイライラするんだが
0372Name_Not_Found
垢版 |
2018/05/10(木) 19:11:55.61ID:???
程度による。簡単なことしかやらないなら誰でも出来る。
それなりのことやろうとしたらプログラマ適正ないときついだろうね。
それはjsも他の言語と変わらない。
0373Name_Not_Found
垢版 |
2018/05/10(木) 19:53:47.22ID:???
>>372
ありがとう。
悲しいけど安心したよ。
0374Name_Not_Found
垢版 |
2018/05/10(木) 20:41:32.01ID:???
イライラするのは致命的ではないが全く頭に入ってこないのは致命的
それはイライラに負けてるから
イライラを超えたところにアハがあるのであって
そこから先が重要なところ

そこに達する前に辞めてしまうのを何度繰り返しても分かるようにはならない
毎回必ず100あるうちの1は理解しただろうなってとこまではやる
それ以上は必要はないが、その1歩進展は必ず必要
どんなに難しいことでも必ずちょっとは理解できたと自分で納得できるとこまで頑張る
そうすれば百回もそれに遭遇するころにはマスターできてることになる

百回なんてと思うかもしれないが基礎レベルではすぐ、for文なんか毎日使うだろう?
ならそれらを3日に1%でも、1年経てば基礎はほぼマスターできてるってことになる
0375Name_Not_Found
垢版 |
2018/05/10(木) 20:43:16.88ID:???
promiseだけは書けることは書けるんだけど毎回辛かった、今もダメ
promise使ったコード読むのすらダメ
promiseがなんていうか生理的に受け付けないというか、使い方が全然頭に定着しない
他のことはだいたい普通にできる
0376Name_Not_Found
垢版 |
2018/05/10(木) 20:46:11.89ID:???
async/await使おうがpromiseからは逃れられんぞ
0377Name_Not_Found
垢版 |
2018/05/10(木) 20:53:44.53ID:???
>>375
たぶん間違ったPromiseのコードしか見たことないんだと思うよw
0378Name_Not_Found
垢版 |
2018/05/10(木) 20:54:02.47ID:???
わかってるとは思うが才能的な話な
局所的とはいえ>>371と同じ感覚もってる人間もいるってことだ
0379Name_Not_Found
垢版 |
2018/05/10(木) 21:04:58.56ID:???
別にプログラミングの才能なんてなくてもいいよ。だったら他のことやればいいだけの話。
俺に命令する立場の人はみんなプログラミング適正ない人ばかりだぞ。
0380Name_Not_Found
垢版 |
2018/05/10(木) 21:32:39.58ID:???
と言い聞かせて自尊心を保ってます?
0381Name_Not_Found
垢版 |
2018/05/10(木) 21:39:38.67ID:???
文盲ワロタw
俺はプログラミングしてる側じゃい
0382Name_Not_Found
垢版 |
2018/05/10(木) 21:48:01.42ID:???
まったく頭に入ってこないのはまずそう
ネットや本見てて「うんうん、そうか、なるほど」→「ちょっとやってみよう」→「…全然わからん」って人は多くて、プログラミングの素質ない人がこれにあたる
読んでて一つ一つはわかるけどいざ何かしようとしたらどうしたらいいかわからない
そういう人はロジックが組み立てられないから
でもそれは頑張って数こなせば克服できる
まったく頭に入ってこないのはそれ以前に読解力や理解力の問題だからプログラミングに限ったことではない
もちろんそういう人も多いけどプログラミングでは致命的かもしれない
0383Name_Not_Found
垢版 |
2018/05/10(木) 21:59:10.16ID:???
>>375,378
英数字を見るのが辛いとかPCの画面が見れないとかではないんだろう?
ならそれは才能ではなく単に慣れてないだけだよ
async/awaitとか一度本格的に使いだしたら、asyncな関数の方が多くなって
どちらかというとasyncを付けないことに不安を感じたり葛藤するようになるからね
そのうちPromiseがただの生値と同じ感覚で見えてくるよ
そこまで行かなくても、コールバックのラッパーと見たり落とし所は沢山あるよ
とにかく積極的に何でもかんでも使ってみることだよ
0384Name_Not_Found
垢版 |
2018/05/10(木) 21:59:57.18ID:???
俺の経験上苦手なものに時間使うと
時間を浪費するだけで人生そんする

できるだけ得意なことに時間かけて他と差を付けたほうがいい。
苦手なことに時間かけても同じ時間のうちに他の奴らはずっと先にいってる。

イライラして全く頭に入ってこないのは致命的に向いてないと思う
やらんほうがいい。
どうしてもやらんといけない職場なら転職考えたほうがいい。
0385Name_Not_Found
垢版 |
2018/05/10(木) 22:03:59.82ID:???
>>382
読んでて1つ1つ分かるのはむしろ天才だと思うよ
そしてやろうとして、そこで悩むっていうのも平均以上だと思う
多くの人はまずそこまでモチベーションが続かないから
要するにそれだけ興味関心を持ててるってことが一番大事な才能なんだよ

それは頭に入ってこないっていうのとはちょっと違う
頭に入ってこないのは興味関心を持って素直な心で新しいことを吸収しようという心構えが足りないから
そこさえあれば歳などで少々頭が固いのはイライラしながらでも乗り越えられる、20代までなら
0386Name_Not_Found
垢版 |
2018/05/10(木) 22:04:39.07ID:???
球技なんて誰でも出来る、と同じ。
そう言うのはできるやつ。
できるやつはできないやつがなんでできないのかさっぱり分からないからそういう無責任なことが言えるわけ。
出来ないからと言って卑屈になる必要はない。
他に向いてることを探そう。
0387Name_Not_Found
垢版 |
2018/05/10(木) 22:04:44.96ID:???
>>383
>PC
それはあるかも
俺も白バックの画面みてるとイライラしてくることある
ブルーライトカットするメガネするようになって随分なくなった。
0388Name_Not_Found
垢版 |
2018/05/10(木) 22:09:46.17ID:???
プログラミングってのは仕事で初めてチャレンジするようなものではないと思う
勿論そこで知らなかった自分の能力に気づくってこともあると思うけど
逆に言えばそれがないほとんどのケースでは上手くいかないのがオチだと思う
やっぱり趣味として若いうちから学ぶこと自体を目的として
ひたすら自分が満足行くまで学んできたのとは違う
0389Name_Not_Found
垢版 |
2018/05/10(木) 22:16:46.90ID:???
何事もそうだけど、
・イライラして全く頭に入ってこない
→あーもう無理 なら向いてる向いてないを語れるレベルでない

・イライラして全く頭に入ってこない
→でも悔しいから必死に分かるまで頑張ってみるぞ!!
ここまでやらないと

それでも駄目なら確かに自分には向いてないんだなと言っていい
特別な才能がないことは短期で分かるとしても、
そんな本当に向いてるかどうかがすぐ分かるわけないんだからさ

まあ天才でも凡才でも、分かるまで頑張らなければ分からないのは同じだからさ
結局は自分がどこまで頑張れるかだよ
幸いなことにこの業界は一度理解できれば、スランプとか言うのも基本ないしね
誰でも分かるとこまでいければ分かるんだよ
0390Name_Not_Found
垢版 |
2018/05/10(木) 22:25:26.44ID:???
>>371だけど

>>389
たしかに全くその通りだと思う
詳しくは言えんが、まぁよくある未経験歓迎のSE職に就いて研修中なのよ
1か月必死こいてやっとできるのがhtmlに毛の生えた程度、ログイン機能すら作れないほど重症。周りはみんなオシャレなアプリを作りつつある
そもそも超文系脳なのか、高校数学あたりから長文問題一問も解けたことないんだよね。
よく「プログラミングは文系でもできる!数学苦手でもok!英語できりゃ問題なし!」って言われてるのみるけど、英語は割と(相対的に見ればかなり)出来る方。でもJSは全く理解できない。
プログラミングも1から教える感じじゃなく、最低限の教材与えて「あとは自分でやってね」スタイルだから誰かに聞くこともできないし詰んでるわ…
0391Name_Not_Found
垢版 |
2018/05/10(木) 22:38:31.88ID:???
>>390
言っておくけどHTMLやCSSでいろいろ画面を作るっていうのはプログラミングの中でも特殊だからな
別にひたすら文字だけ売ってデコーダとか作るのもプログラミングだぞ
Node.jsのような存在だってある

ログイン機能とかというのも、まあ他のものだってそうだけど
言われて色々作る際に必要な知識やノウハウって山程あるけど
その難しさやとっつきにくさがプログラミングの本質に起因するものなのか、って言ったら全く違うよ

それはただ単に例えばWebサイトを作る、っていう仕事の問題とその会社はどうかっていう話であって
それを以てプログラミングの面白さや向いてるだの何だのは語れない
0392Name_Not_Found
垢版 |
2018/05/10(木) 22:46:41.78ID:???
なんかお悩み相談室みたいになってんな
0393Name_Not_Found
垢版 |
2018/05/10(木) 22:47:23.08ID:???
>>391
そうか、俺が無知なだけでプログラミングつってもいろいろあるんだな…
プロゲラミングに合わないのではなく社風に合わないのかもしれん、上から降りてくる奴じゃなく自分なりのやり方でやってみる
0394Name_Not_Found
垢版 |
2018/05/10(木) 22:49:57.06ID:???
すら、ってログイン機構なんて(真面目に作るなら)高等もいいとこじゃねーか

教師が悪い可能性
0395Name_Not_Found
垢版 |
2018/05/10(木) 22:50:53.14ID:???
そうだな
通訳の会社ですと言っても
実際は英語の歌詞をひたすら翻訳する仕事をさせられてるのかもしれんしな
0396Name_Not_Found
垢版 |
2018/05/10(木) 22:54:29.26ID:???
ログイン機構なんてタイミングアタックとかも考慮して完璧に作れるヤツなんて殆ど居ないし
フレームワークなどで実装するにしてもそれが本当に安全で正しく動くかを分かって使えるのは
それはそれでやっぱりスクラッチで作るのと同程度の能力がいるから殆ど居ない
0397Name_Not_Found
垢版 |
2018/05/10(木) 23:05:09.29ID:???
きっと冗談抜きに神クラスの教育能力を持つ教育担当がいるんだろう
でなきゃ<form><input><input></form>を書けるようにするだけってやつだ

後者だって仕組みを学ばせないと公害レベルの人間ができあがるが
0398Name_Not_Found
垢版 |
2018/05/10(木) 23:10:39.07ID:???
非同期処理は、別のスレッドを、OS 管理の下、OS のタイミングで動作させるから、
元のスレッドから操作できないし、どちらが先に実行されているかもわからない、
と覚えておけばよい

だから、元のスレッドは、非同期処理の終了を待つ事しかできない

JS は、ES3, 5, 6 と加速度的に難しくなっていく。
やれば何とかなるのは、ES3 の話だろ

初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017

これを読んでみ。
全員が逃げ出すはずw
0399Name_Not_Found
垢版 |
2018/05/10(木) 23:12:29.61ID:???
nodeとかはともかくUAで動いてるjavascriptって
非同期処理って概念がありはしても原則シングルスレッド稼動じゃないんけ?
0400Name_Not_Found
垢版 |
2018/05/10(木) 23:34:52.87ID:???
>>398
javascript weeklyとかでチラチラes2015に触れてたからかこれ買って読んだら9割方知ってることばっかで金損した。
こんなお触り程度の本は普段からjs触れてるなら買う価値なし。
サイ本の改訂を待つべし。
0401Name_Not_Found
垢版 |
2018/05/10(木) 23:39:20.32ID:???
そうだな
Workerとかがそれに当たるわけだが
でもシングルスレッドでの非同期処理がマルチスレッドでのそれよりも単純かと言うとそんなことはない
マルチスレッドではマルチスレッドだからこそ共有するものは制限するし、待ち合わせとか気をつけるが
シングルスレッドだとテクニックとして原理的に保証される順序に頼ることも多いので
その分保証されない順序や共有範囲が大きいことによる衝突事故で嵌まることも多い
0402Name_Not_Found
垢版 |
2018/05/10(木) 23:40:31.86ID:???
>>400
サイ本読んだことがあるならJSのベースはあらかた理解してるということだから
次は仕様書を読むと良いと思うよ
0403Name_Not_Found
垢版 |
2018/05/10(木) 23:44:00.86ID:???
>>401
なんかどこぞで流行のリライトっぽい
0404Name_Not_Found
垢版 |
2018/05/11(金) 14:00:11.63ID:???
>>403
肝心要が抽象的なので、同じ考えを持っている人だけに「そうだよね」と共感を求める意見だからだね
説得力はない
0405Name_Not_Found
垢版 |
2018/05/11(金) 15:51:46.28ID:???
lodashのドキュメントページがくそ重いのですがいい方法はないでしょうか?
0406Name_Not_Found
垢版 |
2018/05/11(金) 16:01:31.78ID:???
lodashのtimesを使えば

_.times(10).forEach((i)=>{
})

のようにrubyっぽいループが出来ますが、ただループするだけのために配列を作っているので
いささか富豪的ではあります
このやり方はアリなのでしょうか?
0407Name_Not_Found
垢版 |
2018/05/11(金) 16:14:17.23ID:???
たかだかそんなことだけのためにライブラリ入れるのか

Array(10).fill().forEach((_, i)=>{
})

で足りるだろ。
0408Name_Not_Found
垢版 |
2018/05/11(金) 16:45:01.30ID:???
普通にfor()書くんと何が違うん
0409Name_Not_Found
垢版 |
2018/05/11(金) 17:08:41.31ID:???
>>406
> このやり方はアリなのでしょうか?
アリ。富豪的というのは人間の作業をコンピュータやらせるという
コンピュータが作られた目的そのものだから

あと、それ少し無駄があるよ。これでいい。

_.times(10, function(i) {
 console.log(i);
})

もちろんこれもあり

_.times(10, i => console.log(i));

>>407
どうやらIEで動かないようだ

>>408
関数型的なのと、簡単にかけること
0410Name_Not_Found
垢版 |
2018/05/11(金) 17:14:43.67ID:???
>>405
> lodashのドキュメントページがくそ重いのですがいい方法はないでしょうか?
それは初めて聞いたな。スマホでみてるの?
それともなんか変なプラグインでも入れてるんじゃね?

ここで調べてみても、速度Fast、最適化Goodだし
https://developers.google.com/speed/pagespeed/insights/
?hl=ja&url=えいちてぃーてぃーぴーえす%3A%2F%2Flodash.com%2Fdocs%2F4.17.10&tab=desktop
0411Name_Not_Found
垢版 |
2018/05/11(金) 18:26:41.47ID:???
chromeアプリて開発中止みたいなこと聞いたけどもしかしてPWAがその上位互換?
0412Name_Not_Found
垢版 |
2018/05/11(金) 18:30:09.03ID:???
pwaなどという技術は無い。
マーケティング用語だとgoogleのエンジニアも言ってる。
新しいWeb技術こう組み合わせて使ったらいいんじゃね?というスローガンのようなもの。
0413Name_Not_Found
垢版 |
2018/05/11(金) 19:30:35.83ID:???
web2.0でSNSとか非同期通信が普及したみたいに
将来に過去振り返ってみて「web3.0でPWA的なスタイルが普及したなぁ」みたいな?
0414Name_Not_Found
垢版 |
2018/05/11(金) 20:24:06.40ID:???
組合せって言うとajaxなんかは典型かも
0415Name_Not_Found
垢版 |
2018/05/11(金) 22:08:34.14ID:fT2D+WUg
>>1
このサイトのTOPページにあるふわっと画像が入れ替わるのは
どこで画像を指定してるの?
「A Simple jQuery Slideshow」スクリプトを使ってると思うんだけど
ソース見ても分からなかった。
http://www.bellecasa.jp/
0416Name_Not_Found
垢版 |
2018/05/11(金) 23:05:18.71ID:???
>>415
$('#bgstretcher li img');
li要素のスタイル属性
styledisplay: list-item;
z-index: 1;
overflow: hidden;
width: 1200px;
height: 512px;
opacity: 0.235277;

opacityの値変えてるだけ
0417Name_Not_Found
垢版 |
2018/05/11(金) 23:22:10.06ID:fT2D+WUg
そこで不透明度を変えてるのね
ありがとう
0418Name_Not_Found
垢版 |
2018/05/12(土) 00:30:03.58ID:???
初診種者なのですが
Javascript+Node.jsだけでサイト運営出来るんでしょうか?
0421Name_Not_Found
垢版 |
2018/05/12(土) 06:59:05.76ID:???
>>415-417
fadein アニメか。こういう感じかな?

$(this).css({opacity:'0'}).animate({opacity:'1'}, 2000)

プラグインを使わないスキルを身につけたい人のための
jQueryテクニカルノート、矢次 悟郎、2016

>>418-420
Node.js + Express Generator が、Ruby on Rails と同じ

先に、無料の「Rails チュートリアル」で勉強しな。
これをやっていないと、web アプリの作り方がわからないから
0422Name_Not_Found
垢版 |
2018/05/12(土) 08:04:42.42ID:???
ステマじゃないんだったら、ISBNかASINだけ書くようにしよう

検索に引っかかる効果無くなるし
ISBN・ASINがあれば書籍名も著者名も要らず即座に検索できる
0424Name_Not_Found
垢版 |
2018/05/12(土) 10:01:20.21ID:???
(1)アロー関数(さらに省略版)の即時実行できると思ったらできませんでした
var obj = ((x)=>{a:x})(10);
console.log(obj);//undefined

(2)オブジェクト返さなければいけました
var obj = ((x)=>x+10)(10);
console.log(obj);//20

(3)アロー使わずに即時の別の書き方ならいけました
var obj = ((x) => {return {a:x}})(10);
console.log(obj);

なぜ(1)は無理なのでしょうか
(4)文字型ならできました
var obj = ((x)=>'{a:'+x+'}')(10);
console.log(obj, typeof obj);
ので、(1)では{}が関数のブロックと認識されているということでしょうか?
しかしundefinedが返ってきてエラーもなしとは一体どういうことでしょうか?
0425Name_Not_Found
垢版 |
2018/05/12(土) 10:11:15.99ID:???
あとこれはいけました
var obj = (x=>({a:x}))(10);
({})の()をとれたらと思うのですが・・
0426Name_Not_Found
垢版 |
2018/05/12(土) 10:29:12.22ID:???
>>424
推察の通りオブジェクトじゃなく関数のブロックとして認識されてる

その中だとa:は単なるラベル
要するに()=>{1;}と同じで何も返さない関数が出来る
0427Name_Not_Found
垢版 |
2018/05/12(土) 10:46:44.87ID:???
>>426
なるほどラベルというものがあったのですね
0428Name_Not_Found
垢版 |
2018/05/12(土) 12:40:21.56ID:???
だからソース中にURLも書ける
http:がラベルで//以降がコメントになるから
0430Name_Not_Found
垢版 |
2018/05/12(土) 16:31:14.07ID:???
>>410
こんなサービスがあったのですね
ありがとうございます
0431Name_Not_Found
垢版 |
2018/05/12(土) 16:31:25.57ID:???
なんか話ずれてないか?

> (1)アロー関数(さらに省略版)の即時実行できると思ったらできませんでした
> var obj = ((x)=>{a:x})(10);
> console.log(obj);//undefined

実行できてる。xをそのまま返すのではなく、alertをしてみれば
alertが表示されていることから、実行できてることがわかる
var obj = ((x)=>{a:alert(x)})(10);

即時実行かどうかは関係ない。以下は同じ意味
{}でくくると値を戻すのにreturnが必要なだけ

x => x + 1
x => (x + 1)
x => { return x + 1 }


アロー関数の右側は、単体の式(=一行)を使用するようにしたほうが良い。
{} を使うときは複数行で書きたい時。
だけどアロー関数は、関数を引数(値)のように見せて使うもので
複数行なんか書いてしまったら、関数のようにしか見えない
0432Name_Not_Found
垢版 |
2018/05/12(土) 16:50:55.59ID:???
アロー関数なんだから関数だろバカか
〜のように見せて使うもの、なんて仕様のどこにも書かれてない。思い込み乙
0433Name_Not_Found
垢版 |
2018/05/12(土) 19:04:29.36ID:???
「関数」という分類の下に「アロー関数」とは別個の「普通の関数」という分類が暗黙的にあるんでしょ

(ES仕様に限らず)仕様にはそんな分類の定義は無くても、事実上想定されていることはよくある(「わざわざ定義するほどでもない」ので省略される)
0434Name_Not_Found
垢版 |
2018/05/12(土) 19:20:08.98ID:???
「俺の妄想は正しいんだ!書くまでもないから省略されてるだけだ!」
0435Name_Not_Found
垢版 |
2018/05/12(土) 19:26:36.84ID:???
>>431は合ってると思うが
関数の内容が一つのreturn文だけのときに"return "記述を省略できるのはアロー関数だけの仕様なんでしょ
この違いがあるんだから、「普通の関数」と「アロー関数」とが別々に存在しているといえる

んで、アロー関数は主に一return文の用法を想定して作られているとも言える
0436Name_Not_Found
垢版 |
2018/05/12(土) 19:40:41.65ID:???
自演乙。
.forEach(v => {console.log(v);})などは想定されていないと。
0437Name_Not_Found
垢版 |
2018/05/12(土) 19:44:45.35ID:???
主に を無視して0か100かの極論に持ってくの好きだね
0438Name_Not_Found
垢版 |
2018/05/12(土) 19:46:43.32ID:???
thisガン無視で主になんて言われても
0439Name_Not_Found
垢版 |
2018/05/12(土) 19:50:12.26ID:???
「主に〜を想定しています」こんなのは仕様じゃありません。
白黒はっきりしてください。
作文かなにかと勘違いしてないか。
0か100、おおいにけっこう。40%の確立でこう、60%の確立でこう、とか書かれてもどっちにも決まらず価値ゼロなんだが。
0440Name_Not_Found
垢版 |
2018/05/12(土) 19:53:11.76ID:???
>事実上想定されていることはよくある
ソースplz
0441Name_Not_Found
垢版 |
2018/05/12(土) 20:10:46.84ID:???
>>440
わざわざ定義するほどでもないので省略されるんだそうだ。
無敵の論法じゃんw
いい歳こいてこんな詭弁恥ずかしくないのかね。
0442440
垢版 |
2018/05/12(土) 20:12:14.82ID:???
>>441
これ詭弁ではないだろ
0443Name_Not_Found
垢版 |
2018/05/12(土) 20:20:07.46ID:???
Aである。

Aであると言うのなら、Aである証拠を出せ!

Aであることは当たり前なので、わざわざ書かれないのである。
0445440
垢版 |
2018/05/12(土) 20:24:57.80ID:???
>>443
命題の証明の際に誤った論理展開を紛れ込ませるのが詭弁
>>433は証明をしているわけではなく誤った「論理展開」を用いてもいない
0446440
垢版 |
2018/05/12(土) 20:25:28.30ID:???
だから俺はソースplzとだけ書いているわけだな
0447Name_Not_Found
垢版 |
2018/05/12(土) 20:37:57.70ID:???
ソースはイルミナティによって隠蔽されているためありませんが、本当です。信じてください。
0448Name_Not_Found
垢版 |
2018/05/12(土) 21:01:24.61ID:???
そんなことを言ったら例えばJSではセミコロンが省略できるので
セミコロン無しで使うことが主に想定されてると言えるからな

つうか逆に組み立てて言えば
基本的にセミコロン無しで使える言語を望んで生み出された言語が
セミコロン無しで使うことが主に想定されてると言えるわけで

ならアロー関数が
主に一行で書く関数の理想の姿として作られたかというとそうではないわな
0449Name_Not_Found
垢版 |
2018/05/12(土) 21:12:44.34ID:???
イルミナティならしょうがない
0450Name_Not_Found
垢版 |
2018/05/12(土) 21:13:05.05ID:???
素朴な疑問です
以下ネットから拾ったソースなんですが
const version = "ES6";
if (version === "ES5") {
console.log("ECMAScript 5");
} else if (version === "ES6") {
console.log("ECMAScript 2015");
} else if (version === "ES7") {
console.log("ECMAScript 2016");
}
最後にelseがないこういうケースの場合elseで繋げる必要性はありますか?
if(){}
if(){}
if(){}
こう書くのと違いがあるのかないのかを教えて欲しいです 速くなるとかあるんでしょうか?
どなたか宜しくお願いします
0451Name_Not_Found
垢版 |
2018/05/12(土) 21:18:08.40ID:???
=== ES5だったら他の分岐試すの無駄だろ
0452Name_Not_Found
垢版 |
2018/05/12(土) 21:19:15.23ID:???
versionに"ES7"が入ってるときは変わらない
versionに"ES5"や"ES6"が入ってるときは上のif elseの方が速い
0453Name_Not_Found
垢版 |
2018/05/12(土) 21:19:24.06ID:???
>>1-451
突っ込まれて反論できなくなったら他人の振りします
0455Name_Not_Found
垢版 |
2018/05/12(土) 21:44:44.98ID:???
>>436
> .forEach(v => {console.log(v);})などは想定されていないと。


.forEach(v => console.log(v))
こう書いたほうがスッキリするで?
0456Name_Not_Found
垢版 |
2018/05/12(土) 21:46:20.23ID:???
>>448
> 主に一行で書く関数の理想の姿として作られたかというとそうではないわな

ちょっと違うな。結果として一行にはなるが、
「関数値」のようなものだな。

関数は定義してから、呼び出す。
でもアロー関数の場合は、関数の値化して渡すって感じ
0457Name_Not_Found
垢版 |
2018/05/12(土) 21:49:25.04ID:???
>>455
それだとわざわざundefined返してから利用せずに潰してるが何か意図があるのか?
スッキリするとかしないとか感覚で決めるなよ
0458Name_Not_Found
垢版 |
2018/05/12(土) 21:50:47.02ID:???
>>456
っていう妄想ですか?
それなら妄想ですが、って頭に書いてくれません?
妄想じゃないならソースプリーズ
0459Name_Not_Found
垢版 |
2018/05/12(土) 23:00:06.83ID:???
ふと思ったんですがSPAだとIDのバッティングが容易に起きますよね
たとえばモーダルウインドウにフォーム要素を表示する場合、
そのフォーム要素一つ一つにIDをふると、同じIDが複数の要素に対してふられるような状況が容易に発生します
SPAではIDをふらずに属性セレクタを使って指定するようにしたりして
極力IDをふらないようにした方がいいのでしょうか?
0461Name_Not_Found
垢版 |
2018/05/12(土) 23:12:36.65ID:???
>>460
SPA作ったことありますか?
たとえばtitleというような一般的な名前は複数の文脈で使われるのでぶつかりやすいですし
エリアにふるIDと要素にふるIDもぶつかりやすいです
IDは言ってみればグローバル変数みたいなものなのですよ
0462Name_Not_Found
垢版 |
2018/05/12(土) 23:26:50.90ID:???
idに一般的な名前つけるセンスwww
0463Name_Not_Found
垢版 |
2018/05/12(土) 23:27:56.83ID:???
つーかサンプルを示してくれたほうが伝わりやすいと思う
0464Name_Not_Found
垢版 |
2018/05/12(土) 23:28:47.16ID:???
> 極力IDをふらないようにした方がいいのでしょうか?

はい
0465Name_Not_Found
垢版 |
2018/05/12(土) 23:39:28.27ID:???
設計や実装がアホだと容易にバッティングするかもしれないな
そのようなアホを営業にでも配置転換すればよい
0466Name_Not_Found
垢版 |
2018/05/12(土) 23:44:54.51ID:???
>>459
formX-title みたいに要素の所属を表す名前でも接頭すればいい

特定の要素を参照する用途に属性セレクタは大げさかもしれない
0467Name_Not_Found
垢版 |
2018/05/12(土) 23:50:15.72ID:???
>>450
最適化というものがあるので速度は変わらないと考えるべき
0469Name_Not_Found
垢版 |
2018/05/13(日) 00:58:30.83ID:???
>>461
IDは極力使わない。

俺がIDを使う時は、”サイト全体で" 一意になる時
ページのIDとしてしか使わない

IDはページ内で一意であればいいんだが、ある時
ページを縮小したプレビューを複数、1つのページに表示する
ということをやった時にぶつかってしまったから

基本的にいらねぇよなぁを突き詰めていったら
ページのIDだけで十分となった
0470Name_Not_Found
垢版 |
2018/05/13(日) 01:03:41.58ID:???
アロー関数についてWebArchiveも使って関連資料や立案者のBEのコメントなどをできる限り探ってみたんだが
結局JSに取り入れられる際に新しく思案されたのはthisの取り扱いくらいで
アロー関数自体は新しいものではなく関数を短く書きたいというモチベーションが確かにあって
他にも案があった中、BEがCSやC#から輸入したものであるので、その言語でどうして実装されたかを調べよう

CSはアローをどこから輸入したのかハッキリとはわからなかったが、
GitHubの最初の方のコメントをざっと読んでいくとアロー関数関連の話中に
開発陣が度々Haskellのことを引き合い出してるのでそこからだろう
ソースは不明だがWikipediaの影響を受けた言語の中にも確かにある

C#の方の調査は手を抜くが公式では「ラムダ式」と呼ばれている
Haskellのものも含めてこれらは究極的にはラムダ計算に由来している
そこまで調べたところでどうでも良くなった
0471Name_Not_Found
垢版 |
2018/05/13(日) 01:15:19.16ID:???
CoffeeScriptでは
thisをバインドしないアロー関数(->)と
thisをバインドするファットアロー関数(=>)の
二種類があるんだよな。

JavaScriptで採用されたのは前者のみ(書き方は=>なんだがw)

単に短く書きたいのであれば、DOMイベントハンドラなんか
後者が有ったほうが便利と思うはずんだが採用されなかった


これもさ、アロー関数が、それは関数じゃなくて値っぽく考えるべし
と考えれば、thisが変わらないのも納得できるんだよな

アロー関数は短く書きたいと同時に、thisを気にしなくて良いものとして
必要だったんだと思うよ
0472Name_Not_Found
垢版 |
2018/05/13(日) 01:25:42.37ID:???
猿と人間の中間がいないのもさ、神様みたいな行為存在が俺たち人間を作ったと考えれば納得できるんだよなwww
0473Name_Not_Found
垢版 |
2018/05/13(日) 01:26:25.63ID:???
> これもさ、アロー関数が、それは関数じゃなくて値っぽく考えるべし
> と考えれば、thisが変わらないのも納得できるんだよな

      ___    ━┓
    / ―\   ┏┛
  /ノ  (●)\  ・
. | (●)   ⌒)\
. |   (__ノ ̄  |
  \        /
    \     _ノ
    /´     `\
     |       |
     |       |
0474Name_Not_Found
垢版 |
2018/05/13(日) 01:30:40.85ID:???
bindする方採用しなかったのはfunctionが既にあるからだろうが。
短くしたいのが理由ならfunctionと被ろうがbindする方のアローも入れてたはずだろう。
方々から集めた情報すべてに自分の妄想をサポートさせようとして矛盾しまくってるな。
おまえの妄想がセンスないからそうなっちゃうんだと思うよ。
0475Name_Not_Found
垢版 |
2018/05/13(日) 01:32:48.61ID:???
だからそう言ってるじゃん。

単に短くしたいだけじゃなくて、
値のように使いたかったのは、thisバインドなしの方だって
0476Name_Not_Found
垢版 |
2018/05/13(日) 01:32:53.99ID:???
jQueryニキ、分かってないくんに続くマジモンだぞ。カッコいい名前募集!
0477Name_Not_Found
垢版 |
2018/05/13(日) 01:35:34.33ID:???
その子がさ、踏み切りでこっち見て笑ったんだよ。
それもさ、俺のこと好きだと考えたら納得いくんだよな!


天なおチャック開いてた模様
0478Name_Not_Found
垢版 |
2018/05/13(日) 01:43:33.33ID:???
うわっ、そんなこと考えてきたんだw
0479Name_Not_Found
垢版 |
2018/05/13(日) 01:44:01.24ID:???
話は聞かせてもらった。
人類が滅亡すると考えると納得がいく。
0481Name_Not_Found
垢版 |
2018/05/13(日) 02:21:44.42ID:???
てか根拠が俺はこう思うだけでしょ。
お前が思うんならそうかもなくらいしかかけてやれる言葉ないわ。同意求められても困る。
値っぽく考えるの意味もフワッっとし過ぎててよくわからんw
jsの関数はアロー関数以前から第一級オブジェクトとして自由にとりまわせたが。
0482Name_Not_Found
垢版 |
2018/05/13(日) 09:05:44.99ID:???
アプリはやらずWebサイトのみを製作しているんですけど、レスポンシブサイトを作るのにReactって向いていますか?
0483Name_Not_Found
垢版 |
2018/05/13(日) 09:22:04.49ID:???
>>482
レスポンシブサイトを作るという理由でReactを選ぶ人はあまり聞いたことがないかも
(どちらかというとSPAを作りたいと理由が多いかなーと個人的には思う)

メディアクエリーを勉強した方が近道な気がするよ
0484Name_Not_Found
垢版 |
2018/05/13(日) 10:00:42.63ID:???
やっぱりそうなんですね
オブジェクト指向に則って制作するときに相性がよいと聞いたのですが、サイトや書籍を見ると対象がアプリ開発のものばかりだったので…

メディアクエリっていうのは、ブラウザの幅を取得して処理を出し分けるといったことを指しているのでしょうか
0485460
垢版 |
2018/05/13(日) 10:31:31.57ID:???
アドバイスありがとうございました
IDにはプリフィックスを付けて
まず衝突しないようにすることにします
0486Name_Not_Found
垢版 |
2018/05/13(日) 11:54:53.51ID:???
BEのコメントを読んでるとbindしない方を採用しなかったのは
似たのを2ついれても煩雑になるから
つまりバランスの問題が大きかったんだと思うよ
2014~15年くらいのESDiscasでも何回か挙がってたと記憶してるが
そういう結論になってたと思う
0487Name_Not_Found
垢版 |
2018/05/13(日) 16:25:25.31ID:???
いいえ、関数を値のように見せて使うためです。
当たり前すぎて議論すらされていないので残っていないのです。
0488Name_Not_Found
垢版 |
2018/05/13(日) 19:21:42.98ID:???
1回目.toDataURLでcanvasから画像データ取り出すことに成功しましたが
2回目以降
Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
でエラーでてしまうのですがどうにかなりませんか

function hoge(){ /* .toDataURLを取得するまでの処理 */ }
hoge(); // 1回目のhoge()内ならループなどで何度.toDataURLしても取得できる
hoge(); // なぜか2回目からは最初の.toDataURLでエラーでる
みたいな感じです
(クロスドメインの画像です)

あと疑問なのは、クロスドメインが問題ならなぜ最初は取得できたのか・・?というところです
0489488
垢版 |
2018/05/13(日) 20:18:15.22ID:???
補足というか訂正です
>>488では.toDataURLの処理をするスクリプトを置いたサーバーとは全く関係のない
別サーバーの画像を取得できたのですが
試しに(>>488とはまた別の)別のクロスドメインサイトの画像を指定したらCROSエラーが出てきました

できるのとできないクロスドメインサイトあって混乱してきたので
>>488の質問は一時保留しときます
0490Name_Not_Found
垢版 |
2018/05/13(日) 22:22:59.10ID:???
追記 >>488
2回目実行でエラーが出てくる問題は
img.src='画像url';
img.crossOrigin = "Anonymous";
としていたのを逆にしたら問題なくなりました
0491Name_Not_Found
垢版 |
2018/05/13(日) 23:09:18.75ID:???
canvasから画像データ取り出すと、

たいてい、安全ではないとか言われる
0492Name_Not_Found
垢版 |
2018/05/14(月) 06:18:24.34ID:???
別ドメインの画像を貼り付けたりすると
以後そのCanvasは汚染されてるものとみなされてデータの取得が禁止される
0493Name_Not_Found
垢版 |
2018/05/14(月) 08:11:26.62ID:???
その理屈だと別ドメインのJavaScriptを読み込んだら
HTMLは汚染されてるってことになるのか?
0494Name_Not_Found
垢版 |
2018/05/14(月) 09:01:22.32ID:???
>>493
その理屈を満たすにはcanvasでjsファイルを読み込む必要があるわけだが、やりかたを是非教えてくれ
0495Name_Not_Found
垢版 |
2018/05/14(月) 11:57:11.87ID:???
入力中の文字列の中に、前もって登録していたキーワードがあったら、
自動的にリンクになるような機能を実装しようと思います
どうやれはいいですか?
0496Name_Not_Found
垢版 |
2018/05/14(月) 12:49:50.33ID:???
onchangeでvalueに正規表現でmatchかける
0497Name_Not_Found
垢版 |
2018/05/14(月) 13:02:25.61ID:???
inputやtextareaの中で、リンク、させんのか?
0498Name_Not_Found
垢版 |
2018/05/14(月) 13:10:04.64ID:???
なにがしたいのかよくわからんな
入力中ってことはtextareaとかなんだろうが、リンクってことは違うよね
あと、リンクにした後で変更する時はどうしたいのか
そのtextarea内にaタグがあっていいのかどうか

>>496
「入力中」だから違うね
onchangeはフォーカスが外れた時に発火する
0499Name_Not_Found
垢版 |
2018/05/14(月) 13:14:18.20ID:???
リンクさせないといけないので、textareaじゃないです
google documentみたいな、まぁそこまではいきませんが、
リンクだけはリッチテキストでやるみたいな感じです
0500Name_Not_Found
垢版 |
2018/05/14(月) 13:48:13.66ID:???
前提が明らかでなくて構造が入り組んでるなら自分で考えてくれしかないじゃん
0501Name_Not_Found
垢版 |
2018/05/14(月) 14:13:18.73ID:???
ロケットみたいに人が乗れて宇宙に行ける乗り物を作ろうと思います。
どうやれはいいですか?
0502Name_Not_Found
垢版 |
2018/05/14(月) 14:36:11.70ID:???
東大阪の町工場に聞いてくれ
0503Name_Not_Found
垢版 |
2018/05/14(月) 15:34:26.40ID:???
入り組んでませんよ
ただリンクするだけです
ただかなり前に同じようなことをやった時には、
contenteditableな要素のHTMLを、単純に置換して置き換えるだけだと、
カーソルの位置がリセットされてしまった記憶があります
それで
A cross-browser JavaScript range and selection library.
https://github.com/timdown/rangy
これを使って実装したのです
ただ、どういう実装だったのかすっかり忘れてしまいましたし、
このライブラリも2015年で更新が止まっているので、
今なら今のやり方があるんじゃないかと思ったのです
0504Name_Not_Found
垢版 |
2018/05/14(月) 15:59:53.89ID:???
designModeは知ってたけどcontenteditableは知らなかったな

質問の実質はキャレット操作でしょ
キャレット位置は単純にかつ地道にカウントして記憶して戻すしかないでしょ
0505Name_Not_Found
垢版 |
2018/05/14(月) 16:39:31.52ID:???
contenteditableのキャレット操作と
inputやtextareaのキャレット操作と、なんか違いがあるの?
0506Name_Not_Found
垢版 |
2018/05/14(月) 17:06:15.65ID:???
キャレットの位置はこないだも質問が出て大ゲンカになってなかった?
0507Name_Not_Found
垢版 |
2018/05/14(月) 18:07:17.98ID:???
便乗で質問します
キャレット無しの場合、本来TEXTAREAやINPUTにキーボード入力するような操作を
DIV要素でやるにはどのような構成になるのでしょうか(googleドキュメントみたいなやつです)

TEXTAREAにキーボード入力したものをval()で取得してDIVにコピー、みたいなのではありません
さらに全角半角や漢字など(TEXTAREAへ入力できるものすべて)も判別したいです

keydown取得してkeyCodeで半角全角を振り分け→漢字などはスペースキーの監視で。
全角時にはバックスペースキー、半角切り替えも監視
など考えましたがそんなめんどくさい処理をしないといけないのか・・?と眉唾でした
(そのためのTEXTAREAやINPUTだと思いましたが)
例えばGoogleドキュメントなどはそういうめんどくさいキー監視をしているのでしょうか?
0508Name_Not_Found
垢版 |
2018/05/14(月) 18:09:37.94ID:???
キー監視じゃIMEがどんな変換したかわからないから面倒如何の前に不可能でね
0509Name_Not_Found
垢版 |
2018/05/14(月) 18:20:37.28ID:???
例えばhiddenしたTEXTAREAにフォーカスを当てて・・
みたいなことができればと、hiddenしたtextareaにfocusしてみましたが
TEXTAREA内の変更にまでは至りませんでした

>>508
たしかに・・
0510Name_Not_Found
垢版 |
2018/05/14(月) 18:23:42.47ID:???
textareaは表示のまま、potitionでwindowから見切れるように
ならできました
ただ、キーボード入力のプルダウンメニューが邪魔になりますが
0512Name_Not_Found
垢版 |
2018/05/15(火) 00:57:32.59ID:???
たしかにキャレット位置を保存しておいて、HTMLを書き換えてから戻す
みたいな処理だった気がします
で、すごーーく面倒くさかった記憶があります
RangeオブジェクトとかSelectionオブジェクトとか、
普段全く使わないようなオブジェクトを使って・・
しかもそれらのオブジェクトが異様に難解だった記憶があります
今もそれですかね〜
0513Name_Not_Found
垢版 |
2018/05/15(火) 01:28:59.58ID:???
>>495
jQueryのtext()では、タグがエスケープされるけど、
html()では、タグも有効になる

要素の内容が変更されたら、change イベントが発行される

正規表現を使う
0514Name_Not_Found
垢版 |
2018/05/15(火) 03:08:21.53ID:???
一定の領域では泥臭い作業から逃げられん
論理的に必要なことはどうした考えても何度考えても必要
0515Name_Not_Found
垢版 |
2018/05/15(火) 05:57:19.24ID:???
>>507
要素の内容が変更されたら、jQuery のchange イベントが発行される

他には、keypress イベントとか
0516Name_Not_Found
垢版 |
2018/05/15(火) 06:31:26.60ID:???
IME API使えばいいじゃん
対応環境無いけど
0517Name_Not_Found
垢版 |
2018/05/15(火) 06:50:37.39ID:???
div要素の内容が変更されたら、しかしそもそもdiv要素にどうやってキーボードから書き込むの、っていう話じゃないの>>515
隠しtextarea法が定石なの?
0518Name_Not_Found
垢版 |
2018/05/15(火) 07:05:39.60ID:???
定石なんて無い
それでバリアがある環境や、ガラケーみたいなテキスト編集環境に対応できるかは分からんし
一般論としてできる限り細かい調整はしないで諦めたほうが良い
0519515
垢版 |
2018/05/15(火) 07:08:00.41ID:???
>>515
自己レス

jQuery のchange, keypress イベントでは、うまくいかなかった
0520515
垢版 |
2018/05/15(火) 07:12:36.31ID:???
Electron アプリの、VS Code では、半角文字で入力補完が出る

Electron とか使わないと無理なのかも
0523Name_Not_Found
垢版 |
2018/05/16(水) 06:07:00.35ID:???
そういうのあるんですね
ありがとうございます
ただ要素中のHTMLを書き換えてキャレットを戻せばいいと思っていましたが
よく考えると文字を一文字書き加えるごとに全領域を書き換えるエディタなんてないわけで
テキストノードの中に潜って文字のレベルで操作する必要があると思います
そのためのオブジェクトがRangeオブジェクトだったと思います
面倒くさいですが、面倒くさい方法しかないなら、するしか仕方ないですね・・
0524Name_Not_Found
垢版 |
2018/05/16(水) 08:26:59.14ID:???
改行ごとにspanやpで区切るなどして部分的な指定をしやすくすれば、
HTMLの書き換えでもいいのかもしれません
ただ、何か問題があったから前回そうしなかったのではないか、という気もします
0525Name_Not_Found
垢版 |
2018/05/16(水) 11:43:04.01ID:???
SelectionオブジェクトとRangeオブジェクトには、
ひととおりの API が定義されていますが、あまり使われていません。
本書でも解説しません。
(…)
Webアプリケーション上でリッチテキスト編集機能が必要な場合は、
ブラウザ間での差異を吸収してくれる既存のソリューションを適用するとよいでしょう。
インターネット上を探せば、そのようなエディタ部品がたくさん転がっています。

名著と名高いサイ本も、リッチテキスト編集周辺はそっけない記述&放り投げです
「たくさん転がっています」って、
これはそういうエディタ部品を作りたい人が読む本じゃないのかと問い詰めたいです
0526Name_Not_Found
垢版 |
2018/05/16(水) 12:06:09.71ID:???
>>525
テキストエディタの作り方って本があると思ってんの?
0527Name_Not_Found
垢版 |
2018/05/16(水) 12:12:00.56ID:nGgdPMwx
配列について質問です

var arr = [1, 2, 3, …]; と続く配列をタグで囲み、IDを割りふるにはどうすればいいでしょうか?

<b id="1">1</b> <b id="2">2</b> <b id="3">3</b> … のようにしたいです

下を試しましたが、IDにすべての配列が入ってしまったため、arr[0] と arr[1] としたら、3番目以降が2のままでした
console.log('<b id="' + arr + '">' + arr.join('</b> <b id="' + arr + '">') + '</b>');

よろしくおねがいします。
0528Name_Not_Found
垢版 |
2018/05/16(水) 13:56:16.68ID:???
>あまり使われていません。

ガリガリ使っとるがな
0529Name_Not_Found
垢版 |
2018/05/16(水) 17:09:18.55ID:???
>>527
var ary = [1, 2, 3, 4];
console.log(ary.reduce((acc, n) => acc + `<b id="${n}">${n}</b>`, ''));
0531Name_Not_Found
垢版 |
2018/05/16(水) 19:24:22.87ID:???
>>529
console.log(ary.reduce((acc, n) => acc + `<b id="${n}">${n}</b>`, ''));
console.log(ary.map(n => `<b id="${n}">${n}</b>`).join(''));


上の方を選んだ理由は?
0532Name_Not_Found
垢版 |
2018/05/16(水) 19:37:19.81ID:???
どっちでもいいけど新しい配列ちゃん生んですぐ殺すとかかわいそうやん
0533Name_Not_Found
垢版 |
2018/05/16(水) 21:46:41.00ID:???
そんな無理にmapだのコールバックだの使わなくとも
昔っからある
(''+ary).replace(/(\d+),?/g,'<b id="$1">$1</b>')
でいいじゃん
0535Name_Not_Found
垢版 |
2018/05/16(水) 23:57:30.03ID:???
>>533
お前が正規表現に慣れてるだけだろwwww
知らんやつにはそっちのほうが宇宙語だろw
0536Name_Not_Found
垢版 |
2018/05/17(木) 00:38:42.11ID:???
中途半端に新作作るならいっそリメイクの方が売れると思う
0537Name_Not_Found
垢版 |
2018/05/17(木) 00:42:57.16ID:???
jsは昔っからコールバック使うが。
そういう言語だ。
pythonとかから来た人かな?
0538Name_Not_Found
垢版 |
2018/05/17(木) 00:59:32.71ID:???
あ?昔から? JavaScriptでmapやreduceが
使えるようになったのはIE9からなんだが?
昔はそんなコード書いてねーよ
0539Name_Not_Found
垢版 |
2018/05/17(木) 01:40:37.68ID:???
IEをサポート対象外としてきたものは幸福である
0540Name_Not_Found
垢版 |
2018/05/17(木) 01:52:20.30ID:???
IE以外はネスケしかないって時代を知らんのだろうなw
それでよく昔からなんて言えたものだ
0541Name_Not_Found
垢版 |
2018/05/17(木) 02:11:05.39ID:???
>>538
おまえ頭湧いてんのかwww
コールバックって言ってんだろwwww
コールバック使うのはmapreduceの専売特許じゃねーんだよアホwwwww
0542Name_Not_Found
垢版 |
2018/05/17(木) 03:14:54.20ID:???
昔から使うsetTimeoutもcallbackだな
callbackが昔から使われていることと、replace()が昔からあることは別だが

callbackで配列や文字列操作する関数って昔からあったっけ?
0543Name_Not_Found
垢版 |
2018/05/17(木) 06:21:36.32ID:???
>>535
そんなんだから君には成長がないんだよ
0544Name_Not_Found
垢版 |
2018/05/17(木) 06:29:42.28ID:???
はぁ?去年から10kgは成長しとるで?
0545Name_Not_Found
垢版 |
2018/05/17(木) 07:30:57.08ID:???
もう成長する毛髪もないクセに・・・
0546Name_Not_Found
垢版 |
2018/05/17(木) 09:12:07.01ID:+SF4BPiN
自演で誤魔化し乙w
「昔からある〜でいいじゃん」とか言ってるくせに人には君には成長がないキリッとか笑うww
0547Name_Not_Found
垢版 |
2018/05/17(木) 20:16:53.61ID:???
何が言いたいんだこいつ
喧嘩したいだけのJS無関係レスは他所でやれ
0548Name_Not_Found
垢版 |
2018/05/17(木) 21:16:59.69ID:???
>>533
無理に正規表現を使わずとも、昔からあるfor文でいいじゃん

for (var i = 0, l = ary.length, s = ''; i < l; ++i) {
s += '<b id="' + ary[i] + '">' + ary[i] + '</b>';
}
0550Name_Not_Found
垢版 |
2018/05/17(木) 21:48:22.10ID:???
ループ外で使うsをループ初期化部で宣言するのは駄目じゃないか
0551Name_Not_Found
垢版 |
2018/05/17(木) 22:02:15.20ID:???
一旦代入したsを更新し続けるのも良くないよ
0554Name_Not_Found
垢版 |
2018/05/17(木) 22:26:25.10ID:???
>>550
それは確かだが、昔からシリーズとしてはsを外に出すのが正解だな
0555Name_Not_Found
垢版 |
2018/05/17(木) 22:37:26.27ID:???
>>533は数字以外が来たときに壊れる一番ダメなやつじゃん
0556Name_Not_Found
垢版 |
2018/05/17(木) 22:43:15.75ID:???
変数の異目的の再利用が、コードの見通し上よろしくないのは知ってるが
再代入も追記追加変更もNGというのは初めて聞いたな
0557Name_Not_Found
垢版 |
2018/05/18(金) 03:15:41.51ID:???
前から気になってたけどconstの変数は再代入するとエラー出るけど
const obj={}みたいにオブジェクトにすると中は再代入しまくりなのが混乱するのですが
これはobjectとかarrayはconst宣言しない方がいいってことですか?
0558Name_Not_Found
垢版 |
2018/05/18(金) 03:53:08.93ID:???
他のところでうっかりvarで再定義再代入されないだけと考えたほうがいいってこと
0559Name_Not_Found
垢版 |
2018/05/18(金) 05:49:13.18ID:???
>>556
const房というなんでもかんでもconstにすればいい、と考える極端な人がいるらしい
基本、気にしなくてOK
0560Name_Not_Found
垢版 |
2018/05/18(金) 06:00:17.51ID:???
const宣言された変数の中身がオブジェクトや配列だった時に中身の操作が可能なのは、なんで?
参照だから、って考えたら混乱しないし一応筋は通るけど、必然性はないよね
0561Name_Not_Found
垢版 |
2018/05/18(金) 06:19:08.20ID:???
const には「再代入不可」以外の意味はないからね
プロパティの更新も禁止したいなら
Object.defineProperty とか Object.freeze
0562Name_Not_Found
垢版 |
2018/05/18(金) 17:21:46.36ID:???
>>558-560
use strict宣言ではvarの代わりにconstを使う、みたいなのを見たのでてっきり変数宣言の主軸なのかと思っていました
>>561
なるほど(エラーは設定しないといけないみたいですが)そういう関数があるのですね
0563Name_Not_Found
垢版 |
2018/05/18(金) 18:58:08.98ID:???
constを基本にするのは別に悪いことじゃないよ
必須かと聞かれると自分はletばかりだけど
0564Name_Not_Found
垢版 |
2018/05/18(金) 19:35:55.40ID:rKRag9JE
TDZのクソ挙動が気に入らないのでvarです。
functionスコープで特に問題ない。
大規模開発するなら使うけど。
しないなら必要ない。不便なだけだぞ。
0565Name_Not_Found
垢版 |
2018/05/18(金) 21:06:39.05ID:???
それ本当にTDZの挙動に不満持ってるのか?
再宣言禁止で
let a = hoge
と次の
a = fuga
が揃わないとかならまだ少し分かるが
定義場所前でのundefinedを期待する必要性なんてまず無いだろう
0567Name_Not_Found
垢版 |
2018/05/19(土) 02:25:49.15ID:???
fromってどういうとき使うの・・?

var arr=['kyoto','oosaka'];
console.log(Array.from(arr, n=>`${n}-fu`).join(", "));
console.log(arr.map(n=>`${n}-fu`).join(", "));

mapでいいじゃん・・みたいな
0568Name_Not_Found
垢版 |
2018/05/19(土) 02:34:37.26ID:???
配列風オブジェクトを配列に変換したい時に使う
0569Name_Not_Found
垢版 |
2018/05/19(土) 13:30:15.68ID:TKsYmqdA
[...配列風オブジェクト]でいいじゃん
0570Name_Not_Found
垢版 |
2018/05/19(土) 17:23:00.70ID:???
>>569
配列風オブジェクトにスプレッド演算子が使えるとは限らないんだが

実際にEdgeでNodeListにスプレッド演算子は使えない。
古いChromeとかも使えないようだ。
0571Name_Not_Found
垢版 |
2018/05/19(土) 18:31:51.94ID:???
古いブラウザ持ち出したらfromも使えないじゃん
0572Name_Not_Found
垢版 |
2018/05/19(土) 18:36:57.78ID:O/Yxf4Ui
fromはpolifilでできる
スプレッド演算子はbabelで使えるようになったとしても
NodeListでは使えない
0573Name_Not_Found
垢版 |
2018/05/19(土) 18:55:29.64ID:???
だったらアロー関数もletもconstもトレイリングカンマも使うなよ
0574Name_Not_Found
垢版 |
2018/05/19(土) 19:12:45.53ID:???
ぶっちゃけ必要が無い限り使わんなあ
0576Name_Not_Found
垢版 |
2018/05/19(土) 21:28:56.72ID:???
>>572
Symbol対応していればポリフィル可能だよ

NodeList.prototype[Symbol.iterator] ≒ Array.prototype.values
だから
0577Name_Not_Found
垢版 |
2018/05/19(土) 21:32:49.32ID:???
>>568
iterableでない配列likeオブジェクトに対応できない
0578577
垢版 |
2018/05/19(土) 21:35:39.93ID:???
>>577は>569宛
0579Name_Not_Found
垢版 |
2018/05/20(日) 14:37:34.10ID:???
そういうツッコミは感心しないな
この靴は山を登るときに使う
いや、エベレストに対応できない
みたいな
0580Name_Not_Found
垢版 |
2018/05/20(日) 16:43:05.57ID:???
熊の毛皮はあんまり寒いと役に立たないらしい。そういうときは犬の毛皮を使うそうだ。
なんだ、熊の毛皮つっかえねーな
0581Name_Not_Found
垢版 |
2018/05/20(日) 17:29:49.09ID:???
じゃああんまり寒いと熊、絶滅しちゃう?
0582Name_Not_Found
垢版 |
2018/05/20(日) 18:13:12.78ID:???
>>579
この場合は、Array.fromは不要というニュアンスへの反論だからおかしくはないと思うが
0583Name_Not_Found
垢版 |
2018/05/20(日) 19:21:02.36ID:???
>>581
熊には体脂肪という毛皮をサポートするものがあるから大丈夫
0584Name_Not_Found
垢版 |
2018/05/20(日) 19:37:28.85ID:???
俺にも脂肪はたくさんついているが?
0585Name_Not_Found
垢版 |
2018/05/20(日) 20:40:15.97ID:???
髪の毛がついてないから寒さに弱いんだよ
0589Name_Not_Found
垢版 |
2018/05/21(月) 23:41:14.10ID:N1KmZ/qF
全くの初心者ですが、
便利なウェブサービスを作りたくてJavaScriptを勉強しはじめました。

質問ですが、
ブログによく貼ってある、
カエレバ、ヨメレバってJavaScriptでできているのですか?
0590Name_Not_Found
垢版 |
2018/05/22(火) 00:58:13.06ID:???
カエレバ.comそのものがどうやってできている、という意味なら
カエレバは、amazonや楽天などそれぞれのアフィリエイトパーツのルール(やテンプレート)に則った
アフィリエイトリンクを生成するサービス >>589

カエレバ利用者がブラウザからアフィID情報など打ち込んだとき
動的にアフィリンクを生成する処理部分で、少なくともJavaScriptが使われている
(ようはjavascriptを使った穴埋め問題)

あとは各サイトのテンプレートを一旦kaereba.comのサーバーサイドで処理のため
ここではphpが使われてるぽい
仮に、アフィIDによって商品IDそのものもが変わってしまうなら
各サイトへリクエストする必要がある
(ただほとんどのアフィリエイトパーツは穴埋め問題みたいなテンプレだろうが)

穴埋め問題だけなら、フロントエンドだけのjavascriptで実現できるし
極端に言えば個人使用なら文字通りテキストエディタで穴埋め問題すればいいだけ

もしリクエストする必要があるなら
・各サイトのレスポンスがクロスサイトに対応している、ならjavascriptだけで可能
・対応していなければ、phpやNode.jsみたいなサーバーサイドでの処理が必要
・対応しておらずサーバーサイドも嫌なら、ブラウザなどフロントエンドの設定を変える
など、この辺りがポイント
0591Name_Not_Found
垢版 |
2018/05/22(火) 01:28:37.89ID:???
質問ですが、
ブログによく貼ってある、
ビックカメラ、ヨドバシってJavaScriptでできているのですか?
0592Name_Not_Found
垢版 |
2018/05/22(火) 02:24:52.55ID:???
質問ですが頭によく貼ってある
0593Name_Not_Found
垢版 |
2018/05/22(火) 02:26:11.46ID:???
地毛にきまっとるだろーが
0595Name_Not_Found
垢版 |
2018/05/22(火) 04:52:54.78ID:???
Selectionオブジェクトでは
始点をanchor、終点をfocusと呼んでいます
anchor=碇なのは、選択開始部分を「そこに留める」ことからの発想だと思います
そう考えると、必ずしも始点が前、終点が後ろにあるとは限らないってことですよね?
文字選択というものは一般的にそうですし。
一方Rangeオブジェクトでは始点をstart、endと呼んでいます
この場合は始点が前、終点が後ろ(あるいは始点=終点)と保証されているということでしょうか?
0596Name_Not_Found
垢版 |
2018/05/22(火) 05:11:56.81ID:???
>保証されている
少なくとも仕様ではそう。
例えば start を end より後に設定しようとすると end も変更される
0597Name_Not_Found
垢版 |
2018/05/22(火) 05:20:24.05ID:???
>>596
そうなのですね
ありがとうございます
0598Name_Not_Found
垢版 |
2018/05/22(火) 06:06:14.54ID:???
そもそもLtoRとRtoLが交じってることもある文字列で頭と尾を一般に定義することは出来ない
一応の挙動は決まっていても人間の尺度で保証されていると考えると痛い目にあうぞ
0599Name_Not_Found
垢版 |
2018/05/22(火) 07:11:24.49ID:???
> そもそもLtoRとRtoLが交じってることもある文字列で頭と尾を一般に定義することは出来ない

どちらでも、頭は上で、尾は下だろ。
0600Name_Not_Found
垢版 |
2018/05/22(火) 07:16:35.64ID:???
RtoLって言っても、要素の前後関係が変わるわけではないのでは?
たとえばrangeの先頭から末尾まで舐める処理は、LtoRだろうがRtoLだろうが同じように動作しますよね
0601Name_Not_Found
垢版 |
2018/05/22(火) 09:08:41.33ID:???
いずれにしても、見た目上は左が前で右が後だけど、ここでいわれる「前」と「後」は 前(previousSibling) と後(nextSibling)?
DOMノードレベルとブラウザに描画されるレベルでは、前後の定義が変わるのでは?
0602Name_Not_Found
垢版 |
2018/05/22(火) 10:44:30.80ID:???
RtoLで2要素跨いでる場合はどういう順番になるんだろう
0603Name_Not_Found
垢版 |
2018/05/22(火) 13:28:48.90ID:???
>>601
なに言ってるんだ? 先に現れたのが前だろ
0605Name_Not_Found
垢版 |
2018/05/22(火) 14:05:37.24ID:???
メモリアドレスの小さい順だが?
0606Name_Not_Found
垢版 |
2018/05/22(火) 19:04:47.97ID:???
ファイルにしろDOMにしろ本質的にはシーケンシャルなのですよね
0607Name_Not_Found
垢版 |
2018/05/23(水) 03:23:27.09ID:???
チェーンの数を動的に変更したいのですがどうすればいいでしょうか。
func(){
hoge.a().a().a().a();
}

このa()をfunc(1)のときは1回で実行結果が
hoge.a();

func(2)のときは3回で実行結果が
hoge.a().a().a();

みたいにやりたいのです
0608Name_Not_Found
垢版 |
2018/05/23(水) 03:25:33.12ID:???
もちろん
func(n){
switch(n){}
}
的なのは考えましたが
例えばnが大きくなると大変になりそうなので
0609Name_Not_Found
垢版 |
2018/05/23(水) 03:26:21.53ID:???
訂正>>607
>func(2)のときは
func(3)のときは

でした
0610Name_Not_Found
垢版 |
2018/05/23(水) 03:55:47.58ID:???
再帰でなんとかするほうが良くね
0611Name_Not_Found
垢版 |
2018/05/23(水) 05:46:05.97ID:???
>>607
単純なループで良い
難しく考える必要はない

func(n){
 var o = hoge;
 for (var i = 0; i < n; i++) {
  o = o.a();
 }
 return o;
}
0612Name_Not_Found
垢版 |
2018/05/23(水) 06:41:36.97ID:???
難しく考える必要はない
せっかくJSを使ってるのだからこれでいい
eval( 'o'+'.a()'.repeat(n) )
0613Name_Not_Found
垢版 |
2018/05/23(水) 07:44:19.05ID:???
難しく考える必要はない
単純にreduceでいい

func(n) {
Array(n).fill().reduce(acc => acc.a(), o);
}
0614Name_Not_Found
垢版 |
2018/05/23(水) 08:00:17.68ID:???
いろいろ間違えた

function func(n) {
Array(n).fill().reduce(acc => acc.a(), hoge);
}
0615Name_Not_Found
垢版 |
2018/05/23(水) 09:59:42.66ID:???
でもreduceってIE9からしか使えないしな。
fillとか存在の意味が分からんし

そんなに一行で書きたいなら

func(n){
 for (var i = 0, o = hoge; i < n; i++) o = o.a()
}
0616Name_Not_Found
垢版 |
2018/05/23(水) 10:00:58.23ID:???
func(n){
 var o = hoge, while (n--) o = o.a();
}
0617Name_Not_Found
垢版 |
2018/05/23(水) 10:41:20.18ID:???
そんなこと言ってもIE9なんてもはや気にしてないし。
サポート切れて喜んでたじゃんお前ら。
0618Name_Not_Found
垢版 |
2018/05/23(水) 10:44:54.81ID:???
fillが嫌ならこんなのでもいいぞ。

function func(n) {
[...'.'.repeat(n)].reduce(acc => acc.a(), hoge);
}
0619Name_Not_Found
垢版 |
2018/05/23(水) 11:07:15.87ID:???
またbabelをつかわないといけないようなコードを
0621Name_Not_Found
垢版 |
2018/05/23(水) 13:16:49.98ID:???
hoge.b = function(n){
for(var i = 0; i < n; i++){
this.a();
}
return this;
};
?
0623Name_Not_Found
垢版 |
2018/05/23(水) 13:24:51.85ID:???
>>614
単純とはいえない
reduce使いたいが為に配列をわざわざ生成して、生成した配列を捨ててる
0624Name_Not_Found
垢版 |
2018/05/23(水) 13:28:22.51ID:???
>>615
MSは既にIE10以下を切り捨ててるけど、あなたのサポート対象はどこまで?
0626Name_Not_Found
垢版 |
2018/05/23(水) 13:40:34.36ID:???
>>625
>>612は生成した文字列を捨てずに活用してるから、なくはないんじゃないかな
Function() の方がいいとは思うけど

どこがダブルスタンダード?
0627Name_Not_Found
垢版 |
2018/05/23(水) 15:33:43.75ID:???
ハァ?じゃあ配列も活用してるだろうが…
ちょっと考えておかしいと思わんかな
0628Name_Not_Found
垢版 |
2018/05/23(水) 16:28:17.99ID:???
Rangeの端を指す用語は何でしょうか?
isPointInRangeのようなメソッド名があるのでポイントでいいでしょうか?
0629Name_Not_Found
垢版 |
2018/05/23(水) 19:23:02.55ID:???
>>627
配列は繰り返し処理だけの為に生成されていて、「値」が使われてない
n回繰り返すために配列を生成するのは無駄、単純ではない
>>612は文字列を引数にしなければならないのだから、これ以上は省略しようがない

それから、「言及してない=許容」という考え方もおかしい
一つ指摘したら、全レスをチェックして、スルーしたレスは許容するのが当然なのか?
逆にいえば、あなたは>>612以外は認めてると?
0630Name_Not_Found
垢版 |
2018/05/23(水) 19:30:24.54ID:???
無駄がどうのと言ってるわりにevalはいいの?基準がよくわからんな
0631Name_Not_Found
垢版 |
2018/05/23(水) 19:41:34.25ID:???
reduceでn回繰り返すために配列を生成するのは無駄、単純ではない

forでn回繰り返すために一時変数を生成するのは無駄ではない、単純

主観じゃん。forに慣れてるだけ。

たしかに無駄になるコストはforのための一時変数の方が配列より低いと思うよ。
でもそのわりにevalは認めちゃってるし…
基準がさっぱり分からない。
メモリリソースなのか、
CPUリソースなのか、
はたまたコードの見た目(単純に見える)なのか?
一番目と二番目は数字で語れるだろうけど、三番目なら主観だよ。
あなたがforに慣れてるだけ。
関数型言語の人に聞いたら違う答えが帰ってくるんじゃないかな。
0632Name_Not_Found
垢版 |
2018/05/23(水) 20:11:41.21ID:???
正直ここまで不格好でない例が無い
ひょっとしたらeval例が一番なくらい
でもやろうとしていることが不格好だから仕方ないとも思う
やっぱりメソッド中で必要な処理だけforで回したり再起にするのが良いと思う
0633Name_Not_Found
垢版 |
2018/05/23(水) 20:24:18.46ID:???
不格好ってことは三番目の「コードの見た目」だったようだね。主観。
0634Name_Not_Found
垢版 |
2018/05/23(水) 20:58:45.37ID:???
多分それは悪い意味で言ってるんだと思うが
主観的見た目こそ超絶大切なことだと考えてる勢には通じないと思うぞ

今回の例みたいなのは動くだけなら猿でも書けるんだから
でも自由な文化のJSではどの方法が適当なのかなんて自明ではない
でもだからこそ、ロジック以外の部分で拘って研究して論争する価値があるんだと思うよ

そうして可能性を捨てずに色々試して皆で議論して良くしていこうっていうのがWebだから
0635Name_Not_Found
垢版 |
2018/05/23(水) 21:38:25.82ID:???
不恰好を定義できない、不恰好でない例も出せない無能はほっとけ

しいていえば見た目は読みやすさ・理解しやすさに繋がるか?
0638Name_Not_Found
垢版 |
2018/05/24(木) 00:26:16.72ID:???
 彡⌒ミ
(´・ω・`) また髪の話する・・・?
0639Name_Not_Found
垢版 |
2018/05/24(木) 00:34:23.64ID:???
>>631
>>625のダブスタも相当主観だと思ったが、どういう意味だったんだ?
0641Name_Not_Found
垢版 |
2018/05/24(木) 00:51:08.88ID:???
>>631
reduceは配列の要素から一つの値を作るものだと考えている
要素を使わず、代入処理だけのためにreduceを使うのであれば、始めから代入処理だけの機能を使うのが理にかなっている

後な、俺が主張してるのは単純か複雑か
reduceを使うためにArray()で配列を生成し、走査可能にする為にする為にfill()で値を初期化、という理屈を初心者が理解できるとは思えん

対するeval()は善し悪しはともかく、機能理解はreduceよりも容易だと思うね
個人的にはevalを全く使わんし、eval is evil、eval <<< Function
ローカル変数破壊は御法度だし、式呼び出ししなければ安全でないのは頂けないが、それは別の問題だ
evalがコードを実行できる関数ぐらいの理解は初心者にも出来る
0642623
垢版 |
2018/05/24(木) 01:01:04.14ID:???
ついでだからいうが、>>623では言及していなかった>>612を引き合いに出して、ダブスタといわれても困る(>>625)
なぜか俺が「>612が良い」と主張しているように誤解されているが、そんなことは一言もいってない
たまたま、>612が俺のいう「単純とはいえない」に該当しなかったから弁明する形になっているが、本意ではない
同様に、俺が言及しなかった他のレスも「良い」と主張しているわけではない(言及しなかったものを勝手に決めつけられても困る)
0643Name_Not_Found
垢版 |
2018/05/24(木) 05:39:56.28ID:???
>>641
> reduceは配列の要素から一つの値を作るものだと考えている
それも使い方の一つだが、
オブジェクトを渡して、そのオブジェクトのメソッドを
複数回メソッドを呼び出すためにも使う
0644Name_Not_Found
垢版 |
2018/05/24(木) 06:21:47.69ID:???
つまるところ、
歯ブラシは、俺の尻に突っ込むためにも使う
ということである
0645Name_Not_Found
垢版 |
2018/05/24(木) 07:08:33.91ID:???
eval を使うと、納品できない

そこからシステムに侵入されるから、損害賠償請求される。
危険なことを知っていて、使っているから
0647Name_Not_Found
垢版 |
2018/05/24(木) 07:29:41.51ID:???
>>643
reduce使う必要ないのでは?

let i = 4;
while (i--) obj.a();
0648Name_Not_Found
垢版 |
2018/05/24(木) 07:33:39.28ID:???
evalって書いたのはどう見てもネタでしょ
0649Name_Not_Found
垢版 |
2018/05/24(木) 07:42:21.61ID:???
システムに侵入てお前のカツラシステムか何かか
0650Name_Not_Found
垢版 |
2018/05/24(木) 07:51:46.41ID:???
>>647
それをreduceでやるのがカッコイイんですよw
素人には読めない。プロだけがわかるコード
0651Name_Not_Found
垢版 |
2018/05/24(木) 08:29:12.55ID:???
それより>>647が提示したコードがいろいろヤバい
0652Name_Not_Found
垢版 |
2018/05/24(木) 08:40:44.25ID:???
関数型っぽい書き方の方がイケてることに異論はありませんが
パフォーマンスではforやwhileの方が勝ります
ループ中で繰り返し呼び出されるような処理では、
やはりforやwhileで書きますよね?
0653Name_Not_Found
垢版 |
2018/05/24(木) 08:46:04.44ID:???
パフォーマンスならforで書く。
ボトルネックにならないならforEachで書く。
書きやすいし読みやすいから。
0654Name_Not_Found
垢版 |
2018/05/24(木) 08:51:16.54ID:???
比較して見ると、複雑な箇所が分かりやすいかもね

let i = 4;
while (i--) obj.a();

for (let i = 0; i < 4; i++) obj.a();

for (let v of [4,3,2,1]) obj.a();

[4,3,2,1].reduce(()=> obj.a());
0655654
垢版 |
2018/05/24(木) 08:52:58.45ID:???
>>654は下にいく程、複雑化する
for-ofがforよりも良いという人はおそらくいない
reduceも機能の無駄遣い
0656Name_Not_Found
垢版 |
2018/05/24(木) 08:54:28.60ID:???
>>647
おいおい、
obj.a();obj.a();obj.a();obj.a();

obj.a().a().a().a();
は全然ちがうんだが。
reduceの動作理解した上での批判ならまだしも、それじゃお前が理解できないものを僻みで批判してるだけじゃん。
0657654
垢版 |
2018/05/24(木) 08:58:01.88ID:???
>>656
>>643に言及してるんだけど、流れが読めない人?
0658Name_Not_Found
垢版 |
2018/05/24(木) 08:59:09.95ID:???
>>654
おいおい、
obj.a();obj.a();obj.a();obj.a();

obj.a().a().a().a();
は全然ちがうんだが。
お前が書いたやつは全部
obj.a();obj.a();obj.a();obj.a();
になる。
お題は
obj.a().a().a().a();
お前のだとアキュムレータ使ってないからそれこそreduceの意味まったく無い。
初心者か?
はじめてのjavascriptからやり直したら?
0660Name_Not_Found
垢版 |
2018/05/24(木) 09:04:01.46ID:???
obj.a();obj.a();obj.a();obj.a();
の場合はreduceの意味まったく無い。
なぜならforEachで十分だから。
初心者がお題勘違いしたのを流れだとか言って誤魔化してるだけ。
0661654
垢版 |
2018/05/24(木) 09:08:43.13ID:XaJaBcs1
いや、>>643を言葉通りに受け取れば、>>647>>654も問題ないでしょ
>>625のダブスタといい、なぜ言外に定義していることがあると思いこむのかね
0662654
垢版 |
2018/05/24(木) 09:15:49.85ID:XaJaBcs1
しかも、>>607の要件だとしても、本質は変わらないと思う

let i = 4;
while (i--) obj = obj.a();

for (let i = 0; i < 4; i++) obj = obj.a();

for (let v of [4,3,2,1]) obj = obj.a();

[4,3,2,1].reduce(obj => obj.a(), obj);
0663Name_Not_Found
垢版 |
2018/05/24(木) 09:20:29.26ID:???
>>662
全然違うわボケ
それだとアキュムレータ使っているのでforEachではなくreduceを採用する意味がある。
>>654のクソコードはreduceの意味がまったく無い。アキュムレータ使っておらずforEachで十分。

eval擁護するわ
[4,3,2,1].reduce(()=> obj.a());
こんなクソコード書くわ
ほんと酷いなお前
0664Name_Not_Found
垢版 |
2018/05/24(木) 09:29:57.82ID:???
whileとforは複雑度が逆だな
0665Name_Not_Found
垢版 |
2018/05/24(木) 09:43:20.29ID:???
どうでもいいが、どれも前提に
var o = hoge; ないし var obj = hoge; が入ってるんだよな?
0666Name_Not_Found
垢版 |
2018/05/24(木) 10:15:11.97ID:???
そりゃそうだろエラーになるし
どうでもいいけど
0667Name_Not_Found
垢版 |
2018/05/24(木) 13:36:47.71ID:88W14kMp
変数の先頭が _hensu のようにアンダーバーの変数を時々見るけど
これ表記は一般的にどういう時に使われるの?
0668Name_Not_Found
垢版 |
2018/05/24(木) 13:59:22.27ID:???
>>663
>>662>>614と同じに見えるが、なにいってんだ、おまえは?
全否定するなら、他の回答も全て否定しろよ
0669Name_Not_Found
垢版 |
2018/05/24(木) 14:09:06.85ID:???
関数型の本読むと
forより関数型の再帰のほうが抽象性が高くてよみやすいからいいと書いてたりする。
自分も書き慣れたforでやっちゃうけど。
0670Name_Not_Found
垢版 |
2018/05/24(木) 14:13:54.83ID:???
>>612にレスしない=容認と思い込んで、ダブスタ扱い
>>643の要件定義が甘いのを無視して、要件が違うとキレる
>>614と同じ書き方をして、クソコードとキレる

ボロボロだな
0672Name_Not_Found
垢版 |
2018/05/24(木) 15:51:35.41ID:???
いい感じで荒れてるな
お前らちょろいわ
0674Name_Not_Found
垢版 |
2018/05/24(木) 18:52:46.43ID:???
有名になったら急に親戚が増えるのと似てるな。
そんなクソスレは知らん!
0675Name_Not_Found
垢版 |
2018/05/24(木) 20:08:00.05ID:???
なんだかなぁ
例えば配列の中身は使わないけど、ただ繰り返しのためにreduceを使うということも
任意の長さの有効な中身が入った配列を作るハックも
何らしかの理想形を目指す過程で1つだけ妥協してそういったテクニカルな物を入れるのはありだと思うけど

例えば何かの絵でも文章でもいいから特定の理想スタイルに拘って作ってたとして、
表現が困難な部分が1箇所くらいでてきてもあまり品質を損なわせること無くごまかせるけど、
あちらもこちらもということになると元々目指してた理想とは随分形が変わってくるし、
他人が見たときにそれが何を目指したものなのかすらわからなくなる
苦労してそんなものしか作れないのなら
最初からもっと楽してカッコつけなくて描く方法があるでしょってことになる
0676Name_Not_Found
垢版 |
2018/05/24(木) 20:27:09.34ID:???
質問

reduceのアキュムレータで引き回して hoge.a().a().a().a() ... .a(); と実行させる方法
引き回し用の変数oにhogeを入れたうえでforで o=o.a(); を実行させる方法

見た目・行数以外で
これら2つの方法で厳密に言うと何と何と何がどう異なる?
要件としては>>607のとおり、function func(){}内で実行、returnしない、として
0677Name_Not_Found
垢版 |
2018/05/24(木) 20:36:22.86ID:???
重めのファイルを大量にダウンロードするパートがあるwebアプリで同時ダウンロード数3とか4とかに絞りつつ、それぞれのレーンはシリアルにダウンロードタスクこなしてくという処理に、
ダウンロードのpromiseの配列をreduceの中でaccum.thenで繋いでく方法取ったな。forよりだいぶん簡単に書けたが、知らん人には何やってんのかさっぱりやろな。
0678Name_Not_Found
垢版 |
2018/05/24(木) 20:41:40.39ID:???
糞アプリですか違法アプリですか
0679Name_Not_Found
垢版 |
2018/05/24(木) 20:59:35.04ID:???
C++とか他の言語からさらにやってJSのクラス(プロトタイプ)とかみるとよくわからないってよくきくけど
JSからはいってC++とかいくとどうなの?
0680Name_Not_Found
垢版 |
2018/05/24(木) 21:00:14.07ID:???
ちょっとアレだからノーコメントで…
でも俺は頼まれて作っただけだからな。
0681Name_Not_Found
垢版 |
2018/05/24(木) 21:01:39.86ID:???
頼まれても作っちゃいけないモノってのがあるわけだが、そんなものを作ったと書き込むこともどうかと
0682Name_Not_Found
垢版 |
2018/05/24(木) 21:02:53.25ID:???
>>679
・盛大に混乱するがなんとか順応してやっていける
・C++に行こうとして挫折する

どっちか
0683Name_Not_Found
垢版 |
2018/05/24(木) 21:05:58.31ID:???
実際はダウンロード数はブラウザが勝手に抑制して
同時に発行しても一定以上はpendingとなるから気にしなくても良い
0684Name_Not_Found
垢版 |
2018/05/24(木) 21:11:43.38ID:???
決め打たなければならなかったんだよ。
ブラウザの制限にまかせとくと弾かれてしまうという…案件。
0685Name_Not_Found
垢版 |
2018/05/25(金) 00:30:21.26ID:???
君たちUMLとか勉強した?
したほうがいいのこれ?
0686Name_Not_Found
垢版 |
2018/05/25(金) 00:44:33.08ID:???
このスレのタイトルが数式になってるんだと思って実行してみたら
Uncaught SyntaxError: Unexpected identifier
というエラーが出ました
どうすればいいですか?
そもそもJSかくひとならJSで実行できるスレ体にするべきじゃないですか?
アホですか?
0687686
垢版 |
2018/05/25(金) 00:50:53.19ID:???
おい、無視すんな。面白いこと言ったんだから何か答えろ
0688Name_Not_Found
垢版 |
2018/05/25(金) 01:23:31.64ID:???
""+ "JavaScript の質問用スレッド vol." + 133
じゃあ次からこれで
0689Name_Not_Found
垢版 |
2018/05/25(金) 01:32:15.38ID:???
toStringやparseIntはきっちりやるべきだと思う
無論parseIntの第二引数は忘れてはならない
0690Name_Not_Found
垢版 |
2018/05/25(金) 03:34:03.80ID:???
123abcという文字列をパースして
123という数値に変換するのは
バグだと思う
0691Name_Not_Found
垢版 |
2018/05/25(金) 06:47:04.90ID:???
それすなわちバグということはないが、
CSSならTypedOM使ったり、input要素ならvalueAsNumber使ったり
もっと適切というか上品な手段があることは多いと思う
0692Name_Not_Found
垢版 |
2018/05/25(金) 12:13:19.56ID:???
16px, 1em, 100% とか、

こういうのを数字にする事を想定しているのだろう
0695Name_Not_Found
垢版 |
2018/05/25(金) 21:02:02.63ID:???
〜気にくわない挙動があったとき〜

バカ「バグだ!」

天才俺「0.1+0.2はisoに基づいた仕様、typeof nullは仕様バグ」
0696Name_Not_Found
垢版 |
2018/05/25(金) 21:34:26.59ID:???
let a = { let x = 0; (何か処理); x; };
みたいな感じで書けないのはおかしい

let a = (() => { let x = 0; (何か処理); return x; })();
と書くしかないのか?
0697Name_Not_Found
垢版 |
2018/05/25(金) 21:41:23.18ID:???
typeof null -> "object"はべつに仕様バグだとは思わんな
だって例えばtypeof null -> "null"になったところで、
対象がオブジェクトかどうか一発で判定できるわけではないし、
状況がハッキリ好転したりはしないもの

あとやっぱりJSに本当に必要なのは正確な判定ではなくて、
柔軟さを活用して問題を飲み込んで単純化することだと思う
つまり具体的にはtypeofのような存在による正確なオブジェクトの判定ではなく
今提案もされてるobj?.propのようなオプショナルなプロパティアクセスが重要
0699Name_Not_Found
垢版 |
2018/05/25(金) 22:01:06.33ID:???
思う思わないじゃなくて作者がそう言ってるんだが。
0701Name_Not_Found
垢版 |
2018/05/26(土) 01:42:16.56ID:???
ちょwww俺おもしろすぎwww
ギャグのセンスはんぱないwww
0703Name_Not_Found
垢版 |
2018/05/26(土) 11:11:27.73ID:???
contenteditableな要素の中に作られるタグについてですが
chromeでは一行ずつdivで囲んでるんだな、と思っていました
実際ただキーボードから文字を入力していった時に作られるタグはそのようものです
しかし文字列をペーストすると、
<div><div>1行目</div><div>2行目</div></div>
みたいな、複数行を包含する無用で意味不明なdivが出来ることに気づきました
一体どんなアルゴリズムがこんなタグを生成するのでしょうか?
キャレットのある行を知る時には一番外側のdivを見つければいい、と思っていたのですが、
このくそアルゴリズムの生成するくそタグだと正しく検出できません
キャレットのある行を見つけるにはどうすればいいですか?
0704Name_Not_Found
垢版 |
2018/05/26(土) 11:28:33.02ID:???
一番外側のdivでなく、一番内側のdivなら検出できそうです
chromeではselectionの境界は必ずテキストノードの中をポイントするようなので。
それはそれで合理的な挙動ですが、
他のブラウザだとそのあたりの挙動も違います
divとdivの間をポイントしたりします
・生成されるタグがくそ
・生成されるタグがブラウザによってまちまち
・selectionの境界の取り方もブラウザによってまちまち
何重にもひどい条件をかいくぐってまともに動くものを作るのはなかなかヘビーですね?
0705Name_Not_Found
垢版 |
2018/05/26(土) 14:36:02.69ID:???
>>699
それは知ってるが、作者がどう言ってるかが全てではないだろう
君は親から、お前のココが失敗だったと言われたらずっとそう思い続ける残念な人なのか?
実際その時はそこだけ取り上げると客観的に見て欠点だったとしても、
そいつが成人して、世の中の流れも多少変わってるし、別に取り上げて何か言うべきことで無くなってる可能性もあるだろう

俺は君が考えた君だけの考えがあるなら大いに聞いてみたいが、
そんな聖書にそう書いてあるから!みたいな淡白な意見は何の発展性もないし関心がない
人が言ったことを自分の意見にするなという意味ではないぞ、むしろそれは良いこと
つまりその作者がどうしてそう言ったのかを、色々な視点から捉えて、
その意図を自分の中で消化して、君自信の意見として君の言葉で解説して欲しいと思う
0706Name_Not_Found
垢版 |
2018/05/26(土) 15:01:54.62ID:???
>>705
要約すると、お前がそう言ってるだけでなので、
お前の言うことなんか無視すべきってことだな
0707Name_Not_Found
垢版 |
2018/05/26(土) 15:30:00.44ID:QE7hhrB3
バカ:
箱を落として中のケーキがグチャグチャになったが、もう戻らないことを嘆いても仕方ない。
このグチャグチャのケーキのいいところを探そう!
俺はこのグチャグチャのケーキも結構イケてると思う!

天才俺:
このケーキがグチャグチャなのは、移送中に箱を落としたから。
移送者の証言があるからこれは間違いない。
0708Name_Not_Found
垢版 |
2018/05/26(土) 16:20:03.82ID:???
>>707
俺は確かにいいところを探して良いように使うのはJSにおいてとても重要だと思うが、
今回はそういったことを言ってるんじゃないぞ

そもそも横向きに他の食べ物と一緒に入れられていて
箱を落として無かったとしても潰れて混ざってて綺麗に食えたもんじゃない
どっちみち細かく切ってそういう食べ物ですと言って誤魔化して出すくらいしかなく、
落として無かったら切り方がちょっと大雑把で済むくらいのもの

だから綺麗に食べられないことに関して箱を落としたことを悔やむのはバカなこと
だがそもそも本当にパーティの賑やかしとして必要なものはピザの方じゃないのか
ってことを言ってる
0709Name_Not_Found
垢版 |
2018/05/26(土) 16:31:28.00ID:Txj36fLa
例えを中心に論をくみたてるやつはたいていばか
0710Name_Not_Found
垢版 |
2018/05/26(土) 16:40:20.56ID:???
ピザに話題を反らそうとも、ケーキがグチャグチャな事実は変わらない。

typeof nullが仕様バグであるという事実は、typeof nullの重要性の多寡によっては覆せないのだ!
0711Name_Not_Found
垢版 |
2018/05/26(土) 17:25:23.98ID:???
typeof null限定の話ではなく一般論の話をしよう
一般論ではどんな人でも言ってることが間違っていることがあるだろう?
だから、間違いなんだよ
0713Name_Not_Found
垢版 |
2018/05/26(土) 19:55:01.57ID:???
ピザポテトを管理するjsでも作ってろよ
0714Name_Not_Found
垢版 |
2018/05/26(土) 20:17:50.16ID:???
一般人「typeof nullは仕様バグ(ボソッ)」
バカ「俺はtypeof nullが仕様バグとは思わない!」
天才「いや作者が仕様バグと認めてるんだけど…」
バカ「typeof nullが仕様バグかどうかはどうでもいい。他のことの方が重要!」

他のことの方が重要なのはそうかもしれないのだがこれじゃ思い違いをゴマかすために話題そらしたみたいにしか見えないww
0715Name_Not_Found
垢版 |
2018/05/26(土) 20:33:54.38ID:???
バグ、仕様バグって言葉の認識に差がありそう

本当に頭悪いバカはバグとか言わずに糞言語と100回連呼するのだと思う
そんで使用者を罵倒して煽る
0716Name_Not_Found
垢版 |
2018/05/26(土) 20:48:33.15ID:???
バグって10回言って

バグバグバグバグバグバグバグバグバグ

9回しか言ってないじゃん
0717Name_Not_Found
垢版 |
2018/05/26(土) 20:50:58.36ID:???
>>711
「だから、間違っていることがあるんだよ」が正しい(確定ではない)
0719Name_Not_Found
垢版 |
2018/05/26(土) 21:08:39.91ID:???
>>705
> それは知ってるが、作者がどう言ってるかが全てではないだろう
「仕様バグ」は作者でなければ、定義出来ないぞ
>>697がいっているのは「>>697の解釈」であって「仕様バグ」ではない
0720Name_Not_Found
垢版 |
2018/05/26(土) 23:07:52.67ID:???
ajaxって今はあんまりつかわないの?
0721Name_Not_Found
垢版 |
2018/05/26(土) 23:13:25.72ID:???
一般に普及しGoogleのような大企業じゃなくても誰でも普通に使えるようになったので、ajaxとかカッコつけて言わなくなっただけ。
0722Name_Not_Found
垢版 |
2018/05/26(土) 23:17:57.53ID:???
ajaxの代替になるもので流行り始めてるものとかもないの?
0724Name_Not_Found
垢版 |
2018/05/27(日) 01:12:50.63ID:???
ajax と言えば、jQuery

これだけのために、jQueryを使う人もいる
0725Name_Not_Found
垢版 |
2018/05/27(日) 01:21:31.51ID:???
正直、楽だからねえ……
0727Name_Not_Found
垢版 |
2018/05/27(日) 09:17:47.25ID:???
google書籍検索で引っかかってきた原書のサイ本に、日本語版に書いてないことが書いてあったので
調べてみると日本語版は、原書のリファレンス編が「JavaScriptリファレンス」という別の本になっている
ということに気づきました
紙の本だとおそろしく太くなってしまうからでしょう
電書を購入しました
知らないことが大量に詳しく書かれています
しかしそれが知りたくて買ったRangeオブジェクトとSelectionオブジェクトについては、何故か全く書かれていません
何故でしょうか?あほなのでしょうか?
0728Name_Not_Found
垢版 |
2018/05/27(日) 09:42:07.93ID:???
>>727
> 何故でしょうか?
全てを網羅すると途方もない文量(引いては値段)になるからでしょう。

> あほなのでしょうか?
あほです(あなたが)
0729Name_Not_Found
垢版 |
2018/05/27(日) 09:44:35.87ID:???
>>727
JavaScriptにはRangeもSelectionも存在しない。
ブラウザが提供しているAPIでライブラリと同等のもの
だからこのスレからライブラリの話はなくせと言ってる
0730Name_Not_Found
垢版 |
2018/05/27(日) 10:17:15.98ID:???
>>729
この本は「コアJavaScriptリファレンス」と「クライアントサイドJavaScriptリファレンス」に分けて説明しています
クライアントサイドJavaScriptの章では、CanvasやGeolocationやHistoryやStorageなど、
あなたが言うライブラリと同等のものが大量に紹介されています
しかしRangeとSelectionはないのです
あほとしか言い様がありません
0731Name_Not_Found
垢版 |
2018/05/27(日) 10:19:09.88ID:???
>>728
リファレンスの価値は、可能な限り全部を載せるということでしょう
あほとしか言い様がありません(あなたが)
0732Name_Not_Found
垢版 |
2018/05/27(日) 10:20:08.00ID:???
>>730
それよりもサーバーサイドJavaScriptが
まるまる抜け落ちてるのはどういうわけ?
0733Name_Not_Found
垢版 |
2018/05/27(日) 10:30:06.59ID:???
>>727
こんなとこで聞いて何がしたいのでしょう?
出版社に問い合わせればいいだけなのではないでしょうか?
あほなのでしょうか?
0734Name_Not_Found
垢版 |
2018/05/27(日) 10:36:08.74ID:???
>>733
何がしたい?もうしてますよ
あんたをイラつかせること
それがしたいことで、すでにやっていて結果もでてることですよ
出版社に問い合わせてもあなたをイラつかせることにはなりません
それもわからないあほなのでしょうか?
0735Name_Not_Found
垢版 |
2018/05/27(日) 11:31:47.26ID:???
もう来ないっつったんだからもう来んなよ
0736Name_Not_Found
垢版 |
2018/05/27(日) 11:37:02.92ID:???
そもそも翻訳の出来に左右される日本語版を買うのがあほ。
リファレンスは原著買うのが普通。
0737Name_Not_Found
垢版 |
2018/05/27(日) 11:39:56.86ID:???
>>727
微妙なAPIだからね
マイナーだし、HTML5になる過程で一応仕様がデファクトに合わせて整備されなおされたけど
今後の発展性もないし取り上げて面白いAPIではないだろうからね
0739Name_Not_Found
垢版 |
2018/05/27(日) 12:06:19.36ID:???
>>734
この人は偽者ですよ
出版社に問い合わせたところで何も変わらないでしょう
それよりも、何故そうなったのかを公開の場で検討した方がはるかに生産的です
0740Name_Not_Found
垢版 |
2018/05/27(日) 12:08:03.82ID:???
>>732
Node.jsの本に任せているのでしょう
JavaScriptはそもそもの生まれがクライアントサイドスクリプトですし。
そういう意味でそこは妥当だと思います
0741Name_Not_Found
垢版 |
2018/05/27(日) 12:13:26.82ID:???
>>737
発展性というか、基本的な機能だと思いますが・・
特に昨今JavaScriptの役割がアプリと同一化しているので、
もっと光を当てるべき機能だと思います
エディタ的なものを作る時には必須のオブジェクトなのですから
0742Name_Not_Found
垢版 |
2018/05/27(日) 12:18:30.61ID:???
>>734
別にオレイライラしてないよ。
やった意味なかったね。
0743Name_Not_Found
垢版 |
2018/05/27(日) 12:27:56.82ID:???
>742
レスしたのが証拠w
0744Name_Not_Found
垢版 |
2018/05/27(日) 12:28:48.06ID:???
electronで作られているVSCodeのエディタ部分はどういう実装になっているのでしょうか?
0745Name_Not_Found
垢版 |
2018/05/27(日) 12:47:29.99ID:???
>>739
どう生産的なの?
著者と出版社に、自分はこう思うのでコレも書けって意見送ればいいだけでは?
0748Name_Not_Found
垢版 |
2018/05/27(日) 13:26:01.97ID:???
原書は検索するとpdfでおっこちてること多いよなぁ。
公式なのか違法なのか知らんけど。
0750Name_Not_Found
垢版 |
2018/05/27(日) 14:45:02.31ID:???
>>741
別に光を当てても選択範囲が取れますで終わりでしょ
エディタを作るのに必要でこれから考えないといけないのは
入力領域やIME制御のAPIだと思うけど
0751Name_Not_Found
垢版 |
2018/05/27(日) 16:18:20.01ID:???
>>746
知っている人がいたらざっくり説明してくださいという意味です

>>747
そういうのを使っていたのですね
ありがとうございます
0752Name_Not_Found
垢版 |
2018/05/27(日) 16:19:42.10ID:???
>>749
今から聞いても本が書き換わるわけじゃないですよね?
それに別に本人を責めたいわけではありません
0753Name_Not_Found
垢版 |
2018/05/27(日) 16:26:17.87ID:???
ちなみに自分の知る限り、SelectionやRangeについて一番詳しく書かれている本は
Professional JavaScript for Web Developersです
この本以上に詳しくかかれている本ありますか?
0754Name_Not_Found
垢版 |
2018/05/27(日) 16:52:48.97ID:???
ちょっと前から居てる、WYSIWIGエディタとかcontenteditableとかrangeあたりばっかりのキチは一体なんなん?
selection/range周りの解説本のステマかなんかか?
それとも新興のediterのステマか?
0755Name_Not_Found
垢版 |
2018/05/27(日) 17:58:43.59ID:???
>>752
じゃあ何がしたいの?
理由がききたいんでしょ?
これから先出版する本で考慮してくれるかもしれないよ?

で、ここでグダグダいう生産性って何なの?
0756Name_Not_Found
垢版 |
2018/05/27(日) 18:09:05.28ID:???
はい、またレスが一つ生産されましたよ?
0757Name_Not_Found
垢版 |
2018/05/27(日) 19:10:13.80ID:???
毛根生産してから言えや
0758Name_Not_Found
垢版 |
2018/05/27(日) 19:50:53.62ID:???
毛根なら生産しましたよ
一年間で毛根の数が倍に増えました
0760Name_Not_Found
垢版 |
2018/05/27(日) 21:22:55.25ID:???
>>731
> リファレンスの価値は、可能な限り全部を載せるということでしょう

「全部」とは何の全部ですか。
JavaScriptという言語仕様が存在しないことをあなたは知っているのですか。
JavaScriptから扱えるAPI仕様が多岐にわたっていることをあなたは知っているのですか。
その全てを網羅して、値段が10倍になってもあなたは買うのですか。
他の人も買ってくれると思いますか。
膨大な厚みの紙の書籍を買ってくれると思いますか。書店に置けますか。ビジネスモデルとして成立しますか。

> あほとしか言い様がありません(あなたが)

それは、あなたがJavaScriptを熟知してからいえる言葉ではないですか。
0761Name_Not_Found
垢版 |
2018/05/27(日) 23:21:08.73ID:???
>>755
質問スレにおける生産性は、議論の中から新しい知見が現れることです
分かりますね?
0762Name_Not_Found
垢版 |
2018/05/27(日) 23:26:39.12ID:???
ああ!「激しくだるま」で略して「はげるま」か
気づかなかった
なるほどうまいなw
0763Name_Not_Found
垢版 |
2018/05/27(日) 23:41:55.90ID:???
selection/range って、この2冊にも載ってないだろ

初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017

JavaScript 第6版、2012、David Flanagan
0765Name_Not_Found
垢版 |
2018/05/28(月) 00:43:33.87ID:???
>>763
載ってませんよ
サイ本というのはJavaScript第六版のことです
0766Name_Not_Found
垢版 |
2018/05/28(月) 08:06:31.36ID:???
>>761
どんな知見生まれた?
何故載ってないかで新しい知見なんて生まれるわけないw
生産性低すぎなんだけどw
0767Name_Not_Found
垢版 |
2018/05/28(月) 08:07:56.54ID:???
>>756
ゴミが生まれても生産性があるとは言わんわなw
0768Name_Not_Found
垢版 |
2018/05/28(月) 08:45:41.82ID:???
Selectionの変更を検知するためのイベントハンドラないかな?
と思ったら、まさにそのための、document.selectionchangeというものが見つかりましたが
これはまだ草案状態で、firefoxにしか実装されていませんでした
contenteditableな要素でkeyupとfocusを使えば、
Selectionの変更を残らず捕捉できるでしょうか?
0769Name_Not_Found
垢版 |
2018/05/28(月) 08:53:12.23ID:???
>>767
つまり、お前のそのレスはゴミだということか
0771Name_Not_Found
垢版 |
2018/05/28(月) 10:02:25.45ID:???
>>770
ありがとうございます
確かにfocusやfocusinが発生した段階ではselectionの設定が済んでいないので適当ではないようでした
mouseupにしたらselectionの値も想定通りに取得できました
0772Name_Not_Found
垢版 |
2018/05/28(月) 11:26:52.86ID:???
let hoge = {
property: 100,
method: ()={
return this.property;
}
}

let a = hoge.method();

みたいな書き方って今でもアリなのでしょうか?
クラスを使わずにオブジェクトを作るやり方です
0773Name_Not_Found
垢版 |
2018/05/28(月) 11:39:38.99ID:???
ちなみに最近はもっぱらクラスと関数で書いていたのですが
昔のコードを見たら>>772みたいな書き方をしていて、
あれ?これ普通に便利じゃね?
ってなりました
newで生成する必要のない単体のオブジェクトならこれでいいのでしょうか?
0774Name_Not_Found
垢版 |
2018/05/28(月) 12:26:55.16ID:???
> newで生成する必要のない単体のオブジェクトならこれでいいのでしょうか?

その通り。たくさん作る場合は関数が都度生成されるのでコスト高。
単発ならそれで十分。
0775Name_Not_Found
垢版 |
2018/05/28(月) 12:51:23.12ID:???
サーバーとかもってないんだけど
クロスオリジン系のエラーがでるコードは試しで実行できないってこと?
0776Name_Not_Found
垢版 |
2018/05/28(月) 14:09:43.60ID:???
>>772
何そのへんな書き方?
昔も今もエラーになるでしょ
0778Name_Not_Found
垢版 |
2018/05/28(月) 19:07:23.66ID:???
ありって言ってるやつはJavaScriptしらないのかな?
見ただけで構文エラーだとわからないやつは
仕事やめたほうがいいよ
0779Name_Not_Found
垢版 |
2018/05/28(月) 19:13:45.79ID:???
いや、もちろん文法エラーになるのは分かるよw
そういう低レベルの指摘は下々の者に任せることにしてるの。くだらない。
そこが本旨の質問じゃないからな。
0780Name_Not_Found
垢版 |
2018/05/28(月) 19:15:14.45ID:???
>忘れてるだけでしょ
ただしそのままじゃthisが想定と違う気がするけど
0782Name_Not_Found
垢版 |
2018/05/28(月) 19:45:24.64ID:???
>>779
やっぱりわかってないなw
文法エラーであることに気づいてない=JavaScriptしらないから、
昔の書き方と今の書き方の違いもわからない
だからそれでOKとか言っちゃってるんだろ
0783Name_Not_Found
垢版 |
2018/05/28(月) 19:50:17.43ID:???
static変数君また暴れてんのかw
ここはお前の遊び場じゃないぞ
0784Name_Not_Found
垢版 |
2018/05/28(月) 20:02:57.25ID:???
>>782
お前こそ質問の意図がまるで分かっていない。
文法エラー直してくださいって質問じゃないぞ。
質問もう一度読みなおしてみ。
仕事ではコード以外にも日本語も読むだろw
0785Name_Not_Found
垢版 |
2018/05/28(月) 20:13:59.25ID:???
>>784
だから書き方だろ

はそこに書いてあるコードが
昔の書き方か、今の書き方かで答えは変わる。

昔の書き方だろうから、今はそう書かないが答えだろうが
そもそも間違ってるので、もしかしたらそのコードは
今の書き方かもしれない

だからそれを正さなければ、
「今の書き方はそうかかない」と言い切ることはできない
だからまず、そのコードは間違ってると指摘しなければいけない
0786Name_Not_Found
垢版 |
2018/05/28(月) 20:32:37.81ID:???
アローちゃんは、いつ大半のブラウザで動くようになるんですか
0787Name_Not_Found
垢版 |
2018/05/28(月) 20:38:14.18ID:???
>>786
IE11とAndroid 4.4、そしてiPhone 4sを
使っている人が消えたら使っていいよ
0788Name_Not_Found
垢版 |
2018/05/28(月) 20:49:39.53ID:???
win8.1のサポートが切れたら
0790Name_Not_Found
垢版 |
2018/05/28(月) 23:20:43.93ID:???
もういいよめんどくさい
0791Name_Not_Found
垢版 |
2018/05/29(火) 01:47:08.51ID:???
>>785
質問者の意図を反映しつつ
動くコードに書き換えるとどうなるの?
0793Name_Not_Found
垢版 |
2018/05/29(火) 02:10:43.75ID:???
>>775
Ruby のSinatra が、標準のWEBrick よりも簡単。
JS の、Node.js の方が難しい

get '/' do
'hello'
end

これで、ブラウザからアクセスすれば、hello と表示される

実行環境がサーバーなら、クロスオリジンもOK だけど、
ブラウザでは出来ない

ただし直接、HTML ファイルに、URI を書けば、
JS じゃないから、クロスオリジンも出来たかも?

jQuery などで動的に、<script> 要素を生成して、
クロスオリジンのページを読み込ませるような、ハックがあったかも知れないけど、
ブラウザのセキュリティが厳しくなったから、今は出来るかどうかわからない
0794Name_Not_Found
垢版 |
2018/05/29(火) 02:19:38.99ID:???
ヨコからだけど
こゆこと?

var hoge = {
property: 100,
method: ()=>{
return hoge.property;
}
}

var a = hoge.method();
0795Name_Not_Found
垢版 |
2018/05/29(火) 02:33:23.85ID:???
それともこう?


function hoge () {
var property = 100;
this.method = function() { return property;}
}

var h = new hoge()
h.method()
0796Name_Not_Found
垢版 |
2018/05/29(火) 02:34:50.82ID:???
でもnewは使わない前提なのか?
0797Name_Not_Found
垢版 |
2018/05/29(火) 06:24:16.45ID:???
こうゆうことだろ
var hoge = {
property: 100,
method(){
return this.property;
}
}
0798Name_Not_Found
垢版 |
2018/05/29(火) 06:25:40.93ID:???
>>794
昔はそのコードは動かないので、
>>773の昔のコード見てこのような書き方を
しているってのはおかしい

そして今そんな書き方はしない
0799Name_Not_Found
垢版 |
2018/05/29(火) 06:27:15.53ID:???
>>797が今の書き方
だが、昔はこんな書き方はできなかったので
昔のコード見てこうなっているのはありえない
0800Name_Not_Found
垢版 |
2018/05/29(火) 06:50:24.91ID:???
本当に分からないようだから一度だけガチで教えてあげる
質問者が言いたいのはメソッドを持ったオブジェクトを生成するとき
クラスを定義してnewを使うか、それとも使わないかという話だ
もうこれで納得出来ないのなら頼むから発言を控えてくれ
0804Name_Not_Found
垢版 |
2018/05/29(火) 07:18:09.35ID:???
static変数君が、classのstaticメソッドがうんたらかんたらって
流れにしたくて言い出した、と思いながら俺はみている
0805Name_Not_Found
垢版 |
2018/05/29(火) 08:37:14.83ID:???
妄想乙。敵は一人ってやつですねw
0806Name_Not_Found
垢版 |
2018/05/29(火) 08:43:27.65ID:???
答えを焦らして止めをさす戦術は実に嫌みだな
0807Name_Not_Found
垢版 |
2018/05/29(火) 09:59:10.38ID:???
>>800
本当に分かってないようなので教えてやるが
今の質問者は>>791だぞ
0808Name_Not_Found
垢版 |
2018/05/29(火) 12:08:48.27ID:???
indexedDB ってnosql ですか?
0809Name_Not_Found
垢版 |
2018/05/29(火) 13:56:26.61ID:???
>>800
オブジェクトの生成じゃなくてインスタンスの生成じゃないの?
昔の仕様でnewなしでできるの?
0810Name_Not_Found
垢版 |
2018/05/29(火) 14:51:13.63ID:???
まーた来たよクラスベース脳が
大人しくJavaワールドにお帰り
0811Name_Not_Found
垢版 |
2018/05/29(火) 14:53:57.48ID:???
クラスとか関係ねぇ
インスタンスはインスタンス
なにをいってるんだか
オブジェクトだと範囲が広すぎて混乱するからインスタンスのほうがいい
0812Name_Not_Found
垢版 |
2018/05/29(火) 15:02:53.88ID:???
newして生成するものがインスタンスですよ
0813Name_Not_Found
垢版 |
2018/05/29(火) 15:12:19.47ID:???
Object.create()ならnewしなくてもインスタンスつくれるやん。
0814Name_Not_Found
垢版 |
2018/05/29(火) 16:06:37.71ID:???
インスタンスはクラスベースの用語だろ。
ほにゃららクラスのインスタンス。
jsのプロトタイプベースの文脈ではnew ほにゃららのほにゃららはコンストラクタと言う。
そしてその正体はちょっとお作法に乗って作っただけのただの関数。
0815Name_Not_Found
垢版 |
2018/05/29(火) 16:13:21.11ID:???
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Class-Based_vs._Prototype-Based_Languages

> Java や C++ といったクラスベースのオブジェクト指向言語はクラスとインスタンスという 2 つの異なる実体があるという概念に基づいています。

> クラスはあるオブジェクトの集合を特徴付けるすべてのプロパティを定義する。
クラスとはそれが表すオブジェクトの集合の特定のメンバではなく、抽象的なものである。
例えば、Employee クラスで従業員すべてを含む集合を表す。

> 一方、インスタンスはクラスを実例にしたものである。
つまり、そのメンバの 1 つということである。
例えば、Victoria は Employee クラスのインスタンスとなることができる。このクラスは特定の個人を従業者として表すものである。
インスタンスはその親クラスのプロパティを正確に保持する。

> JavaScript のようなプロトタイプベース言語はこの区別がありません。単にオブジェクトがあるだけです。

繰り返す。Javaワールドに帰りなwww
0816Name_Not_Found
垢版 |
2018/05/29(火) 16:51:26.62ID:???
文法上正しいならそういう書き方もあり
メジャーな方法を使いたいというのであれば、まあ、、何がどうであればメジャーなのか知らんが
メジャーと思う方法を使えばいい
0817Name_Not_Found
垢版 |
2018/05/29(火) 17:31:52.52ID:???
>>815
つまりお前はJSにはインスタンスはないといいたいのか?
0819772
垢版 |
2018/05/29(火) 17:38:48.81ID:???
言われてみれば、昔風といいつつアロー関数式書いてましたね
しかも、アロー関数式もケアレスミスしてますしw
でも言わんとするところは分かりますよね?
0820Name_Not_Found
垢版 |
2018/05/29(火) 17:41:29.02ID:???
言わんとすることを回答者に想像させるバカ質問者
0821Name_Not_Found
垢版 |
2018/05/29(火) 17:42:07.53ID:???
関数
オブジェクトリテラル
クラス
を取り混ぜて書くのがJavaScriptなのでしょうね?
0822Name_Not_Found
垢版 |
2018/05/29(火) 18:02:11.75ID:???
今も昔もjsにクラスはないよ。es2015で導入されたclassキーワードもクラスっぽく使えるオブジェクトを簡単に作れるシンタクティックシュガー。
0823Name_Not_Found
垢版 |
2018/05/29(火) 19:30:08.02ID:???
var categoryHtml = document.getElementsByClassName("data-catg");
でHTMLCOLLECTIONを取得して
console.dir( categoryHtml)とすると結果は
ーーーーーー
HTMLCollection(5)
0:td.data-catg
1:td.data-catg
2:td.data-catg
3:td.data-catg
4:td.data-catg
length:5
__proto__:HTMLCollection
----------------


なのに
console.log("length"+ categoryHtml.length)
とすると
length1
となって何故かlengthが5のはずなのに1になってしまいます。
いみがわからないんですがなんでなんですか?
0824Name_Not_Found
垢版 |
2018/05/29(火) 19:35:31.63ID:???
HTMLCollectionはNodeListと違って「生きている」「動的である」ということ
つまり取得したときの状態ではなく、現状が反映される
0825Name_Not_Found
垢版 |
2018/05/29(火) 19:39:47.64ID:???
>>824
いやでも
console.dir( categoryHtml)
console.log("length"+ categoryHtml.length)
と並べて実行した結果なんですが。
動的と言っても変化する要素はないです。
0826Name_Not_Found
垢版 |
2018/05/29(火) 19:47:47.62ID:???
>>822
class構文があるのにクラスが無いとか詭弁でしか無いと思うけどな

それは単にクラスベース言語のクラスを思い浮かべているだけだろう
オブジェクトのライフサイクルが予め存在するクラスシステムに縛られるのがクラスベースOOP言語だよ
一方インスタンスベースOOP言語は縛られないというだけでクラスがあることと矛盾しない
むしろ構造化プログラミングの観点から、『より素朴である』インスタンスベースOOP言語でも
自前でクラスシステムを組み上げるのは当然のことだし、
言語が予め標準的なクラスシステムを用意しておくのも自然なことなんだよ

改めて言うけど、クラスベース言語があって、そしてクラスがあるんじゃなくて、
クラスがあって、そしてそれをベースとする縛りを課した言語であるクラスベース言語があるんだからね
クラスっていうのはクラスベース言語に於ける存在ではなくもっと広い意味を持つもの
そしてクラスとインスタンスベース系言語は矛盾するどころか協力関係だし、
JSにも幾つかのクラスシステムが導入されてるし、
クラスとは、実はいろんなクラスシステムでのある形、塊のことをさす言葉なんだよ
0827Name_Not_Found
垢版 |
2018/05/29(火) 19:48:46.05ID:???
>825
最低限再現できるコードを書いてみて
0828Name_Not_Found
垢版 |
2018/05/29(火) 20:04:39.71ID:???
インスタンスベースOOP(笑)
しかもクラスベースOOPと並べて語っとるww
0829Name_Not_Found
垢版 |
2018/05/29(火) 20:29:21.18ID:???
Javaの泥舟が沈みそうだからってほうぼうで必死すぎるだろ最近。
天下のIT土方様ならプロトタイプベースくらい覚えてから突っかかって来ればいいのに思い込みでギャーギャー喚いてるだけだからな。
そんな腐った心構えじゃJavaの沈没とともに仕事なくなるよ?
ま、次のCOBOLとも言われてるし立ち回りようによっちゃ死ぬまで食えるのかも知れんが。
0830Name_Not_Found
垢版 |
2018/05/29(火) 20:54:21.23ID:???
ただでさえ最近関数型勢なんかの指摘がうるさいのに
JavaおじさんがJS覚えて来たら大変なことになるかもしれないぞ
0831Name_Not_Found
垢版 |
2018/05/29(火) 21:20:14.85ID:???
>>815
>すべてのオブジェクトはインスタンスである。
ってかいとるやん。
何がいいたいんだ?
一対一の文脈に切り取って考えたとき生成されたほうがインスタンスだろ?
0832Name_Not_Found
垢版 |
2018/05/29(火) 21:31:49.43ID:???
JSのインスタンスはこういうものです

const Kichigai = {
[Symbol.hasInstance](){return true}
}

42 instanceof Kichigai // true
0833Name_Not_Found
垢版 |
2018/05/29(火) 21:35:20.39ID:???
× JSのインスタンスはこういうものです
○ JSのインスタンスの一例はこういうものです。他にもあります。
0834Name_Not_Found
垢版 |
2018/05/29(火) 21:36:12.64ID:???
>>827
できました。
テストだからと思ってグローバルで実行してたから
ロードされる前に実行されてたのがだめだったのかもしれません。
でも、.lengthもどっちも同時に実行してるのになんで結果が違うのかよくわかりませんが。。。
0835Name_Not_Found
垢版 |
2018/05/29(火) 21:39:46.76ID:???
インスタンスというのは言外に生成する側との関係性をふくんでいる。
オブジェクトはそういう意味合いはは含んでないってことな。
0836Name_Not_Found
垢版 |
2018/05/29(火) 21:44:10.88ID:???
>>834
うざい。最低限再現できるコードを書くという
ルールすら守らないやつにレスはしない
0837Name_Not_Found
垢版 |
2018/05/29(火) 21:44:18.98ID:???
>>834
再現コードが無いままだが、よくわからないと言うんならwindow.loadで、
あるいはsetTimeoutでもpromiseでも何でも使ってテストしてみたら?
0838Name_Not_Found
垢版 |
2018/05/29(火) 21:44:56.55ID:???
それよりインスタンスベースOOPって何ぞwwwww
初めて聞いたんだがwwww
0840Name_Not_Found
垢版 |
2018/05/29(火) 22:05:31.74ID:???
JSワールドに帰れ君は日本語弱いみたいね。
0841Name_Not_Found
垢版 |
2018/05/29(火) 22:10:30.92ID:???
インスタンスベースoopワロタw
見逃してたわ
0842Name_Not_Found
垢版 |
2018/05/29(火) 22:14:49.11ID:???
>>791にこたえられるやつはいないってこと?
0843Name_Not_Found
垢版 |
2018/05/29(火) 22:15:13.81ID:???
どうせお前らがclass使ってもやることは「あなたは****人目の訪問者です」くらいだろ
0845Name_Not_Found
垢版 |
2018/05/29(火) 22:19:01.39ID:???
安倍ちゃんが移民を本格的にはじめたらしいねぇ
言語の障壁ひくいIT分野の労働市場も大変になりそうだなw
0846Name_Not_Found
垢版 |
2018/05/29(火) 22:21:28.81ID:???
インスタンスベースOOPとも言うよ。
ただ実際使われてるの始めて見た。
javascriptでインスタンスと言わないのはクラスとの対比がないためオブジェクトと言えば済むからだな。
プロトタイプベースと言えば通じるところをわざわざインスタンスベースと言ってみたり、
オブジェクトで済むところをわざわざインスタンスと言ってみたりする必要はないってことだ。
0847Name_Not_Found
垢版 |
2018/05/29(火) 22:41:53.01ID:???
wikipediaのプロトタイプベースの項にはインスタンスベースの記述はあるな
0849Name_Not_Found
垢版 |
2018/05/29(火) 23:32:12.81ID:???
>>822
newで生成する仕組みはclass構文以前からありますよね?
class構文は従来のコンストラクタ関数が変な感じになっていたのを整えただけだと思いますが
0851Name_Not_Found
垢版 |
2018/05/29(火) 23:42:13.99ID:???
>>846
一応いろいろ考えた結果その言葉を選んだ(選ばざるを得なかった)んだけど
クラス(システム)に縛られないこという話でクラスベースとの対比としてプロトタイプベースという言葉は使いにくかった

「クラス」のイメージが「代表的なクラスベース言語」で固まりすぎてるように
「プロトタイプベース」というとJSの代表的な(枯れた)コードイメージが頭に浮かんでしまうんじゃないかと思った
でも昔のJSはプロトタイプベースなのにプロトタイプがすっかり隠蔽されていて
1つの微妙なクラスシステムに半ば縛られていた形だったという事実があるだろう?
ES2015以降ようやっと、今回話した「特定のクラスシステムに縛られていないので、自分で自由にクラスシステムを構築できるし、
言語がデフォルトで提供しているものを使うこともできる」言語になったわけだけど
それでもJSでプロトタイプをよく使ってみた人は少ないんじゃないかと思った
JSって「非クラスベース」言語の中でも特殊だし、プロトタイプベース言語としても客観的に見て特殊だと思う
だから言葉としては適切でも、JSが代表であるプロトタイプベースという言葉を気軽に使うのは難しい

とはいえやっぱりもちろんJSも良くイメージさせる形で話したいし、大げさになりすぎるから「非クラスベース」という言葉は使いたくない
だからまあインスタンスが主で拡張が自由などという特色であれば、JSでも昔っからイメージがあるだろうから
そっちの面を出して語ったほうが良いと思ってあえてちょっと馴染み深くなくもあるインスタンスベースという言葉を使った
0852Name_Not_Found
垢版 |
2018/05/29(火) 23:48:38.34ID:???
>>850
他言語のクラスは無いかもしれないが別にJSでクラスと言う言葉を使ってはいけないわけではないし
存在してはいけないと縛りを課す必要もないだろう

オブジェクト指向に確かにクラスは必須ではない
つまり言えばクラスは必須では無いより一般的な形での概念という形で存在し得る
クラスベース言語に捕らわれてクラス、クラス言うのもだめだが、
クラス、クラス言うなと一般に言うのもまたクラスベース言語に捕らわれてるってことだぞ
0853Name_Not_Found
垢版 |
2018/05/29(火) 23:50:28.60ID:???
なんかさあ、結局javascriptのclassって「他の書き方でもできるけどclass構文でもできる」なんだろ

1つのことをするのにいろんな書き方ができる言語・・・
0854Name_Not_Found
垢版 |
2018/05/30(水) 00:01:31.55ID:???
「でもできる」っていうのがよくわからん
別にオブジェクト一切なくてもチューリング完全な言語は沢山ある
class構文を使うっていうのはオブジェクト指向のそのまた1つのやり方の話でしか無い
「forでもwhileでも再起でもできる」変なの……って思うか?
考えすぎだよ
0855Name_Not_Found
垢版 |
2018/05/30(水) 00:02:51.55ID:???
あきれた、何を他人事みたいに言ってるのかね、クラスクラスとしつこく言い出したのは自分だろうに。jsでクラスがあるとか言い出したらcでもある言えるわバカバカしい。
0856Name_Not_Found
垢版 |
2018/05/30(水) 00:08:22.09ID:???
そもそもJavaScriptがクラスベースの言語だなんて誰も言ってないんですよ
プロトタイプベースだということは分かった上で、
クラスベースくらいかっちりした書き方も出来た方がいいよね?
ということころから始まってるのです
分かりますね?
0857Name_Not_Found
垢版 |
2018/05/30(水) 00:08:58.02ID:???
あきれた、Cにオブジェクト指向とclass構文が入ってからまた来てね
0858Name_Not_Found
垢版 |
2018/05/30(水) 00:10:55.68ID:???
JavaScriptにクラスなんてないガーとか言う人は
相手がJavaScriptをクラスベース言語と思い込んでいると思い込んでいますが
実際にはそんな間違いをしてる人はいないんですよ
分かりますね?
0859Name_Not_Found
垢版 |
2018/05/30(水) 00:13:02.10ID:???
クラスベースとは関係のないオブジェクト指向において一般的な意味のクラス
について話されてるのかと思ったら
クラスベースのようなクラスを話してる人も居るのか
class構文は将来の提案も含めると「かっちりした」っていう目的も強いんだろうけど
0860Name_Not_Found
垢版 |
2018/05/30(水) 00:13:19.56ID:???
>JavaScriptにクラスなんてないガー

こういうガーの使い方する人はじめてみた
0861Name_Not_Found
垢版 |
2018/05/30(水) 00:13:53.24ID:???
自分のお勉強が済んだら方向修正か、情けない。
最初から勉強してきてからイキれや。
0862Name_Not_Found
垢版 |
2018/05/30(水) 00:15:51.62ID:???
>>858
JavaScriptをクラスベース言語だと思っているやつが居るという話は誰もしていないが
クラスベースの感覚を持ちすぎたままJavaScriptでクラスという単語を使うな
もっと広い意味でも使えると言うことだろう
0863Name_Not_Found
垢版 |
2018/05/30(水) 00:16:50.98ID:???
ガーをどう使うかは個人の勝手
クラスをどう使うかは個人の勝手
0864Name_Not_Found
垢版 |
2018/05/30(水) 00:18:03.87ID:???
>>854
いるんだよねこういう低レベルなのに無理して絡もうとするやつ
0865Name_Not_Found
垢版 |
2018/05/30(水) 00:18:51.54ID:???
つよいポケモン よわいポケモン
そんなの ひとの かって
ほんとうに つよい トレーナーなら
すきなポケモンで かてるように
がんばるべき
0866Name_Not_Found
垢版 |
2018/05/30(水) 00:19:40.18ID:???
>>864
確かにいるな、低レベルなのに無理して絡もうとするやつ
0867Name_Not_Found
垢版 |
2018/05/30(水) 00:24:08.37ID:???
インスタンスはクラスベースの用語 は何処行った
0868Name_Not_Found
垢版 |
2018/05/30(水) 00:31:43.91ID:???
メッセージパッシングはOOP用語だがJavaではふつうメソッド呼び出しと言って普段誰もメッセージパッシングガーとか話してないだろ
0869Name_Not_Found
垢版 |
2018/05/30(水) 00:57:48.65ID:???
これは難しくて特殊な話だから普段どうこう言っても仕方ないでしょ
0870Name_Not_Found
垢版 |
2018/05/30(水) 02:40:02.88ID:???
>>823
console.dir, console.log は、異なる関数だろ
0871Name_Not_Found
垢版 |
2018/05/30(水) 03:00:33.09ID:???
>>870
もともとはlogでやってたけどいろいろ試してる中でdirにしただけです。
結果は同じです。
0872870
垢版 |
2018/05/30(水) 03:02:38.45ID:???
>>823
DOM の構築よりも前に、JS コードが実行されてるのかも

JS コードを、<script>要素内に書いて、それらのDOM よりも下に書けば、
JS コードの方が後に実行される

それか、jQuery の、$(function(){...}); を使えば、
DOM 構築後に、JS コードが実行される
0873Name_Not_Found
垢版 |
2018/05/30(水) 06:34:00.95ID:???
>>871
いいから早くサンプル貼ったら?
それとも夢で見た話かな?
0874870
垢版 |
2018/05/30(水) 06:40:59.05ID:???
>>823
そもそも、そのHTML を、ここでチェックしたら、エラーで動かない
https://validator.w3.org/

HTML が間違っている
0875870
垢版 |
2018/05/30(水) 06:57:44.19ID:???
<tbody> 要素を、<table> 要素で囲むと、正常に動いた。
つまり、<table>要素が必要

<table>
<tbody id="tbdy"></tbody>
</table>
0876Name_Not_Found
垢版 |
2018/05/30(水) 09:07:30.83ID:???
同じページで複数のjsファイルを読み込んでいるときってグローバルは
それぞれのグローバルが結合して、それぞれのファイルはは別のファイルの変数をグローバルスコープ上で共有すると考えていいんでしょうか?
0878Name_Not_Found
垢版 |
2018/05/30(水) 09:15:03.71ID:???
>>876
自分で読み直してみて、何がしたいのかその文章から読み取ってもらえると思う?
0879Name_Not_Found
垢版 |
2018/05/30(水) 09:28:33.30ID:???
>>876
よくわからんが、グローバルスコープは1つしかないぞ
0880Name_Not_Found
垢版 |
2018/05/30(水) 09:46:30.79ID:???
>>876
ファイルごとに名前空間が作られるわけではありません
複数のファイルを全て結合した1つのファイルを読み込むのと同じことです
さらに言えば、その全てのコードをHTMLファイルに記述した場合と同じことです
0881Name_Not_Found
垢版 |
2018/05/30(水) 10:18:03.14ID:???
>>880
イメージしやすくてとてもわかり易いです。
ありがとうございます。
0882Name_Not_Found
垢版 |
2018/05/31(木) 13:57:23.84ID:???
googleなどで検索するとき
検索ボックスに単語をいれると、ボックスの下に候補のリストが出ますが
ああいうのはJSで実現できるんですか?
リストを下に表示させるのはどうやれば良いのでしょうか?
0883Name_Not_Found
垢版 |
2018/05/31(木) 14:20:53.11ID:???
サジェストね
jsだけでするタイプとajax使ってphpとかと連携するタイプがある
あらかじめ決まった内容から絞り込むならjsでリスト持っておく
DB検索とか使うならajaxでサーバーサイドで絞り込む
1文字入力ごとに絞り込んで候補をulとかにしてinputの下に表示する
選択されたらinputの中身を入れ換える
0884Name_Not_Found
垢版 |
2018/05/31(木) 16:44:40.75ID:???
Rails 5.1で作るVue.jsアプリケーション 〜Herokuデプロイからシステムテストまで〜
https://youtu.be/ycOeM2umXkY

伊藤淳一の動画
Rails 5.1 から、Vue.js を使う

「vue.js autocomplete」で検索!
0885Name_Not_Found
垢版 |
2018/05/31(木) 16:54:31.23ID:???
サジェスト汚染しとけっていうフリか
0886Name_Not_Found
垢版 |
2018/05/31(木) 18:39:06.40ID:???
よっしゃアドセンス狩りしたろw
0887Name_Not_Found
垢版 |
2018/05/31(木) 18:48:31.41ID:???
予めJSで持っておくとか言ってるやつが居るが
datalist要素の存在忘れちゃったの?
0888Name_Not_Found
垢版 |
2018/05/31(木) 22:01:25.41ID:???
>>883
側というかインターフェースと言うか外観はどうしてるのでしょうか?
検索ボックスのしたにdivかなんかの要素をCSSでfloatしてJSで追加するのでしょうか?
めんどくさそうですね。
0892Name_Not_Found
垢版 |
2018/06/01(金) 11:07:57.90ID:???
「c」ってめちゃくちゃ一般的な語、というか字だけど
その比較意味あんのかww
0894Name_Not_Found
垢版 |
2018/06/01(金) 11:11:00.17ID:???
どうせperlがダントツなんだろと思って確認してみた

まあわかってたさ
0895Name_Not_Found
垢版 |
2018/06/01(金) 11:13:46.71ID:???
最も嫌いな言語はシェルスクリプトだろ普通
コマンドライン入力を使ってプログラミング言語を実現してるから無理矢理感ありすぎ
21世紀に書くものじゃないわ
0896Name_Not_Found
垢版 |
2018/06/01(金) 11:17:53.89ID:???
公害言語perlがダントツ
delphi、vbaが二位争い
php、objactive-c、coffeescript、rubyといった技術負債言語が第三グループを形成
javascriptマジ高みの見物wwwww
0897Name_Not_Found
垢版 |
2018/06/01(金) 11:20:28.81ID:???
嫌いな言語ってある程度触らんと嫌いにならないからな
0898Name_Not_Found
垢版 |
2018/06/01(金) 11:24:33.61ID:???
delphiって使う機会あんのか
0899Name_Not_Found
垢版 |
2018/06/01(金) 11:31:57.02ID:???
単体で使うというよりもいろんなところで見かけたって感じ
パッと思いつくところだとdigitallocaとか、確かコード部分はまんまdelphiだったはず
0900Name_Not_Found
垢版 |
2018/06/01(金) 12:18:40.58ID:???
二位グループ嫌われてる理由違うだろ。
delphiは一昔前pcアプリにかなり使われてたから保守でいじらされるの嫌なんだろう。今さら覚えても潰し利かないし。つまり第三グループが嫌われてる理由と似てる。
vbaは頼まれる機会が多くてクソ言語書かなきゃいけないから苦痛ということだろう。
0901Name_Not_Found
垢版 |
2018/06/01(金) 13:07:11.70ID:???
他人が書いたphpも他人が書いたjsも同じくらいゲロいと思うんだが
0902Name_Not_Found
垢版 |
2018/06/01(金) 22:39:45.78ID:???
javascriptも順調に廃れてるなwwwwwwwww
0903Name_Not_Found
垢版 |
2018/06/01(金) 23:00:16.90ID:???
嫌われクソ言語殿堂入りのるびぃ笑などと一緒にするなよwww
0904Name_Not_Found
垢版 |
2018/06/01(金) 23:53:47.98ID:???
るびぃちゃんと比較しないといけないほどやばい言語になったのか
0905Name_Not_Found
垢版 |
2018/06/02(土) 00:28:29.44ID:NAWqmrGL
るびぃちゃんと同じ嫌われ第三グループはphp、objactive-c、coffeescript(笑)wwwww
0906Name_Not_Found
垢版 |
2018/06/02(土) 03:08:00.15ID:???
嫌いな理由というのも色々あるということだ
perlはガチ言語仕様がガチ
0907Name_Not_Found
垢版 |
2018/06/03(日) 16:38:31.73ID:???
3項演算子をつかって時間がひと桁の時0を頭につけるコードをどっかで見たので
自分でやったけどできない
var sec = (((new Date()).getSeconds < 10 )? "0" : "a") + (new Date()).getSeconds()

なにがだめ?
検証のために"a"いれてます
0908Name_Not_Found
垢版 |
2018/06/03(日) 16:51:40.38ID:???
最初の new Date() と
二回目の new Date() で
同じ時刻になるとは限らない
0910Name_Not_Found
垢版 |
2018/06/03(日) 16:59:43.83ID:???
あ、getSecondsのあとに()がぬけてました。。。
0912Name_Not_Found
垢版 |
2018/06/03(日) 17:36:30.74ID:???
パフォーマンスと言われても1回あたり
1msでも20ms対して変わらん
0913Name_Not_Found
垢版 |
2018/06/03(日) 17:45:28.14ID:???
moment.js 50000byte
day.js 2000byte
画像の50kBと違いjsはダウンロード時間よりもパース時間のほうが長い。
また画像と違ってasyncをつけられなければブロックする。
0914Name_Not_Found
垢版 |
2018/06/03(日) 17:48:25.73ID:???
> また画像と違ってasyncをつけられなければブロックする。

</body>直前に読み込めばいいだけでは?
0915Name_Not_Found
垢版 |
2018/06/03(日) 17:53:46.96ID:???
body直前で問題ないならそれが一番いいよ。
moment.jsロードして使わないなんて何してるのか分からんが。
0916Name_Not_Found
垢版 |
2018/06/03(日) 17:55:13.13ID:???
>>915
asyncだって読み込み終わらなければ使えないぞ?
同じことだろう
0917Name_Not_Found
垢版 |
2018/06/03(日) 18:00:19.42ID:???
てかjQueryなんかと同じで被依存ライブラリなんだから事実上asyncなんか付けられるわけないし/body直前もあり得ないだろ
0918Name_Not_Found
垢版 |
2018/06/03(日) 18:04:13.29ID:???
へ? 使う前に読み込んでいればいいんだから
asyncも</body>直前でもできるけど?

例えば、clickイベントの中で使うなら、
クリックする前に読み込んでいればいい
0919Name_Not_Found
垢版 |
2018/06/03(日) 18:04:20.93ID:???
そのためのdeferじゃないの?
0920Name_Not_Found
垢版 |
2018/06/03(日) 18:05:59.90ID:???
イベントハンドラは当たり前じゃん
0921Name_Not_Found
垢版 |
2018/06/03(日) 18:07:21.46ID:???
だから当たり前のことを言っただけなんだが。
ありえない?当たり前の事を知っていれば、
ありえないが間違いだってわかるよね?
0922Name_Not_Found
垢版 |
2018/06/03(日) 20:59:33.02ID:???
今からはimportで読み込んで使うものだけど
0923Name_Not_Found
垢版 |
2018/06/03(日) 21:27:37.16ID:???
qiitaって宣伝とかアフィとかになるんか?
0924Name_Not_Found
垢版 |
2018/06/03(日) 21:59:14.24ID:???
>>913
出来ることも同じなんですか?
だとしたらなんでそんなにサイズが違うんですか?
0925Name_Not_Found
垢版 |
2018/06/03(日) 22:12:11.90ID:???
素のjsのDateを使おう。サイズは驚異のゼロbyte。速度はmoment.jsの20倍速い。
moment.jsは便利だがAPIがイケてないということでdate-fnsに追い捲られてるはず。
このようにライブラリには流行り廃りがあるのだ。
素のjsのDateのAPIもイケてないが、moment.jsとは違う点がある。それは決して廃れないことだ。
じゃあもう覚えちゃえばいいんじゃん?
0926Name_Not_Found
垢版 |
2018/06/03(日) 22:13:46.50ID:???
> 素のjsのDateを使おう。
めんどくせぇ、俺の仕事はDateを使いこなすことじゃないんだよ
0927Name_Not_Found
垢版 |
2018/06/03(日) 23:21:46.39ID:???
別に使いこなさなくても時刻0埋めはIntlAPIで簡単にできる

date = new Date('2018/06/01 01:02:03')

date.toLocaleTimeString( 'en', { hour12: false } )
// "01:02:03"

date.toLocaleTimeString( 'en', { minute: '2-digit', second: '2-digit', hour12: false } )
// "02:03"
0928Name_Not_Found
垢版 |
2018/06/03(日) 23:41:25.02ID:???
>>927
こんなんじゃ使い物にならないな

date = new Date('2018/06/01 01:02:03')

date.toLocaleTimeString( 'en', { hour12: false } )
// "?1?:?02?:?03"

date.toLocaleTimeString( 'en', { minute: '2-digit', second: '2-digit', hour12: false } )
// "?6?/?1?/?2018? ?1?:?02?:?03? ?AM"
0929Name_Not_Found
垢版 |
2018/06/03(日) 23:45:35.74ID:???
何故いきなり自己紹介を!?
0930Name_Not_Found
垢版 |
2018/06/03(日) 23:53:34.58ID:???
しかも文字化けwww
IntlAPIでできるとか、こいつ実際に使ってるのか?
どうせ使ってねーんだろうな
0931Name_Not_Found
垢版 |
2018/06/03(日) 23:55:37.26ID:???
JavaScript(?)のAPI設計してるやつって
センスないのか?

なぜ短く書く方法が他にもいくらでも見つかるのに
それを無視して冗長なやり方をするんだ?
0932Name_Not_Found
垢版 |
2018/06/04(月) 00:24:32.07ID:???
オプションオブジェクトのこと?
昔のAPIはフラットに引数足してったけどそのやりかたは拡張性・互換性に乏しいということで最近のAPIは基本引数の後ろでオプションオブジェクトとるようになったんだよ。
センスは良くなったの。冗長だけど。
0933Name_Not_Found
垢版 |
2018/06/04(月) 00:30:51.46ID:???
素のJSがイケてないからライブラリが出来たのに
素のJSを使おうとは・・
そもそもSPAならパースは始めだけなので大して問題にならないですよね?
軽いに越したことはないですが・・
0934Name_Not_Found
垢版 |
2018/06/04(月) 00:56:48.16ID:???
「SPA」の「始め」ってメガトン級じゃん。そこにさらに50KB積むのか…
まぁせめてSSRはしとけよ?
0935Name_Not_Found
垢版 |
2018/06/04(月) 01:00:11.53ID:???
SSRとかもはやレアってなに?ってレベルだな
0936Name_Not_Found
垢版 |
2018/06/04(月) 01:10:24.63ID:???
URとかLRとかまであるんやで…
0937Name_Not_Found
垢版 |
2018/06/04(月) 06:25:58.02ID:???
>>928
君の壊れたブラウザじゃ使いものにならないのだろうね
0938Name_Not_Found
垢版 |
2018/06/04(月) 10:18:12.72ID:???
Edgeが壊れたブラウザで、動かなくて平気っていう人は楽だねw
でも仕事じゃそうはいかないんだよ
0939Name_Not_Found
垢版 |
2018/06/04(月) 10:54:25.18ID:???
>>938
壊れたブラウザの為に変に小細工するからつけあげる
放置することが賢明
やる気がなければ何れ消滅する
0940Name_Not_Found
垢版 |
2018/06/04(月) 10:57:29.14ID:???
>>938
重要なことを忘れていた
余計な仕事が増えるだけ
0941Name_Not_Found
垢版 |
2018/06/04(月) 11:23:34.48ID:???
シンプルに'0'つけて1回変数に入れてからsubstringすりゃいい
と言ってはいけない雰囲気
0942Name_Not_Found
垢版 |
2018/06/04(月) 11:26:52.13ID:???
>>940
重要な仕事をお前の気分で余計な仕事に変えるな
重要かどうかはお前が決めるのではない
世界が決めるのだ。
0943Name_Not_Found
垢版 |
2018/06/04(月) 11:58:55.94ID:???
ライブラリは必要だから作られたものなのですから
それが必要でなくなるのは、ブラウザの標準化がめざましく進むなどの前提条件の変化があった場合か
それよりもいい代替が現れた場合だけです。
前提条件はたいして変わっていないのですから
ライブラリいらないガーという主張には頷けませんね
0944Name_Not_Found
垢版 |
2018/06/04(月) 12:31:09.87ID:???
githubではスター数ゼロの誰からも必要とされないライブラリが量産され続けています。
ライブラリは必要だから作られる、の反例として。
0945Name_Not_Found
垢版 |
2018/06/04(月) 12:36:51.43ID:???
そのライブラリを作った人には少なくとも必要だったのでしょう
その必要性が広い潜在的需要に応えたものもあり、そうでもないものもあります
当たり前の話です
ここでは広く受け入れられたライブラリの話をしてるのですから、反例というかただのトンチンカンです
0946Name_Not_Found
垢版 |
2018/06/04(月) 12:37:53.68ID:???
>>938
Edgeでもきちんと動くけど
君のPCが壊れてるみたいだよ
0947Name_Not_Found
垢版 |
2018/06/04(月) 12:58:14.48ID:???
中国語環境とかだったりして
0948Name_Not_Found
垢版 |
2018/06/04(月) 15:22:24.29ID:???
>>942
その前にどのブラウザを使かは自由
それは仕事ではなく奉仕というんだよ
0949Name_Not_Found
垢版 |
2018/06/04(月) 15:41:01.51ID:???
古い初期バージョンのEdge使ってるから、だったりして
0952Name_Not_Found
垢版 |
2018/06/04(月) 16:54:27.87ID:???
どのブラウザを使っても自由
lynxでアクセスしたら逮捕された事件があったな
0953Name_Not_Found
垢版 |
2018/06/04(月) 18:27:57.12ID:???
文字列の複数選択には、現状Firefoxだけが対応しているようです(Ctrlを押しながら選択)
JavaScriptで、SelectionオブジェクトにaddRangeするという形なら
ユーザ操作による複数選択に非対応のブラウザでも複数選択させることができるのでしょうか?
0955Name_Not_Found
垢版 |
2018/06/04(月) 18:51:08.86ID:???
もうatomかvscodeのコントリビュータに聞けや
いい加減うっとおしい
0956Name_Not_Found
垢版 |
2018/06/04(月) 19:46:57.50ID:???
は??
あなたのうっとうしさなんて鼻くそ以上の意味すらないのですが?
JavaScriptの質問スレでJavaScriptの質問をしているだけです
うっとうしいと思うのならあなたが去ればいいだけの話です
分かりますね?
0958Name_Not_Found
垢版 |
2018/06/04(月) 21:39:21.37ID:???
もう来ませんつったんだからもう来んなよ
0959Name_Not_Found
垢版 |
2018/06/04(月) 21:41:57.73ID:???
|∧_∧
|・ω・* <来てないよ
| っ 9
|―u’
0960Name_Not_Found
垢版 |
2018/06/04(月) 22:04:26.69ID:???
関数の引数のデフォルト値の設定についてなんですが。
デフォルト値は関数内部で定義した変数は使えないんですか?

例えば
var f = (n = x) => {
var x = "korehoshii";
return n
}
でkorehoshii
を返すようにするのはむりなんでしょうか?
0962Name_Not_Found
垢版 |
2018/06/04(月) 22:27:46.01ID:???
そうですか。
カリー化したらやりたいことできそうなのでそれでやります。
0963Name_Not_Found
垢版 |
2018/06/04(月) 23:17:14.16ID:???
ターミナル上でnode起動してから
var f = (n=1) => {
return n
}

って打ってエンターおしても入力が終わらないのなんでなんでしょう?
クロムのコンソール上だとちゃんと出来るのに。
0967Name_Not_Found
垢版 |
2018/06/05(火) 17:34:56.46ID:???
おう、ちょっと俺の話を聞いてくれよ
こないだほんとにあったことなんだ
0968Name_Not_Found
垢版 |
2018/06/05(火) 17:38:29.50ID:???
朝起きたらよ、パンツの部分が濡れてるんだ
0969Name_Not_Found
垢版 |
2018/06/05(火) 18:41:57.75ID:???
>>966
そりゃv5系じゃ対応していない(要フラグ)から当たり前だろ
デフォルトで対応はv6系からってのは公式をちょっと調べたら分かること
つうかもうv8系かv10系使おうや
0970Name_Not_Found
垢版 |
2018/06/05(火) 19:12:20.52ID:???
あ、そうなんですか。
最近node.jsはじめたっばかりだから
当然最新のものインストールしてると思ってたのですが、
古いの入れたようですね。
ありがとうございます。
0971Name_Not_Found
垢版 |
2018/06/06(水) 11:49:23.05ID:???
contenteditableな要素に書式付きのいわゆるリッチテキストをペーストしたら、
書式も一緒にペーストされることに気づきました
以前contenteditableを使った時には、CTRL+Vの動作を上書きして
スクリプトで素のテキストとして追加していましたが、
これだとブラウザのundo機能の対象外になります
undoも可能な書式なしコピーを実現するにはどうすればいいでしょうか?
0972Name_Not_Found
垢版 |
2018/06/06(水) 11:58:06.97ID:???
仕様化されておらずブラウザの実装依存なのでは?ブラウザベンダーにメールでもして聞けば?
0973Name_Not_Found
垢版 |
2018/06/06(水) 12:23:58.63ID:???
>>972
知らないなら答えなくていいですよ
何かコメントしなければいけないとでも思い込んでるんですか?
0974Name_Not_Found
垢版 |
2018/06/06(水) 12:34:14.11ID:???
そもそもブラウザの歴史は独自実装から標準化への過程そのもので
かつての方がずっとブラウザの独自性は激しく、不可解な動作だらけでしたが
その荒れ地を舗装する過程で「ブラウザベンダーに理由を聞いてみよう」なんていう技術者は一人もいませんでした
実際に一人もいなかったのか知りませんが、いなかったはずです、少なくともマトモな技術者には。
何故なら意味がないからです
分かりますね?
0975Name_Not_Found
垢版 |
2018/06/06(水) 12:34:42.63ID:???
ごめん。黙ってるべきだった。
0976Name_Not_Found
垢版 |
2018/06/06(水) 13:11:57.12ID:???
無名関数が分かりにくい。
即時関数や入れ子・引数に関数を渡すなど。
その辺の記述の仕方を、
かみくだいて分かりやすく説明してくれてるサイトか書籍はありますでしょうか?
0977Name_Not_Found
垢版 |
2018/06/06(水) 13:26:54.67ID:???
いい加減、できる会社に金払って委託しろよとは思う
0979Name_Not_Found
垢版 |
2018/06/06(水) 20:22:57.52ID:???
色んな情報を見て試して分かるまで使ってみて慣れればいいだけ
0980Name_Not_Found
垢版 |
2018/06/06(水) 22:09:33.09ID:???
「理由を聞く」じゃなくて「動作仕様を聞く」だろ
昔も今もそれなりに居たはずと思うが

自前で追いかけundoを実装すればいいじゃん
0982Name_Not_Found
垢版 |
2018/06/07(木) 00:05:06.98ID:???
この前のとこもう一回いいですか?
0984Name_Not_Found
垢版 |
2018/06/07(木) 08:07:55.02ID:???
これは関数宣言。function 文。式ではなく文!
function f(){ }

文では巻き上げできる。
上で関数を呼び出して、下で定義できる
f();
function f(){ }

下は関数式。文ではなく式!
下の無名関数をよく使う。
var f = function f(){ };
var f = function(){ };

式にすると、関数の引数・戻り値として渡せる。
第一級関数だから、関数もオブジェクトとして扱える

() を付けると、即時実行。
IIFE (Immediately Invoked Function Expression; 即時実行関数式)

下のように、()で囲むと式になるので、即時実行できる。
文は即時実行できない
var f = function(){ }();
(function(){ })();
0985Name_Not_Found
垢版 |
2018/06/07(木) 08:58:52.18ID:???
(function(g){return g;})(f)();
function f(){console.log(`
>>584
> 式にすると、関数の引数・戻り値として渡せる。
文でも渡せるじゃん。
`);}
0987Name_Not_Found
垢版 |
2018/06/07(木) 09:03:40.78ID:???
仮面ライダー「どういたしまして」
0988Name_Not_Found
垢版 |
2018/06/07(木) 13:16:06.35ID:???
式は文だからね
「魚を食べます。」は文だが
「魚。」も文だ
0989Name_Not_Found
垢版 |
2018/06/07(木) 13:54:55.80ID:???
>>984
> これは関数宣言。function 文。式ではなく文!
「function 文」なるものは定義されてないぞ、と一応いっておく
0990Name_Not_Found
垢版 |
2018/06/07(木) 15:10:35.57ID:AkfvPQ78
Google maps APIの、Markerのlabelの表示/非表示をズームレベルによって切り替えるにはどうしたらいいでしょうか?
0991Name_Not_Found
垢版 |
2018/06/07(木) 17:47:51.62ID:???
ズームが変更された時のリスナー関数でズームレベル見てそれによってマーカークリックのイベントを切り替える
0992Name_Not_Found
垢版 |
2018/06/07(木) 21:26:25.72ID:???
>>976
なれだよ。
あなたが知りたいことの解説本ではないが、
関数型プログラミングにはそういうのがオンパレードだから
そっち系の本読むと慣れてくるかも。
基本の型が自然と身につく。
0993Name_Not_Found
垢版 |
2018/06/07(木) 21:33:56.31ID:???
>>984
アロー関数も巻き上げできるやろ。
できないと思ってたけどできてびっくり。
俺が勘違いしてなければだけど
0997Name_Not_Found
垢版 |
2018/06/07(木) 22:02:37.02ID:???
文を文というには最小の構成要素が必要な。

愛。

は文とはいわん。
あとは検索しろ。
1000Name_Not_Found
垢版 |
2018/06/07(木) 23:29:22.48ID:???
>>998
大体、合ってるけど、ECMAScript2017を持ち出している割には、微妙に説明が間違っているのが気になるねえ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 52日 23時間 19分 39秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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