X



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

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

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」から解離した議論はよそでやること。
■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです

※前スレ
+ JavaScript の質問用スレッド vol.137 +
https://mevius.5ch.net/test/read.cgi/hp/1546773073/
2019/02/17(日) 18:36:36.73ID:???
>>24
それは全Object型を判定できてないぞ
Int型が欲しいなら、Int32準拠で作るなら自前実装すれば良い
整数判定なんてたいして難しくはあるまい
26Name_Not_Found
垢版 |
2019/02/18(月) 18:01:06.31ID:E4CBfg7H
マンガで分かるjavascriptプログラミング講座
ttps://crocro.com/write/manga_javascript/wiki.cgiというサイトを見て分かりやすいと思ったんですが、ちょっと昔のものをやっても大丈夫なんですか?

また、他に初心者にオススメの学習サイトってありませんか?
Progateは分かりやすく初級編は一周しましたが、クレジットカード持ってなく会員登録できないのでやめました。
ドットインストールはテキストエディタが白くて目が疲れて集中出来ないのでやめました。
なので、なるべく無料で初心者向けの学習サイトがあったら教えてください。お願いします...
2019/02/18(月) 19:29:51.47ID:???
>>26
そのサイトは確度に問題があると思うがなあ
2019/02/18(月) 19:41:40.89ID:???
>>27
まじっすか...
使うのやめます...
2019/02/19(火) 09:23:58.72ID:???
>>26
とりあえずMDNでいいんじゃね。
初心者用チュートリアルとかあるし
2019/02/19(火) 13:07:52.04ID:???
スレを未読に戻す機能ってありますか?
レス代行しているのですが、後でと思って放置してしまう時があります
未読に戻せれば忘れないのですが
2019/02/19(火) 13:08:10.51ID:???
すいません、スレを間違えました
2019/02/19(火) 13:11:03.39ID:???
※このスレはレス代行業者に監視されています
33Name_Not_Found
垢版 |
2019/02/19(火) 19:14:39.12ID:q40YB38R
JavaScriptの勉強始めたいんだけど、練習環境ってどうすればいいの?
FireFoxのやつとか使うのが一般的?

できればpythonのjupyter notebookみたいな学習ノートとしての機能もしっかりついてるような
環境が欲しいんだけど。
2019/02/19(火) 19:24:48.69ID:???
Chrome以上の環境なんてあるんか
2019/02/19(火) 19:25:31.13ID:???
htmlファイルにjs書いてchromeで開いたらソレでいいと思うけど
テキストエディタはatom辺りでええやろ
2019/02/19(火) 19:27:59.99ID:???
ノート機能が欲しいならjupyter notebookにjsカーネル入れるだけだろ。
とっくにpython専用じゃないんだがあれ。
2019/02/19(火) 19:28:42.28ID:???
runkit使えrunkit
2019/02/19(火) 19:29:50.84ID:???
いやvscodeにlive-serverだろ
2019/02/19(火) 19:35:52.24ID:???
jsの勉強って言っても要素作成、属性変更、無名関数とバインドにifとforぐらいやれば十分で
後は設計する力を高めたほうが良いと思う
2019/02/19(火) 19:46:44.53ID:???
>>29
見たところ自分に合ってそうです!
やってみます!
ありがとうございます!
41Name_Not_Found
垢版 |
2019/02/19(火) 22:28:44.70ID:q40YB38R
jupyter notebookでできるし、jupyterlabでもできるんだ...
知らなかった!サンクス

ちなみにnode.jsのnodebrewとnpmは、pythonだとpyenvとpipに相当するという理解でOK?
2019/02/20(水) 06:23:39.09ID:???
VSCode, Node.js をインストールする

コマンドプロンプトで、where node と打つと、
C:\Program Files\nodejs\node.exe

後は、VSCode のスレへ行って、お勧め拡張機能を、10個ぐらい入れる

ただし時刻は、Node.js を直接実行すると、UTC となり、9時間ずれる。
timeZone を指定すれば、ローカルタイムになる

同じソースコードをブラウザや、拡張機能のQuokka.js で実行すると、ローカルタイムになる

// 1970年01月01日 00:00:00 UTC (Unix エポック)
var dt3 = new Date( 1970, 0, 1, 0, 0, 0 );

// 上は、1969-12-31T15:00:00.000Z, 下は、1/1/1970, 00:00:00
console.log ( dt3 );
console.log ( dt3.toLocaleString( 'en-US', { timeZone: 'Asia/Tokyo', hour12: false } ) );
2019/02/20(水) 06:39:25.66ID:???
>>41
node.js のnpm, yarn は、Ruby のBundler と同じ

パッケージをグローバルにインストールすると、すべてのプロジェクトで共通となる

逆に、プロジェクトフォルダに設定ファイルを置いて、
プロジェクト固有にインストールすると、そのプロジェクトのみに適用できる

Ruby では例えば、sqlite3 のgem(パッケージ)を、グローバルにインストールすると、
自分は、Ruby2.4 を使っているのに、2.0〜2.4 のすべてが入る!

最新版のバージョン指定をしなかったからかな?
npm, yarn では、どうなるのか、わからないけど

C:\Ruby24-x64 以下に、
./lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.0/sqlite3_native.so
./lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.1/sqlite3_native.so
./lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.2/sqlite3_native.so
./lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.3/sqlite3_native.so
./lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.4/sqlite3_native.so
2019/02/20(水) 07:02:50.87ID:???
>>42>>43
死ね
2019/02/20(水) 17:16:50.42ID:???
ゲーム用のフレームワークとゲームエンジンでは何が違うんですか?
また、javascriptだけで出来る範囲というのはどこまですか?
2019/02/20(水) 18:29:49.56ID:???
>>45
フレームワーク= ライブラリ群
エンジン=ライブラリ
unityぐらいになると、独自のフレームワークになったりする

まぁおsれらはさておき、超絶おざっぱに言うと
>、javascriptだけで出来る範囲と
あったりなかったりする
ボタンを配置するのがjs
セーブデータを設定するのがphp
2019/02/20(水) 20:15:49.10ID:???
wikipediaより
> ライブラリ(英: Library)は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。

ライブラリ群は、汎用性の高い複数のプログラムを、ひとまとまりにしたものを、ひとまとまりにしたものである???

まあ「フレームワーク=ライブラリ群」という説明が間違ってるから
意味不明になるんだけどねw
2019/02/20(水) 20:17:42.69ID:???
フレームワーク・・・俺(フレームワーク)が呼び出すから、お前は中身を書いてくれ
ライブラリ・・・俺(ライブラリ)が中身を書いたから、お前は便利に使ってくれ
2019/02/20(水) 20:18:32.86ID:???
それはIoCの説明では?
2019/02/20(水) 20:24:33.95ID:???
全く違う
2019/02/20(水) 20:40:09.61ID:???
>>47
申し訳ない、飲みながら適当n書きました!
52Name_Not_Found
垢版 |
2019/02/20(水) 22:59:09.17ID:qoPWETkF
ローカルHTMLファイルをChromeで

file:///〜.html#aaa
とか
file:///〜.html?aaa
のような感じで開こうとすると
#が%23、?が%3Fに置き変わってしまい
htmlファイルそのものが見つからなかったような感じになってしまうんですが
このようにURLにhashなりsearchなりを含めた形で開くのはローカルでは無理なのでしょうか?
2019/02/21(木) 00:21:00.12ID:???
>>52
へぇ、知らなかった
その辺は限界かと思うので、xamppなどを導入すると良いと思う
hostsファイルの編集と組み合わせるとメチャクチャ強力だぞ
詳細はこの辺
https://15g.jp/post-770/
2019/02/21(木) 04:34:50.79ID:???
node js とは実行環境のことですか?vs code使うときに必要なようですが
2019/02/21(木) 06:54:03.52ID:???
>>52
file:///は通信を発生させないから
2019/02/21(木) 08:48:49.50ID:???
vs codeなんですが nodejsとどうやって関連付けするか教えてください
add configurationの部分に候補が出てこないです
node jsはインストールしてます
2019/02/21(木) 08:56:26.44ID:???
>>56
https://code.visualstudio.com/docs/nodejs/nodejs-tutorial
2019/02/21(木) 09:57:14.66ID:???
連想配列のキーに使えない文字ってありますか?
また、連想配列のキーの長さの最大値って何文字ですか?
ちょっと重複のカウントとかに連想配列を使いたいので知りたいです。
よろしくお願いします。
2019/02/21(木) 10:55:03.20ID:???
> 重複のカウントとか

どんな要件か教えろ
そんなくだらないこと考える必要のない素晴らしい実装を見せてやんよシュッシュッ
2019/02/21(木) 12:48:18.44ID:???
>>58
[[Prototype]]をnullにしたなら、文字列リテラルの仕様に準ずる
6160
垢版 |
2019/02/21(木) 12:51:28.22ID:???
値を捨てるぐらいなら、new Set()を使えばいいのに、とは思う
2019/02/22(金) 06:51:51.53ID:???
関数単位で見た場合副作用が無いとは言えないね
2019/02/22(金) 07:02:11.35ID:???
オブジェクトを連想配列に使う場合に、
たまたま、__proto__ というキーに値を設定すると、ハマる

var obj = { __proto__: 1 };

var obj = { };
obj[ '__proto__' ] = "a";

だから、Haxe では内部的に、文字列の前に、@ を連結して、
@__proto__ のようにして、元からあるプロパティを上書きしないようにしている

確か、ES6 だったかな? のmap みたいなライブラリを使うとか、
Object.assign() とかかな?
2019/02/22(金) 07:17:57.14ID:???
>>56-57
Node.js をインストールしたら、
コマンドプロンプトで、where node と打つと、
C:\Program Files\nodejs\node.exe
と表示されるか、確かめる

右側に表示される、.js ファイル上で、ターミナルを開くと、
そのファイルがあるフォルダ上で、ターミナルが開くので、
node a.js と打てば、実行できる

ターミナルでは、タブで入力補完、上下矢印で履歴をさかのぼれる

拡張機能のCode Runner を入れると、右クリックメニューから、
指定したソースコードの範囲を実行できる。
Ctrl+Shift+P で、Run Code でも同じ

拡張機能のQuokka.js を入れると、Ctrl+Shift+P で、Quokka.js New File でも実行できる。
変数名だけで、その内容をファイル上にも表示してくれる。
console.log( 変数名 ); と書かなくてもよい!
2019/02/22(金) 07:34:11.54ID:???
>>63
>>60でnullにするよう指摘済
文字列のままならそれでよいが、Mapがより有用
値が不要ならSet
2019/02/22(金) 08:45:47.99ID:???
>>64
質問に対する答えになってないね。
分かんねーなら黙ってろクズ。
2019/02/22(金) 12:05:23.48ID:???
オンラインのエディタでもいいの?
VS codeの設定がわからん
2019/02/22(金) 18:44:08.29ID:???
https://playcode.io/
というオンラインエディタ使ってるんですが、どこからダウンロードできますかね
ファイルを
2019/02/22(金) 23:36:56.20ID:???
たまたま__proto__というキーが来ることなんてクライアントサイドで考える必要はまったくない
そんなことを言い出したらたまたま1GBのキーが来ることなども考えないといけない
隕石が怖いとかそんなレベルな話は止めよう
2019/02/23(土) 03:15:24.82ID:???
__proto__はプロトタイプ汚染攻撃に使われるらしい。
しかしこれ攻撃側も結構大変みたいだな。
目隠ししたまま迷路を解くみたいだ。
2019/02/23(土) 05:49:15.68ID:???
デバッグって、ブラウザの更新しながらやるもんですか?
なにかツールがあるんでしょうか。
2019/02/23(土) 08:58:24.54ID:???
>>69
かいひするほうほうがるなら、対策した方が良くね?
2019/02/23(土) 11:09:41.05ID:???
beginpathはjavascriptではないのですか?
2019/02/23(土) 11:21:40.61ID:???
>>72
さあ
俺はできることなら全てやるべきとは考えないけどね
著名なライブラリとかだとどこでどう使われるか分かんないから気にするのは分かるけど
2019/02/23(土) 11:26:12.72ID:???
>>72
キリないぞ
2019/02/23(土) 11:27:58.98ID:???
ユーザー操作が前提なら対策せざるを得ないというかセキュリティの問題になる
手元で使う分には注意するだけで済む事もあるんじゃない
7763
垢版 |
2019/02/23(土) 11:57:11.59ID:???
例えば、英単語を登録して、使用回数を数える場合、
オブジェクトを連想配列に使うと、

たまたま、__proto__ という単語を登録しようとして、ハマる

var obj = { };
obj[ '__proto__' ] = 1;
2019/02/23(土) 11:59:59.17ID:???
>>77
死ね。お前がハマってんのはクソ言語の改行コードだろwww
https://mevius.5ch.net/test/read.cgi/tech/1545421414/166
79Name_Not_Found
垢版 |
2019/02/23(土) 15:04:25.52ID:HHC5SAPM
jQueryでメソッドに引数として渡したいものがちょっと複雑なとき、即時関数で

$('#aaa').text((()=>{
〜略〜
〜略〜
〜略〜
return bbb;
})());

とするのがよいのでしょうか?
なんかずいぶん括弧が多いですが…
即時関数を使わずおとなしく外で

〜略〜
〜略〜
const bbb = 〜略〜;
$('#aaa').text(bbb);

とする場合との使い分けがどうもわからず…
前者(即時関数)のほうが、まとまった一連の処理って感じでわかりやすい&変数名が重複しづらいので良さげな気もしますが
2019/02/23(土) 17:34:48.52ID:???
>>79
なんで即時関数を使わないといけないだ?

$('#aaa').text(function() {
 〜略〜
 〜略〜
 〜略〜
 return bbb;
});

ってすりゃいいじゃん
2019/02/23(土) 17:46:31.56ID:???
へー1.4から関数も受けつけてくれるようになってたんだ?
http://js.studio-kingdom.com/jquery/manipulation/text
2019/02/23(土) 21:05:11.52ID:???
ドットインストールで独学で勉強中で超基礎的な質問なんですが

const o = {
a:1,
b:2,
};


Object.keys(o).forEach(key => {
console.log(`${key}${o.key}`);
});
このo.keyの部分がundefinedになってしまうんですが
なんで1って表示されないんでしょうか
2019/02/23(土) 21:22:26.62ID:???
>>82
o.key → o[key]
変数名とプロパティ名がごっちゃになってる
2019/02/23(土) 21:44:06.76ID:???
>>83
ああそうか、わかりました
o.keyだとkeyが変数でアクセスできるわけないですね
[]だと中が変数でも中身の文字列に変換されるからアクセスできるってわけですね
ありがとうございました
2019/02/23(土) 21:53:11.02ID:???
質問です
sinが-cosが-だったらπ〜2πの角度で返してくれる関数って存在しますか?
asinとacosが別々なのでどっちも-π/2〜π/2または0〜πで返ってしまうので
2019/02/23(土) 22:16:01.99ID:???
>>85
Mathクラス
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math

Math.cos(Math.PI)
は-1が返る
2019/02/23(土) 23:09:20.62ID:???
>>77
ようは、オブジェクト初期化子を使うのが問題なだけだな
2019/02/24(日) 04:48:44.92ID:???
javascriptのゲームエンジンは何がおすすめですか?
更新されていないものが多いのですか・
2019/02/24(日) 09:38:59.56ID:???
>>88
好み
2019/02/24(日) 09:50:29.43ID:???
ふつうにPhaserでいいだろ。
2019/02/24(日) 10:00:38.98ID:???
enchant jsってのは古いのですか?
2019/02/24(日) 10:04:26.94ID:???
無条件に「お勧め」を選ぶんだから好みだろ
古いとか気にせず、好きに選べばよい
2019/02/24(日) 10:43:52.63ID:???
Unity
2019/02/24(日) 10:49:43.35ID:???
>>91
https://github.com/wise9/enchant.js
2019/02/24(日) 11:23:35.25ID:???
PIXI.jsはいいぞ
2019/02/24(日) 11:54:55.71ID:???
フレームワーク使うならゲームエンジンで良いのでは と思うのですが
2019/02/24(日) 12:52:13.90ID:???
>>96
自己判断できるなら他人に尋ねる必要はないと思うのですが
2019/02/24(日) 12:54:32.46ID:???
昔jsでゲーム作ったらチートやりたい放題になって泣いた
サーバーでデータ持たせればいいんだけど、それはそれで面倒すぎる
2019/02/24(日) 13:20:17.32ID:???
>>98
1人遊び用にすればいい
2019/02/24(日) 13:36:40.96ID:???
>>99
それならDXライブラリで作るんだ・・・
webの特色、サーバーサイドの処理はやっぱり活かしたかった
まぁもう作ることもないだろうけどね
10179
垢版 |
2019/02/24(日) 20:02:21.10ID:Zws/aviX
>>80
あー関数を渡せば勝手に実行してくれるんですね、そういえばやったことあったような

でもjQueryでなく例えば配列へのpushとかだとエラーになるので、そういったときはやっぱり

array.push((()=>{
〜略〜
〜略〜
〜略〜
return bbb;
})());
のような形になるんですかね…?
2019/02/24(日) 20:17:17.98ID:???
関数の戻り値で配列のpushにする場面が良く分からん
2019/02/24(日) 21:49:09.66ID:???
こんなことしたい意図が超わからん過ぎてどうにもアドバイスしようがない。
2019/02/24(日) 22:02:57.43ID:???
ゲームのイベントなら
2019/02/25(月) 06:42:26.73ID:???
JavaScript版Cocos2d-x かんたんゲーム開発、2015
原題:Learning Cocos2d-JS Game Development

この本の著者、Emanuele Feronato
italian geek and PROgrammer
http://www.emanueleferonato.com/

このイタリア人、最近は、Phaser ばっかり!

他には、Haxe とか
2019/02/25(月) 07:48:47.91ID:???
vs codeでどうやってjavascriptのでバッグをするんでしょうか?
チュート通りにやるのですが、うまくいきません
https://i.imgur.com/wfkEtt0.jpg
2019/02/25(月) 08:05:44.50ID:???
最近の質問、投げっぱなしばかりだけど、全員同じ人なのかな?
2019/02/25(月) 11:14:35.32ID:???
>>107
解決しました
2019/02/25(月) 11:14:52.43ID:???
ゲームエンジンを使わないでゲーム作るメリットはなんですか?
2019/02/25(月) 11:54:30.46ID:???
仕組みの勉強とかじゃね
あと新しい言語学ぶときとかの題材にいい。俺の場合直接数学とか題材にしちゃうと眠くなるので…
2019/02/25(月) 12:11:37.27ID:???
>>108
何が解決?
2019/02/25(月) 12:14:42.42ID:???
食料問題
2019/02/25(月) 12:25:28.92ID:???
>>112
良かったね
もう報告しなくていいよ
114114
垢版 |
2019/02/26(火) 00:21:29.84ID:???
質問したいことがあります。
とても困っています。

どなたか起きてらっしゃる方おられますか?
2019/02/26(火) 00:51:16.93ID:???
はい
2019/02/26(火) 01:06:17.21ID:???
おるで
2019/02/26(火) 01:07:06.16ID:???
寝ました
118114
垢版 |
2019/02/26(火) 01:15:38.08ID:???
ありがとうございます!ちょっと質問テンプレ埋めるのでお待ちください
119114
垢版 |
2019/02/26(火) 01:18:37.30ID:???
【環境】OS/Windows10 Android iOS ブラウザ/ChromeとSafari最新版
【条件】

出勤可能時間を提出する画面を作成している。
終日可、時間指定出勤可、出勤不可、未提出でボタンが切り替わる方式。

【何をしたのか】
各種ボタンが切り替わる機構と時間指定のときのみ
時間を入力できるフォームが生成される条件式を開発

【エラーメッセージ】なし

【期待する結果】デフォルトが終日可、かつ、7日以内の場合、ボタンを切り替えられなくしたい。(終日可のまま変更できないこと)
【サンプルコード】

https://ideone.com/63JYMf


7日以内の操作制御自体はできているのですが
制御を上手くコントロールできません。

是非とも宜しくお願い致します。
2019/02/26(火) 05:33:04.82ID:???
おすすめオンラインエディタ教えてください
2019/02/26(火) 07:00:35.59ID:???
>>119
そういう依頼は他所で有料でやると良いよ
122114
垢版 |
2019/02/26(火) 07:11:33.13ID:???
>>121
わかりました!ありがとうございます。
オススメのサービスなどございますか?
2019/02/26(火) 07:23:54.49ID:???
>>120
ぐぐれ
2019/02/26(火) 10:08:49.89ID:???
>デフォルトが終日可、かつ、7日以内の場合、ボタンを切り替えられなくしたい

このスレでは、その部分のやり方だけを聞いてくれ。
条件など、if 文で書けばよいだけ

ポイントに関係ない部分のソースコードが多いほど、回答者の理解コストが高くなる。
特殊な事が多いから、業務の仕様を理解するのが、最も困る。
だから質問を、業務の仕様から切り離して、例題を作って質問してくれ

ボタンを切り替えられないようにするには、disabled 属性とかだろ?
「html button 押せない」で検索!
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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