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

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

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

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

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

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

バカ「バグだ!」

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

let a = hoge.method();

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

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

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

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

だからそれを正さなければ、
「今の書き方はそうかかない」と言い切ることはできない
だからまず、そのコードは間違ってると指摘しなければいけない
2018/05/28(月) 20:32:37.81ID:???
アローちゃんは、いつ大半のブラウザで動くようになるんですか
2018/05/28(月) 20:38:14.18ID:???
>>786
IE11とAndroid 4.4、そしてiPhone 4sを
使っている人が消えたら使っていいよ
2018/05/28(月) 20:49:39.53ID:???
win8.1のサポートが切れたら
2018/05/28(月) 23:14:27.37ID:???
>>785
お前AI BOTだろ
2018/05/28(月) 23:20:43.93ID:???
もういいよめんどくさい
2018/05/29(火) 01:47:08.51ID:???
>>785
質問者の意図を反映しつつ
動くコードに書き換えるとどうなるの?
2018/05/29(火) 01:52:56.73ID:???
var hoge = 100;
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> 要素を生成して、
クロスオリジンのページを読み込ませるような、ハックがあったかも知れないけど、
ブラウザのセキュリティが厳しくなったから、今は出来るかどうかわからない
2018/05/29(火) 02:19:38.99ID:???
ヨコからだけど
こゆこと?

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

var a = hoge.method();
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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