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/
探検
+ JavaScript の質問用スレッド vol.138 +
レス数が1000を超えています。これ以上書き込みはできません。
2019/02/17(日) 02:12:57.04ID:???
2019/02/17(日) 02:13:12.65ID:???
■テンプレ案
https://fiddle.jshell.net/6ksf2087/show/light/
■参考URL
ダウンロード、CDN
http://jquery.com/download/
ブラウザサポート
http://jquery.com/browser-support/
jQuery UI
http://jqueryui.com/
jQuery UI ダウンロ−ド
http://jqueryui.com/download/
リファレンス等
http://alphasis.info/
http://www.jquerystudy.info/
http://js.studio-kingdom.com/
【翻訳まとめ】jQuery 3.0 アップグレードガイド - Qiita
http://qiita.com/fmy/items/345a264a1cf2e2a73f62
https://fiddle.jshell.net/6ksf2087/show/light/
■参考URL
ダウンロード、CDN
http://jquery.com/download/
ブラウザサポート
http://jquery.com/browser-support/
jQuery UI
http://jqueryui.com/
jQuery UI ダウンロ−ド
http://jqueryui.com/download/
リファレンス等
http://alphasis.info/
http://www.jquerystudy.info/
http://js.studio-kingdom.com/
【翻訳まとめ】jQuery 3.0 アップグレードガイド - Qiita
http://qiita.com/fmy/items/345a264a1cf2e2a73f62
2019/02/17(日) 02:13:28.21ID:???
■JavaScript主要ライブラリ・フレームワーク
jQuery
http://jquery.com/
jQuery UI
http://jqueryui.com/
jQuery Mobile
http://jquerymobile.com/
Lo-Dash
https://lodash.com/
Backbone.js
http://backbonejs.org/
Underscore.js
http://underscorejs.org/
AngularJS
https://angularjs.org/
Knockoutjs
http://knockoutjs.com/
RequireJS
http://requirejs.org/
D3.js
http://d3js.org/
threejs
http://threejs.org/
jQuery
http://jquery.com/
jQuery UI
http://jqueryui.com/
jQuery Mobile
http://jquerymobile.com/
Lo-Dash
https://lodash.com/
Backbone.js
http://backbonejs.org/
Underscore.js
http://underscorejs.org/
AngularJS
https://angularjs.org/
Knockoutjs
http://knockoutjs.com/
RequireJS
http://requirejs.org/
D3.js
http://d3js.org/
threejs
http://threejs.org/
2019/02/17(日) 02:13:44.56ID:???
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
2019/02/17(日) 02:14:34.72ID:???
2019/02/17(日) 02:15:54.20ID:???
前スレまとめ
> カンマ演算子につき、
> A, Bと書くとき、Aに期待できるのは副作用のみである。
a = 1, b = a のような書き方ができるので間違い
単に A, B で Aの部分で再代入なしの代入(束縛)ができることに気づいてないマヌケってだけ
> カンマ演算子につき、
> A, Bと書くとき、Aに期待できるのは副作用のみである。
a = 1, b = a のような書き方ができるので間違い
単に A, B で Aの部分で再代入なしの代入(束縛)ができることに気づいてないマヌケってだけ
2019/02/17(日) 03:18:40.96ID:???
だよな!こうすればいいんだよな!
[1,2,3].map(v => (const w = v + 2, w * w))
あ、あれ?(TдT)
[1,2,3].map(v => (const w = v + 2, w * w))
あ、あれ?(TдT)
2019/02/17(日) 03:20:58.84ID:???
まとめ
カンマ演算子につき、
A, Bと書くとき、Aに期待できるのは副作用のみである。
カンマ演算子が取れるのは式(Expression)のみである。
変数宣言(VariableStatement)は宣言であって式ではない。
すなわち、
const a = 1, b = 2
は変数宣言であり、
またこのカンマはカンマ演算子ではない。
[1,2,3].map(v => (v += 2, v * v));
のv += 2は仮引数vを書き換える副作用である。
カンマ演算子は式(Expression)しか取れないので、副作用なく
[1,2,3].map(v => (const w = v + 2, w * w))
などと書くことはできない。
なぜならconst w = v + 2は変数宣言(Statement)であって式(Expression)ではないからである。
カンマ演算子を使わず
[1,2,3].map(v => {
const w = v + 2;
return w * w;
})
と書いたときはどこにも副作用がない。カンマ演算子もどこにもない。
カンマ演算子につき、
A, Bと書くとき、Aに期待できるのは副作用のみである。
カンマ演算子が取れるのは式(Expression)のみである。
変数宣言(VariableStatement)は宣言であって式ではない。
すなわち、
const a = 1, b = 2
は変数宣言であり、
またこのカンマはカンマ演算子ではない。
[1,2,3].map(v => (v += 2, v * v));
のv += 2は仮引数vを書き換える副作用である。
カンマ演算子は式(Expression)しか取れないので、副作用なく
[1,2,3].map(v => (const w = v + 2, w * w))
などと書くことはできない。
なぜならconst w = v + 2は変数宣言(Statement)であって式(Expression)ではないからである。
カンマ演算子を使わず
[1,2,3].map(v => {
const w = v + 2;
return w * w;
})
と書いたときはどこにも副作用がない。カンマ演算子もどこにもない。
2019/02/17(日) 03:22:36.35ID:???
2019/02/17(日) 03:30:39.19ID:???
>>9
恥ずかしいからやめて…
恥ずかしいからやめて…
2019/02/17(日) 03:39:12.16ID:???
テンプレだけどさ、
jQueryはいいとしてさすがに今どきjQuery UIはなくね?
jQueryはいいとしてさすがに今どきjQuery UIはなくね?
2019/02/17(日) 03:40:32.49ID:???
Backbone.js、Knockoutjsも。
2019/02/17(日) 04:00:32.14ID:???
jQuery偏重テンプレがあからさますぎ
2019/02/17(日) 04:12:03.83ID:???
>>6-8
面白いジョークをありがとう。朝からみんな笑ってスレに活気が生まれたよ。
面白いジョークをありがとう。朝からみんな笑ってスレに活気が生まれたよ。
2019/02/17(日) 12:46:19.32ID:???
>>11
>1と>4だけでいいかもね
>1と>4だけでいいかもね
2019/02/17(日) 12:48:19.46ID:???
というか質問テンプレートを使った質問を
ここしばらく見たことがないなw
ここしばらく見たことがないなw
2019/02/17(日) 13:00:12.21ID:???
2019/02/17(日) 16:43:30.99ID:???
コールバック関数を登録する処理などで、
登録されたコールバックの引数が どんなもんかを
チェックする方法ってありますか?
たとえば、引数に int ひとつだけの関数が登録されることを前提にしてるのに
引数が文字列な関数を登録したら、登録時にエラーにしたいんだ
登録されたコールバックの引数が どんなもんかを
チェックする方法ってありますか?
たとえば、引数に int ひとつだけの関数が登録されることを前提にしてるのに
引数が文字列な関数を登録したら、登録時にエラーにしたいんだ
2019/02/17(日) 16:55:24.53ID:???
typescript使うかflow使うか、変換挟まないで素のjsのままやりたいならbabelparser
2019/02/17(日) 16:56:53.21ID:???
あbabelparserはこの要件に合わないな。忘れてくれ
2019/02/17(日) 17:00:25.52ID:???
>>18
コールバックを呼び出すのがあなたが作成している関数ならtypeof演算子で調べられる
コールバックを呼び出すのがあなたが作成している関数ならtypeof演算子で調べられる
2019/02/17(日) 17:41:48.66ID:???
2019/02/17(日) 18:09:43.19ID:???
2019/02/17(日) 18:14:15.83ID:???
function sample (o, f) {
if (typeof o !== 'object') {
throw new TypeError;
}
f(o);
}
function samplecb (obj) {
obj.newprop = 'new!';
}
sample(null, samplecb);
なるほど。
if (typeof o !== 'object') {
throw new TypeError;
}
f(o);
}
function samplecb (obj) {
obj.newprop = 'new!';
}
sample(null, samplecb);
なるほど。
2019/02/17(日) 18:36:36.73ID:???
26Name_Not_Found
2019/02/18(月) 18:01:06.31ID:E4CBfg7H マンガで分かるjavascriptプログラミング講座
ttps://crocro.com/write/manga_javascript/wiki.cgiというサイトを見て分かりやすいと思ったんですが、ちょっと昔のものをやっても大丈夫なんですか?
また、他に初心者にオススメの学習サイトってありませんか?
Progateは分かりやすく初級編は一周しましたが、クレジットカード持ってなく会員登録できないのでやめました。
ドットインストールはテキストエディタが白くて目が疲れて集中出来ないのでやめました。
なので、なるべく無料で初心者向けの学習サイトがあったら教えてください。お願いします...
ttps://crocro.com/write/manga_javascript/wiki.cgiというサイトを見て分かりやすいと思ったんですが、ちょっと昔のものをやっても大丈夫なんですか?
また、他に初心者にオススメの学習サイトってありませんか?
Progateは分かりやすく初級編は一周しましたが、クレジットカード持ってなく会員登録できないのでやめました。
ドットインストールはテキストエディタが白くて目が疲れて集中出来ないのでやめました。
なので、なるべく無料で初心者向けの学習サイトがあったら教えてください。お願いします...
2019/02/18(月) 19:29:51.47ID:???
>>26
そのサイトは確度に問題があると思うがなあ
そのサイトは確度に問題があると思うがなあ
2019/02/18(月) 19:41:40.89ID:???
2019/02/19(火) 09:23:58.72ID:???
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みたいな学習ノートとしての機能もしっかりついてるような
環境が欲しいんだけど。
FireFoxのやつとか使うのが一般的?
できればpythonのjupyter notebookみたいな学習ノートとしての機能もしっかりついてるような
環境が欲しいんだけど。
2019/02/19(火) 19:24:48.69ID:???
Chrome以上の環境なんてあるんか
2019/02/19(火) 19:25:31.13ID:???
htmlファイルにjs書いてchromeで開いたらソレでいいと思うけど
テキストエディタはatom辺りでええやろ
テキストエディタはatom辺りでええやろ
2019/02/19(火) 19:27:59.99ID:???
ノート機能が欲しいならjupyter notebookにjsカーネル入れるだけだろ。
とっくにpython専用じゃないんだがあれ。
とっくに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:???
41Name_Not_Found
2019/02/19(火) 22:28:44.70ID:q40YB38R jupyter notebookでできるし、jupyterlabでもできるんだ...
知らなかった!サンクス
ちなみにnode.jsのnodebrewとnpmは、pythonだとpyenvとpipに相当するという理解でOK?
知らなかった!サンクス
ちなみに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 } ) );
コマンドプロンプトで、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
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だけで出来る範囲というのはどこまですか?
また、javascriptだけで出来る範囲というのはどこまですか?
2019/02/20(水) 18:29:49.56ID:???
>>45
フレームワーク= ライブラリ群
エンジン=ライブラリ
unityぐらいになると、独自のフレームワークになったりする
まぁおsれらはさておき、超絶おざっぱに言うと
>、javascriptだけで出来る範囲と
あったりなかったりする
ボタンを配置するのがjs
セーブデータを設定するのがphp
フレームワーク= ライブラリ群
エンジン=ライブラリ
unityぐらいになると、独自のフレームワークになったりする
まぁおsれらはさておき、超絶おざっぱに言うと
>、javascriptだけで出来る範囲と
あったりなかったりする
ボタンを配置するのがjs
セーブデータを設定するのがphp
2019/02/20(水) 20:15:49.10ID:???
wikipediaより
> ライブラリ(英: Library)は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。
ライブラリ群は、汎用性の高い複数のプログラムを、ひとまとまりにしたものを、ひとまとまりにしたものである???
まあ「フレームワーク=ライブラリ群」という説明が間違ってるから
意味不明になるんだけどねw
> ライブラリ(英: 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書きました!
申し訳ない、飲みながら適当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なりを含めた形で開くのはローカルでは無理なのでしょうか?
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/
へぇ、知らなかった
その辺は限界かと思うので、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:///は通信を発生させないから
file:///は通信を発生させないから
2019/02/21(木) 08:48:49.50ID:???
vs codeなんですが nodejsとどうやって関連付けするか教えてください
add configurationの部分に候補が出てこないです
node jsはインストールしてます
add configurationの部分に候補が出てこないです
node jsはインストールしてます
2019/02/21(木) 08:56:26.44ID:???
2019/02/21(木) 09:57:14.66ID:???
連想配列のキーに使えない文字ってありますか?
また、連想配列のキーの長さの最大値って何文字ですか?
ちょっと重複のカウントとかに連想配列を使いたいので知りたいです。
よろしくお願いします。
また、連想配列のキーの長さの最大値って何文字ですか?
ちょっと重複のカウントとかに連想配列を使いたいので知りたいです。
よろしくお願いします。
2019/02/21(木) 10:55:03.20ID:???
> 重複のカウントとか
どんな要件か教えろ
そんなくだらないこと考える必要のない素晴らしい実装を見せてやんよシュッシュッ
どんな要件か教えろ
そんなくだらないこと考える必要のない素晴らしい実装を見せてやんよシュッシュッ
2019/02/21(木) 12:48:18.44ID:???
>>58
[[Prototype]]をnullにしたなら、文字列リテラルの仕様に準ずる
[[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() とかかな?
たまたま、__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( 変数名 ); と書かなくてもよい!
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:???
2019/02/22(金) 08:45:47.99ID:???
2019/02/22(金) 12:05:23.48ID:???
オンラインのエディタでもいいの?
VS codeの設定がわからん
VS codeの設定がわからん
2019/02/22(金) 18:44:08.29ID:???
2019/02/22(金) 23:36:56.20ID:???
たまたま__proto__というキーが来ることなんてクライアントサイドで考える必要はまったくない
そんなことを言い出したらたまたま1GBのキーが来ることなども考えないといけない
隕石が怖いとかそんなレベルな話は止めよう
そんなことを言い出したらたまたま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:???
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;
オブジェクトを連想配列に使うと、
たまたま、__proto__ という単語を登録しようとして、ハマる
var obj = { };
obj[ '__proto__' ] = 1;
2019/02/23(土) 11:59:59.17ID:???
79Name_Not_Found
2019/02/23(土) 15:04:25.52ID:HHC5SAPM jQueryでメソッドに引数として渡したいものがちょっと複雑なとき、即時関数で
$('#aaa').text((()=>{
〜略〜
〜略〜
〜略〜
return bbb;
})());
とするのがよいのでしょうか?
なんかずいぶん括弧が多いですが…
即時関数を使わずおとなしく外で
〜略〜
〜略〜
const bbb = 〜略〜;
$('#aaa').text(bbb);
とする場合との使い分けがどうもわからず…
前者(即時関数)のほうが、まとまった一連の処理って感じでわかりやすい&変数名が重複しづらいので良さげな気もしますが
$('#aaa').text((()=>{
〜略〜
〜略〜
〜略〜
return bbb;
})());
とするのがよいのでしょうか?
なんかずいぶん括弧が多いですが…
即時関数を使わずおとなしく外で
〜略〜
〜略〜
const bbb = 〜略〜;
$('#aaa').text(bbb);
とする場合との使い分けがどうもわからず…
前者(即時関数)のほうが、まとまった一連の処理って感じでわかりやすい&変数名が重複しづらいので良さげな気もしますが
2019/02/23(土) 17:34:48.52ID:???
2019/02/23(土) 17:46:31.56ID:???
へー1.4から関数も受けつけてくれるようになってたんだ?
http://js.studio-kingdom.com/jquery/manipulation/text
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って表示されないんでしょうか
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:???
2019/02/23(土) 21:44:06.76ID:???
2019/02/23(土) 21:53:11.02ID:???
質問です
sinが-cosが-だったらπ〜2πの角度で返してくれる関数って存在しますか?
asinとacosが別々なのでどっちも-π/2〜π/2または0〜πで返ってしまうので
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が返る
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:???
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人遊び用にすればいい
1人遊び用にすればいい
2019/02/24(日) 13:36:40.96ID:???
10179
2019/02/24(日) 20:02:21.10ID:Zws/aviX >>80
あー関数を渡せば勝手に実行してくれるんですね、そういえばやったことあったような
でもjQueryでなく例えば配列へのpushとかだとエラーになるので、そういったときはやっぱり
array.push((()=>{
〜略〜
〜略〜
〜略〜
return bbb;
})());
のような形になるんですかね…?
あー関数を渡せば勝手に実行してくれるんですね、そういえばやったことあったような
でも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 とか
原題:Learning Cocos2d-JS Game Development
この本の著者、Emanuele Feronato
italian geek and PROgrammer
http://www.emanueleferonato.com/
このイタリア人、最近は、Phaser ばっかり!
他には、Haxe とか
2019/02/25(月) 07:48:47.91ID:???
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:???
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日以内の操作制御自体はできているのですが
制御を上手くコントロールできません。
是非とも宜しくお願い致します。
【条件】
出勤可能時間を提出する画面を作成している。
終日可、時間指定出勤可、出勤不可、未提出でボタンが切り替わる方式。
【何をしたのか】
各種ボタンが切り替わる機構と時間指定のときのみ
時間を入力できるフォームが生成される条件式を開発
【エラーメッセージ】なし
【期待する結果】デフォルトが終日可、かつ、7日以内の場合、ボタンを切り替えられなくしたい。(終日可のまま変更できないこと)
【サンプルコード】
https://ideone.com/63JYMf
7日以内の操作制御自体はできているのですが
制御を上手くコントロールできません。
是非とも宜しくお願い致します。
2019/02/26(火) 05:33:04.82ID:???
おすすめオンラインエディタ教えてください
2019/02/26(火) 07:00:35.59ID:???
>>119
そういう依頼は他所で有料でやると良いよ
そういう依頼は他所で有料でやると良いよ
2019/02/26(火) 07:23:54.49ID:???
>>120
ぐぐれ
ぐぐれ
2019/02/26(火) 10:08:49.89ID:???
>デフォルトが終日可、かつ、7日以内の場合、ボタンを切り替えられなくしたい
このスレでは、その部分のやり方だけを聞いてくれ。
条件など、if 文で書けばよいだけ
ポイントに関係ない部分のソースコードが多いほど、回答者の理解コストが高くなる。
特殊な事が多いから、業務の仕様を理解するのが、最も困る。
だから質問を、業務の仕様から切り離して、例題を作って質問してくれ
ボタンを切り替えられないようにするには、disabled 属性とかだろ?
「html button 押せない」で検索!
このスレでは、その部分のやり方だけを聞いてくれ。
条件など、if 文で書けばよいだけ
ポイントに関係ない部分のソースコードが多いほど、回答者の理解コストが高くなる。
特殊な事が多いから、業務の仕様を理解するのが、最も困る。
だから質問を、業務の仕様から切り離して、例題を作って質問してくれ
ボタンを切り替えられないようにするには、disabled 属性とかだろ?
「html button 押せない」で検索!
2019/02/26(火) 10:49:32.77ID:???
画像のキャラクターを生のjavascirptだけで移動させることはできますか?
フレームワーク使わずにです
フレームワーク使わずにです
2019/02/26(火) 10:51:13.78ID:???
2019/02/26(火) 11:23:32.44ID:???
2dのスプライトですね
パラパラ漫画のように、スプライトを切り替えながらアニメーションさせていく感じです
勉強のためにフレームワークなしでやってるんですが
パラパラ漫画のように、スプライトを切り替えながらアニメーションさせていく感じです
勉強のためにフレームワークなしでやってるんですが
2019/02/26(火) 11:51:50.82ID:???
>>125
個人的な意見だけど、そここそ逆にライブラリに頼るべき場所と思うが・・・
・ダントツで手っ取り早いのはアニメーションgifを置くだけ
・軽いのはcssスプライトで画像を切替える方法。移動はtopとleftを増減させる
https://qiita.com/takumifukasawa/items/7463d9fa48aced1cf3cb
・画像の差し替えが楽なのはimgを複数用意し、予め全て読み込ませておいて、display:noneなどで切り替えつつtop・leftで移動
か?
アニメーションはあっという間に重くなる
動いてハイ終わり、なら何とでも鳴るけど、すぐにパフォーマンスを考える必要が出てくる
できるだけcss使う方法を考えてみて
個人的な意見だけど、そここそ逆にライブラリに頼るべき場所と思うが・・・
・ダントツで手っ取り早いのはアニメーションgifを置くだけ
・軽いのはcssスプライトで画像を切替える方法。移動はtopとleftを増減させる
https://qiita.com/takumifukasawa/items/7463d9fa48aced1cf3cb
・画像の差し替えが楽なのはimgを複数用意し、予め全て読み込ませておいて、display:noneなどで切り替えつつtop・leftで移動
か?
アニメーションはあっという間に重くなる
動いてハイ終わり、なら何とでも鳴るけど、すぐにパフォーマンスを考える必要が出てくる
できるだけcss使う方法を考えてみて
2019/02/26(火) 17:40:56.14ID:???
↑cssかフレームワークかなんですね、、、
フレームワークってどれがいいんですか?
古いの多くて
フレームワークってどれがいいんですか?
古いの多くて
2019/02/26(火) 21:57:53.04ID:???
SVGアニメにすればJSからコントロールできる
2019/02/27(水) 03:22:56.18ID:???
>>129
jquery不要の奴が良いと思うけど、
やりたいことが変なので色々と探す事になると思う
https://grow-group.jp/archives/1214/
>>130
その手があったか
ただ俺には良く分からん
jquery不要の奴が良いと思うけど、
やりたいことが変なので色々と探す事になると思う
https://grow-group.jp/archives/1214/
>>130
その手があったか
ただ俺には良く分からん
132Name_Not_Found
2019/02/27(水) 05:28:07.90ID:C+9QUj8L javascript初心者です
開発環境は秀丸エディタとchromeで十分でしょうか?
開発環境は秀丸エディタとchromeで十分でしょうか?
2019/02/27(水) 07:09:06.15ID:???
秀丸じゃ無理
2019/02/27(水) 09:11:16.25ID:???
>>132
VSCodeやSublimeTextのがよい。
VSCodeやSublimeTextのがよい。
135132
2019/02/27(水) 09:22:43.38ID:C+9QUj8L2019/02/27(水) 09:51:05.31ID:???
>>136
死ね
死ね
2019/02/27(水) 12:23:13.23ID:???
arcのエンドアングル引数がよくわからないのですが、どういう仕組みかわかりやすい図はないでしょうか?
2019/02/28(木) 06:53:05.98ID:???
描画してみれば一発で分かるでしょ
エンド アングル なんだから
エンド アングル なんだから
2019/02/28(木) 12:24:10.30ID:???
phaserってxampp必須なんですか?
ブラウザでも動作確認できませんか?
ブラウザでも動作確認できませんか?
2019/02/28(木) 12:43:22.44ID:???
2019/02/28(木) 17:13:39.46ID:???
↑いえ、サーバにうpする意味ってなんなのかなと思って
RPGなどだとPHPなどを使うことになるからでしょうか?
RPGなどだとPHPなどを使うことになるからでしょうか?
2019/02/28(木) 17:41:45.45ID:???
多分同一生成元ポリシーに引っかかるんじゃない
ローカルだとそれでCanvasに画像を読み込めないとかあるから
ローカルだとそれでCanvasに画像を読み込めないとかあるから
2019/02/28(木) 17:46:50.64ID:???
初めて知った概念でした
よくわからないけど、サーバを分けるってことですよね
ローカルもサーバだし
よくわからないけど、サーバを分けるってことですよね
ローカルもサーバだし
2019/02/28(木) 18:46:52.13ID:???
xamppは全面的には信頼できないって事だけ覚えておけばたいていの場合は大丈夫
2019/03/01(金) 05:59:50.12ID:???
はい
2019/03/01(金) 06:00:26.79ID:???
javascriptのゲームのフレームワークで資料の多いものはなんですか?
phaserは英語はありますが、日本語はほとんどないです
環境設定もまともにできない
phaserは英語はありますが、日本語はほとんどないです
環境設定もまともにできない
2019/03/01(金) 06:18:38.59ID:???
2019/03/01(金) 06:27:27.69ID:???
2019/03/01(金) 07:01:29.37ID:???
xamppってhtdocs配下ならどこにおいてもいいんですか?
それでアップロードされた状態になっているんでしょうか?
それでアップロードされた状態になっているんでしょうか?
2019/03/01(金) 07:14:53.47ID:???
chromeなら--allow-file-access -from-filesするだけじゃねぇの
2019/03/01(金) 07:29:08.47ID:???
xamppよりシンプルなものあります?
2019/03/01(金) 07:29:58.82ID:???
apache
2019/03/01(金) 08:06:58.41ID:???
2019/03/01(金) 09:05:32.87ID:???
RPGに限定する必要はないんじゃない?
何も書いてないということは、何でもいいってことだ
何も書いてないということは、何でもいいってことだ
2019/03/01(金) 09:05:45.32ID:???
関係ないけどそれの一般ゲーム機向けのRPGツクールMV Trinityはバグ・不具合祭りで大炎上の後まだ延焼中だなワロタw
【Switch/PS4/XboxOne】RPGツクールMV Trinity★part19
https://rosie.5ch.net/test/read.cgi/gamerpg/1550321689/
●バグ・不具合
あらゆる場面での読み込みがフリーズと見紛うほど長い
(マップの大きさ・データベースの項目数などによって5〜10秒以上)
他、不具合の種類が多いので修正されるまで別項参照
【Switch/PS4/XboxOne】RPGツクールMV Trinity★part19
https://rosie.5ch.net/test/read.cgi/gamerpg/1550321689/
●バグ・不具合
あらゆる場面での読み込みがフリーズと見紛うほど長い
(マップの大きさ・データベースの項目数などによって5〜10秒以上)
他、不具合の種類が多いので修正されるまで別項参照
2019/03/01(金) 10:11:30.63ID:???
>>152
MAMP
MAMP
2019/03/01(金) 12:38:46.82ID:???
xamppの使い方やっと理解しました
phaserがんばります
英語しかないけど
phaserがんばります
英語しかないけど
2019/03/01(金) 16:42:23.82ID:???
>>140-144
実行環境がブラウザだけだと、
CORS(オリジン間リソース共有、Cross-Origin Resource Sharing)で、エラーになる事が多い
そういう場合に、自分のPC にサーバーを立てて、サーバー経由にして回避する。
開発中は、Ruby のSinatra(Webrick)などの遅いサーバーでも良い。
JavaScript のNode.js でも良いけど、Rubyほど簡単じゃないから
Ruby なら、PowerShell から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する
ruby -run -e httpd . -p 8080
そのフォルダに、index.html があれば、
何も考えなくても、これでブラウザからアクセスできる
http://localhost:8080
実行環境がブラウザだけだと、
CORS(オリジン間リソース共有、Cross-Origin Resource Sharing)で、エラーになる事が多い
そういう場合に、自分のPC にサーバーを立てて、サーバー経由にして回避する。
開発中は、Ruby のSinatra(Webrick)などの遅いサーバーでも良い。
JavaScript のNode.js でも良いけど、Rubyほど簡単じゃないから
Ruby なら、PowerShell から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する
ruby -run -e httpd . -p 8080
そのフォルダに、index.html があれば、
何も考えなくても、これでブラウザからアクセスできる
http://localhost:8080
2019/03/01(金) 16:58:40.11ID:???
>>159
クソ言語の紹介やめろ
クソ言語の紹介やめろ
2019/03/01(金) 18:05:05.36ID:???
nodeだと
npx serve .
npx serve .
2019/03/01(金) 18:06:36.76ID:???
2019/03/01(金) 18:10:05.23ID:???
npxはワンタイム実行だから常用するなら
npm i -g serve
でインストールしといた方がいいな
これでどこでも
serve .
でカレントディレクトリがhttp://localhost:8080でアクセスできる
npm i -g serve
でインストールしといた方がいいな
これでどこでも
serve .
でカレントディレクトリがhttp://localhost:8080でアクセスできる
164159
2019/03/01(金) 18:33:54.37ID:??? コマンドプロンプトで、where npx
C:\Program Files\nodejs\npx
C:\Program Files\nodejs\npx.cmd
node.js のインストールで、そういうコマンドも入っていたのか
C:\Program Files\nodejs\npx
C:\Program Files\nodejs\npx.cmd
node.js のインストールで、そういうコマンドも入っていたのか
2019/03/01(金) 19:03:09.98ID:???
ruby使いがなにか書く度に良い情報が上がるようになってて草
166159
2019/03/01(金) 20:28:34.10ID:??? そりゃ漏れは、10言語以上やってるから。
埋め込みSQL, PLC, HDL、電気電子回路とか、ゲームから産業機械まで、何でも作るから
この間、新幹線のチケット予約で、バグったとか、
漏れも大昔、それをプログラミングしてたし、
漏れが見れば、原因がわかるんだがなw
埋め込みSQL, PLC, HDL、電気電子回路とか、ゲームから産業機械まで、何でも作るから
この間、新幹線のチケット予約で、バグったとか、
漏れも大昔、それをプログラミングしてたし、
漏れが見れば、原因がわかるんだがなw
2019/03/01(金) 20:48:59.64ID:???
2019/03/01(金) 20:50:20.46ID:???
>>166
ほーんw
で、改行コードは原因分かったのか?www
お前がruby『初心者』スレで『質問』してたwwwww
https://mevius.5ch.net/test/read.cgi/tech/1545421414/166
ほーんw
で、改行コードは原因分かったのか?www
お前がruby『初心者』スレで『質問』してたwwwww
https://mevius.5ch.net/test/read.cgi/tech/1545421414/166
2019/03/01(金) 20:57:06.52ID:???
rubyキチガイにエサを与えないで下さい
住人は迷惑してます
住人は迷惑してます
2019/03/01(金) 22:40:00.68ID:???
jQueryでCSSのメディアクエリを書き換える方法はありますか?
例えばCSSで
@media only screen and (max-width: 768px)
となっている箇所のmax-widthの値をjQueryで書き換える方法はありますか?
例えばCSSで
@media only screen and (max-width: 768px)
となっている箇所のmax-widthの値をjQueryで書き換える方法はありますか?
2019/03/01(金) 23:02:41.96ID:???
2019/03/02(土) 07:00:01.64ID:???
>>139
startangle0でendangleは360で円だと思うんですが、endangle350にしたら少し欠けた円になるかと思っていました
しかし結果が違いします
コレラはどういう意味なんでしょうか
startangle0でendangleは360で円だと思うんですが、endangle350にしたら少し欠けた円になるかと思っていました
しかし結果が違いします
コレラはどういう意味なんでしょうか
2019/03/02(土) 07:18:30.28ID:???
単位はラジアン
2019/03/02(土) 10:48:05.55ID:???
ラジアンですね 調べます
2019/03/02(土) 11:36:51.40ID:???
2019/03/02(土) 12:03:15.29ID:???
僕ホイミン悪いスライムじゃないよ
2019/03/02(土) 12:04:14.24ID:???
2019/03/02(土) 12:39:15.78ID:???
ほんとにそうならTypeScriptは存在しない
2019/03/02(土) 13:21:12.68ID:???
2019/03/02(土) 13:22:10.26ID:???
javascriptでゲーム作るメリットってなんですか?
steamにうpできるんですか?
steamにうpできるんですか?
2019/03/02(土) 14:03:48.59ID:???
2019/03/02(土) 15:39:28.83ID:???
>>180
・マルチプラットフォームへの展開
・支配的なストア(高額なロイヤリティ、コンテンツ制限)からの脱却
・プレイ前(ダウンロード、インストール)の心理的障壁の緩和
ガワネイティブにすりゃsteamもあるだろうけどあんまメリット感ないな
・マルチプラットフォームへの展開
・支配的なストア(高額なロイヤリティ、コンテンツ制限)からの脱却
・プレイ前(ダウンロード、インストール)の心理的障壁の緩和
ガワネイティブにすりゃsteamもあるだろうけどあんまメリット感ないな
2019/03/02(土) 16:22:39.59ID:???
>>181
誰もプレイしないとはなんのことですか?
誰もプレイしないとはなんのことですか?
2019/03/02(土) 16:27:14.13ID:???
jsで作ったブラゲはチート対策が大変
2019/03/02(土) 16:53:37.41ID:???
バックエンドがjsじゃいけないんですか?
2019/03/02(土) 16:57:14.55ID:???
そういうのはjsとは言わずnodeと言う
2019/03/02(土) 17:10:54.80ID:???
バックエンドなら別にいいよ
ただ、あんまりゲームには向いてなかった気がする
理由は忘れた
ただ、あんまりゲームには向いてなかった気がする
理由は忘れた
2019/03/02(土) 19:14:33.14ID:???
phaserのインテリセンスって使えないんでしょうか
海外のフォーラムで質問してきたんですが、できない
海外のフォーラムで質問してきたんですが、できない
2019/03/02(土) 20:23:32.29ID:???
音楽とか、各プラットフォーム毎に、変換するのは大変だろ
その点、ブラウザゲームではブラウザが実行環境だから、楽
その点、ブラウザゲームではブラウザが実行環境だから、楽
2019/03/02(土) 20:43:48.66ID:???
191Name_Not_Found
2019/03/02(土) 21:34:12.90ID:DnKk4kgP <option>の個数が都度変動するため、<select>タグの中身が定まっていない場合
例えば<select>タグの中の3番目にある<option>を選択したいときって
どうすればいいですか?
<select>のvalueでvalueの値を直接指定する方法しかわからなくて
例えば<select>タグの中の3番目にある<option>を選択したいときって
どうすればいいですか?
<select>のvalueでvalueの値を直接指定する方法しかわからなくて
2019/03/02(土) 22:02:08.46ID:???
>>191
<select id='s'>
<option>First</option>
<option>Second</option>
<option>Third</option>
</select>
const select = document.getElementById('s'); console.log(select.options[2].value)
<select id='s'>
<option>First</option>
<option>Second</option>
<option>Third</option>
</select>
const select = document.getElementById('s'); console.log(select.options[2].value)
2019/03/02(土) 22:03:34.18ID:???
>>191
querySelectorでもjQueryでも'select > option:nth-of-type(3)'で取れなかったっけ
querySelectorでもjQueryでも'select > option:nth-of-type(3)'で取れなかったっけ
2019/03/03(日) 00:33:39.31ID:???
jsがブラウザでキャッシュされずにページ開くと毎回ロードされるんだけどなんでだろ?
・WebPackでビルドしたjsファイルのみキャッシュされない。他のビルドしないファイルはキャッシュされる
・scriptタグでjsファイル指定してるが、ファイル名はbundle.js?v=1.0.0みたいにパラメータも固定のままにしてる
・ChromeDeveloperToolの設定でキャッシュ無効化にはしていない(もし有効なら全ファイルがキャッシュされないはず)
あと考えられることはなんだろう?
・WebPackでビルドしたjsファイルのみキャッシュされない。他のビルドしないファイルはキャッシュされる
・scriptタグでjsファイル指定してるが、ファイル名はbundle.js?v=1.0.0みたいにパラメータも固定のままにしてる
・ChromeDeveloperToolの設定でキャッシュ無効化にはしていない(もし有効なら全ファイルがキャッシュされないはず)
あと考えられることはなんだろう?
195191
2019/03/03(日) 01:24:45.99ID:???2019/03/03(日) 04:13:18.30ID:???
vs codeがメモリバカ食いなのですが、いいエディタ教えてください
2019/03/03(日) 04:50:58.55ID:???
メモリを増設するかPCを買い換えましょう
いや、割とガチで
いや、割とガチで
2019/03/03(日) 05:42:04.82ID:???
javasriptでゲームを作るのは良くないのですか?
何使ったらいいですか
ちょっとしたパズルです
フレームワークも日本語がないし
>>.197
8gbです
何使ったらいいですか
ちょっとしたパズルです
フレームワークも日本語がないし
>>.197
8gbです
2019/03/03(日) 08:10:58.21ID:???
2019/03/03(日) 11:22:48.27ID:???
英語だけだとやっぱり辛いなって
2019/03/03(日) 11:41:30.06ID:???
ならもう答え出てるじゃん
このスレでくだ巻く前にゲ製板でおすすめツール教えてもらった方が遥かに有意義
このスレでくだ巻く前にゲ製板でおすすめツール教えてもらった方が遥かに有意義
2019/03/03(日) 11:42:07.54ID:???
まぁ分かる
日本語じゃないと面白くないんだよな
変な孤独感・疎外感みたいなものを感じる
とりあえずパーって作ってみたら?
個人的にはc#とunityの方が100倍楽と思うけど、
パズルゲームの場合重要なのはアルゴリズムだから言語なんて何でも良いだろう
日本語じゃないと面白くないんだよな
変な孤独感・疎外感みたいなものを感じる
とりあえずパーって作ってみたら?
個人的にはc#とunityの方が100倍楽と思うけど、
パズルゲームの場合重要なのはアルゴリズムだから言語なんて何でも良いだろう
2019/03/03(日) 11:42:46.32ID:???
そういやそんな板もあったな
2019/03/03(日) 13:00:43.08ID:???
>>194
すまんけどこれわかる人おる?
すまんけどこれわかる人おる?
2019/03/03(日) 14:36:49.63ID:???
>>204
キャッシュされてるかどうかってどう判断してるの
キャッシュされてるかどうかってどう判断してるの
2019/03/03(日) 14:52:43.08ID:???
>>204
いるよ
いるよ
2019/03/03(日) 18:02:42.21ID:???
2019/03/03(日) 18:22:57.26ID:???
レスポンスヘッダはどうなってるの?
正直このスレで聞く案件なのか疑わしいんだけど
正直このスレで聞く案件なのか疑わしいんだけど
2019/03/03(日) 18:24:27.38ID:???
パラメータを一回外して試してみて
2019/03/03(日) 18:36:09.44ID:???
2019/03/03(日) 18:37:26.38ID:???
>>209
パラメータ外してリロード後に数回リロードしたけどキャッシュされないっす!
パラメータ外してリロード後に数回リロードしたけどキャッシュされないっす!
2019/03/03(日) 18:50:12.54ID:???
仮想domやモジュールバンドラー出てきて
htmlってもはや1つのjavascriptを読み込むだけのものになってきてるよね
htmlってもはや1つのjavascriptを読み込むだけのものになってきてるよね
2019/03/03(日) 19:02:35.55ID:???
この数年寝てたの?
2019/03/03(日) 19:04:05.88ID:???
キャッシュされない js
で検索したら
キャッシュさせない js
の結果しか出て来ない
で検索したら
キャッシュさせない js
の結果しか出て来ない
2019/03/03(日) 19:25:18.75ID:???
2019/03/03(日) 19:38:47.37ID:???
2019/03/03(日) 19:39:03.30ID:???
>>214
そうなんだよw
そうなんだよw
2019/03/03(日) 19:45:31.02ID:???
>>213
あ?
あ?
219Name_Not_Found
2019/03/03(日) 22:43:25.81ID:xAf9z6Ft お金ないです
参考書なしの独学で勉強なさってる方いますか?
参考にしてるサイトがあれば教えてください
今はイヌでもわかるJavaScript講座を眺めたり写経しています
参考書なしの独学で勉強なさってる方いますか?
参考にしてるサイトがあれば教えてください
今はイヌでもわかるJavaScript講座を眺めたり写経しています
2019/03/03(日) 22:58:17.35ID:???
jsなんてとりあえずはclass付け外しするぐらいで十分
サイト作ったほうが良い
サイト作ったほうが良い
2019/03/03(日) 23:13:56.47ID:???
>>198-203
JavaScript なら、Cocos Creator(Cocos2d-x), Phaser, Haxe。
Python 風なら、Godot
それよりも本格的なものは、Unity, UE4
まあ、ゲーム製作板で聞いて
JavaScript なら、Cocos Creator(Cocos2d-x), Phaser, Haxe。
Python 風なら、Godot
それよりも本格的なものは、Unity, UE4
まあ、ゲーム製作板で聞いて
2019/03/04(月) 07:42:51.42ID:???
>>221
ありがとうございます
RPG作りたいんですが、ウディタはこちらの環境だと文字サイズが小さすぎて辛いです
フレームワークとゲームエンジンならどちらがRPG向きなんでしょうか
ウディタは古い開発ツールで作成されている感じでしょうか
ありがとうございます
RPG作りたいんですが、ウディタはこちらの環境だと文字サイズが小さすぎて辛いです
フレームワークとゲームエンジンならどちらがRPG向きなんでしょうか
ウディタは古い開発ツールで作成されている感じでしょうか
2019/03/04(月) 07:55:40.72ID:???
やはり、条件後出しで質問してきたな
いつまでも、学習しない人だな
いつまでも、学習しない人だな
2019/03/04(月) 09:18:25.46ID:???
ウディタなんて誰も答えてないんだが。
独り言ならチラシの裏にお願いしたいね。
独り言ならチラシの裏にお願いしたいね。
2019/03/04(月) 09:23:39.79ID:???
>>222
ゲーム制作板に行ってくれ
ゲーム制作板に行ってくれ
226Name_Not_Found
2019/03/04(月) 13:54:36.36ID:f7xdnLxG javascriptのpromiseを勉強中なのですが、プロミスチェーンが良く分かりません。
最初に作ったpromiseオブジェクトのthen()で別のpromiseオブジェクトを作ってreturnした場合、最初のpromiseはどうなるんでしょうか?
function doSomething1() { return new Promise(function(resolve,reject){ // resolve or reject }); }
function doSomething2() { return new Promise(function(resolve,reject){ // do something 2 }); }
var prom1 = doSomething1().then(function(result){
// 最初のpromise
return doSomething2(); // 別のプロミスを返却
}).then(function(result) {
// 2番目のpromise?
// return prom1; <= 合法 or 非合法? promiseのthenの中で別のプロミスを返却した場合、プロミスチェーンどうなる?
}).then(function(result) {
// どっちのpromise ?
})
最初に作ったpromiseオブジェクトのthen()で別のpromiseオブジェクトを作ってreturnした場合、最初のpromiseはどうなるんでしょうか?
function doSomething1() { return new Promise(function(resolve,reject){ // resolve or reject }); }
function doSomething2() { return new Promise(function(resolve,reject){ // do something 2 }); }
var prom1 = doSomething1().then(function(result){
// 最初のpromise
return doSomething2(); // 別のプロミスを返却
}).then(function(result) {
// 2番目のpromise?
// return prom1; <= 合法 or 非合法? promiseのthenの中で別のプロミスを返却した場合、プロミスチェーンどうなる?
}).then(function(result) {
// どっちのpromise ?
})
2019/03/04(月) 23:17:16.88ID:???
2019/03/05(火) 05:32:16.14ID:???
jsdocというのはコメントアウトとは異なるのですか?
他のファイルをインポートしたり出来るようですが
他のファイルをインポートしたり出来るようですが
2019/03/05(火) 06:59:51.36ID:???
2019/03/05(火) 11:07:37.92ID:???
>>226
誰か回答するだろうと思って放置していたが誰も回答しないな。
仕方ないので最初に、jQueryは素晴らしいDOM操作ライブラリだぞ。と一言言わせてもらおうw
まずな、thenの引数の関数の中にはPromiseなんていないんだよ。
var prom1 = doSomething1().then(function(result){
// 最初のpromise ← 間違い。ここにPromiseなんていない
return doSomething2();
}).then(function(result) {
>>226には、「.then」という単語が3回でてくるが、このメソッドが属する
Promiseオブジェクトはすべて別物だ。別のオブジェクトでなければいけない
(変な書き方をすりゃ話は別だが)
また、.thenの引数の関数は、新しいPromiseオブジェクトを返すものなんだが、
Promiseオブジェクト以外も返すことができる。
var prom1 = doSomething1().then(function(result){
return 123;
}).then(function(result) {
この場合でも、123という数値は、内部でごにゃごにゃされて
すぐにresolve(123)されるPromiseオブジェクトに変換される。
誰か回答するだろうと思って放置していたが誰も回答しないな。
仕方ないので最初に、jQueryは素晴らしいDOM操作ライブラリだぞ。と一言言わせてもらおうw
まずな、thenの引数の関数の中にはPromiseなんていないんだよ。
var prom1 = doSomething1().then(function(result){
// 最初のpromise ← 間違い。ここにPromiseなんていない
return doSomething2();
}).then(function(result) {
>>226には、「.then」という単語が3回でてくるが、このメソッドが属する
Promiseオブジェクトはすべて別物だ。別のオブジェクトでなければいけない
(変な書き方をすりゃ話は別だが)
また、.thenの引数の関数は、新しいPromiseオブジェクトを返すものなんだが、
Promiseオブジェクト以外も返すことができる。
var prom1 = doSomething1().then(function(result){
return 123;
}).then(function(result) {
この場合でも、123という数値は、内部でごにゃごにゃされて
すぐにresolve(123)されるPromiseオブジェクトに変換される。
231230
2019/03/05(火) 11:18:17.82ID:??? > また、.thenの引数の関数は、新しいPromiseオブジェクトを返すものなんだが、
と書いたが、つまりはプロミスチェーンで複数出てくる .then、
この.thenが属するPromiseオブジェクトはそれぞれ別ものなんだよ。
なんでかというと、.thenが実行されるのはPromiseがresolveになった時。
一旦resolveになるとその状態が保たれて変更できないわけだから、
以下のようなことをすると単純に次々実行されてしまうだけ。
var prom = Promise.resolve(); # resolveされたPromiseを返す
prom.then(function(result){
return prom;
}).then(function(result) {
return prom;
}).then(function(result) {
return prom;
})
プロミスを複数つなげる = 非同期処理を複数つなげる。
ならばresolveでもrejectでもない状態にしなければいけないので
それぞれ異なったPromiseにならざるを得ない
と書いたが、つまりはプロミスチェーンで複数出てくる .then、
この.thenが属するPromiseオブジェクトはそれぞれ別ものなんだよ。
なんでかというと、.thenが実行されるのはPromiseがresolveになった時。
一旦resolveになるとその状態が保たれて変更できないわけだから、
以下のようなことをすると単純に次々実行されてしまうだけ。
var prom = Promise.resolve(); # resolveされたPromiseを返す
prom.then(function(result){
return prom;
}).then(function(result) {
return prom;
}).then(function(result) {
return prom;
})
プロミスを複数つなげる = 非同期処理を複数つなげる。
ならばresolveでもrejectでもない状態にしなければいけないので
それぞれ異なったPromiseにならざるを得ない
2019/03/05(火) 15:58:20.71ID:???
japascriptでプログラム作ると逮捕されるってマジ?
233Name_Not_Found
2019/03/05(火) 17:41:03.24ID:7A8gvhHV >>230-231
詳しい解説ありがとうございます。
thenの中で新しいpromise作って返却したら、それまでのthenで繋がってる元々のプロミスチェーンが宙ぶらりんになって途切れてしまうものだと思ってました。
プロミスとプロミスチェーンの概念がイマイチ理解出来ないでいます・・・
詳しい解説ありがとうございます。
thenの中で新しいpromise作って返却したら、それまでのthenで繋がってる元々のプロミスチェーンが宙ぶらりんになって途切れてしまうものだと思ってました。
プロミスとプロミスチェーンの概念がイマイチ理解出来ないでいます・・・
2019/03/05(火) 17:58:19.46ID:???
235Name_Not_Found
2019/03/05(火) 18:33:50.64ID:gep4EaMM ゲーム等のソフトを起動中、ボタンを押すとソフト上のテキストを取得してブラウザに表示する方法ってあるでしょうか?
2019/03/05(火) 18:45:38.42ID:???
>>234
作ってすらおらずリンク貼っただけらしいww
作ってすらおらずリンク貼っただけらしいww
2019/03/05(火) 19:10:51.59ID:???
>>235
何がしたいのか全然わからん
何がしたいのか全然わからん
2019/03/05(火) 20:12:01.89ID:???
2019/03/05(火) 20:19:22.27ID:???
>>237
すみません
例えばゲーム中
https://i.imgur.com/8SKokMQ.jpg
このような画面になった時、赤枠の文字列を取得したいのです
そして取得した文字列をhtml上に表示させたいです
すみません
例えばゲーム中
https://i.imgur.com/8SKokMQ.jpg
このような画面になった時、赤枠の文字列を取得したいのです
そして取得した文字列をhtml上に表示させたいです
2019/03/05(火) 20:23:45.21ID:???
2019/03/05(火) 22:43:24.94ID:???
>>233
プロミスチェーンという言葉を気にする必要はないよ
プロミスを使えばチェーン出来ますよ、
チェーンできるようにしたのがプロミスですよってだけだから
プロミスがない時代、非同期処理を書こうとすると
foo(function() {
bar(function() {
baz(function() {
});
});
});
みたいに、どんどんネストが深くなってしまっていた。
これをこんなふうに縦に並べてかけますよーってのがプロミスで
縦に並べて書いたものをプロミスチェーンと呼ぶってだけ
foo()
.then(function() {
return bar();
}).then(function() {
return baz();
});
プロミスチェーンという言葉を気にする必要はないよ
プロミスを使えばチェーン出来ますよ、
チェーンできるようにしたのがプロミスですよってだけだから
プロミスがない時代、非同期処理を書こうとすると
foo(function() {
bar(function() {
baz(function() {
});
});
});
みたいに、どんどんネストが深くなってしまっていた。
これをこんなふうに縦に並べてかけますよーってのがプロミスで
縦に並べて書いたものをプロミスチェーンと呼ぶってだけ
foo()
.then(function() {
return bar();
}).then(function() {
return baz();
});
2019/03/05(火) 23:29:26.00ID:???
JQueryのresizableについて質問なのですが
マウスカーソルがポインターになる部分(つまめる部分)の範囲を大きくすることは可能でしょうか?
1~3ドット分ぐらいしかないのでつまみづらいなと思い大きくしたいです。
マウスカーソルがポインターになる部分(つまめる部分)の範囲を大きくすることは可能でしょうか?
1~3ドット分ぐらいしかないのでつまみづらいなと思い大きくしたいです。
2019/03/06(水) 00:06:35.50ID:???
>for文無限ループURL投稿で女子中学生が兵庫県警に補導
>補導されたのは、愛知県刈谷市に住む中学1年生の13歳の女子生徒で、
>警察によりますと、インターネットの掲示板に、不正なプログラムのアドレスを書き込んだ疑いがもたれています。
>このプログラムでは、クリックすると、画面の真ん中に「何回閉じても無駄ですよ〜」という文字や、顔文字などが表示され続けるよう設定されているということです。
>補導されたのは、愛知県刈谷市に住む中学1年生の13歳の女子生徒で、
>警察によりますと、インターネットの掲示板に、不正なプログラムのアドレスを書き込んだ疑いがもたれています。
>このプログラムでは、クリックすると、画面の真ん中に「何回閉じても無駄ですよ〜」という文字や、顔文字などが表示され続けるよう設定されているということです。
2019/03/06(水) 03:20:37.17ID:???
>>235
他人が作った、起動中のアプリに、外部からアタッチできないだろ。
そのアプリを自分で分析して改造するなど、しないと無理
ブラウザゲームなどのHTML アプリなら、
そのHTMLを解析して、Ruby, Selenium Webdriver などを使って、アタッチできる
iMacros と言う、ブラウザを自動操作するソフトもある
他人が作った、起動中のアプリに、外部からアタッチできないだろ。
そのアプリを自分で分析して改造するなど、しないと無理
ブラウザゲームなどのHTML アプリなら、
そのHTMLを解析して、Ruby, Selenium Webdriver などを使って、アタッチできる
iMacros と言う、ブラウザを自動操作するソフトもある
245244
2019/03/06(水) 03:34:26.76ID:??? >>239
アプリでも様々な種類があるから、
対応できるのは、ブラウザゲームなどのHTML アプリだけ
ブラウザゲームなら、F12 を押せば、開発者ツールが起動する。
それを見て、他人のソースコードを分析していくから大変
取得したい文字列の上で、マウスで右クリックメニューを開いて、要素の検索をすればよい
でも、かなりプログラミングできないと、他人のアプリなど解析できないよ。
そのアプリの仕様書が無いから、何をやっているのか、全くわからないため
まだ会話を続けるなら、名前欄に、235 と入れて投稿して
アプリでも様々な種類があるから、
対応できるのは、ブラウザゲームなどのHTML アプリだけ
ブラウザゲームなら、F12 を押せば、開発者ツールが起動する。
それを見て、他人のソースコードを分析していくから大変
取得したい文字列の上で、マウスで右クリックメニューを開いて、要素の検索をすればよい
でも、かなりプログラミングできないと、他人のアプリなど解析できないよ。
そのアプリの仕様書が無いから、何をやっているのか、全くわからないため
まだ会話を続けるなら、名前欄に、235 と入れて投稿して
2019/03/06(水) 08:45:20.32ID:???
>>244-245
死ね
死ね
2019/03/06(水) 09:16:30.52ID:???
rubyだけは絶対に使わないように
2019/03/07(木) 07:10:09.29ID:???
249Name_Not_Found
2019/03/07(木) 07:12:49.68ID:ahDydsPD 10数年ぶりにサイト作るんだけど、昔はJavaScriptを停止してるブラウザいっぱいあったけど、
今のブラウザは100%Javascript動くと思ってOK?
今のブラウザは100%Javascript動くと思ってOK?
2019/03/07(木) 12:28:15.90ID:???
そもそもjavascript動かしただけで犯罪になるのが日本だからな
逮捕されることを覚悟してやるしかねえわ
逮捕されることを覚悟してやるしかねえわ
251Name_Not_Found
2019/03/07(木) 13:38:59.97ID:RgmxSmXK replace用の第1引数と第2引数のペアをまとめてオブジェクトに入れておいて呼び出したいのですけど
どんな感じでやるんですかね
今だと
const regObj = { 'a':正規表現, 'b':正規表現, 'c':正規表現 ];
const strObj = { 'a':文字列, 'b'文字列, 'c':文字列 };
const index = 'c';
text.replace(regObj[index], strObj[index]);
って別々の配列使っちゃってるんですけど
まとめたほうがわかりやすいだろうなと
一応
const regStrObj = {
'a' : [ 正規表現, 文字列 ],
'b' : [ 正規表現, 文字列 ],
'c' : [ 正規表現, 文字列 ],
};
const arr = regStrObj['c'];
text.replace(arr[0], arr[1]);
って方法は思いつくものの、なんかもっといい書き方があるような気がして
どんな感じでやるんですかね
今だと
const regObj = { 'a':正規表現, 'b':正規表現, 'c':正規表現 ];
const strObj = { 'a':文字列, 'b'文字列, 'c':文字列 };
const index = 'c';
text.replace(regObj[index], strObj[index]);
って別々の配列使っちゃってるんですけど
まとめたほうがわかりやすいだろうなと
一応
const regStrObj = {
'a' : [ 正規表現, 文字列 ],
'b' : [ 正規表現, 文字列 ],
'c' : [ 正規表現, 文字列 ],
};
const arr = regStrObj['c'];
text.replace(arr[0], arr[1]);
って方法は思いつくものの、なんかもっといい書き方があるような気がして
253Name_Not_Found
2019/03/07(木) 13:46:09.53ID:/wM/uMMX ゼビオ行きたい
2019/03/07(木) 15:42:08.00ID:???
>>251
こんなんは?てきとうだけど。
const replaceRules = {
'a' : [ 正規表現, 置換文字列 ],
'b' : [ 正規表現, 置換文字列 ],
'c' : [ 正規表現, 置換文字列 ],
};
const replaceByRule = rule => str => str.replace(...rule);
使い方
const replaceByRuleC = replaceByRule(replaceRules['c']);
const replacedText = replaceByRuleC(text);
または
const replacedText = replaceByRule(replaceRules['c'])(text);
こんなんは?てきとうだけど。
const replaceRules = {
'a' : [ 正規表現, 置換文字列 ],
'b' : [ 正規表現, 置換文字列 ],
'c' : [ 正規表現, 置換文字列 ],
};
const replaceByRule = rule => str => str.replace(...rule);
使い方
const replaceByRuleC = replaceByRule(replaceRules['c']);
const replacedText = replaceByRuleC(text);
または
const replacedText = replaceByRule(replaceRules['c'])(text);
2019/03/07(木) 20:34:22.92ID:???
2019/03/07(木) 21:22:34.99ID:???
本来順序がないものに配列使うのは好きじゃないなぁ
だからArray#entries/Object.entriesとかも好きになれない
だからArray#entries/Object.entriesとかも好きになれない
2019/03/07(木) 22:01:19.13ID:???
entiries系は走査が目的で順序なんて気にしないことの方が多いでしょ
2019/03/07(木) 22:22:19.75ID:???
2019/03/07(木) 22:32:00.21ID:???
[key, value] of entries
とかすりゃいいだけじゃん
とかすりゃいいだけじゃん
2019/03/07(木) 22:35:49.82ID:???
>>251
new Map
new Map
2019/03/07(木) 23:01:32.97ID:???
2019/03/08(金) 01:30:24.56ID:???
2019/03/08(金) 06:59:30.07ID:???
2019/03/08(金) 07:22:04.29ID:???
>>262
> 他にもMapに配列リテラル与えるのも違和感あるんだが
「違和感がある」がキーのことか、引数に二次元配列を渡していることか、わからんが、既にある定義に違和感があるなら、Mapを漠然と理解している気になってるからなんじゃないかね
イテレータとか、理解してるか?
> 他にもMapに配列リテラル与えるのも違和感あるんだが
「違和感がある」がキーのことか、引数に二次元配列を渡していることか、わからんが、既にある定義に違和感があるなら、Mapを漠然と理解している気になってるからなんじゃないかね
イテレータとか、理解してるか?
2019/03/08(金) 12:39:13.11ID:???
ま、好みの問題だし[0],[1]のアクセスに全く違和感ないなら分かり合えんのでいいわ
デストラクチャリングできるから良いって問題じゃないし
ただesには妥協の産物もあるってことは理解しといたほうがいいぞ
デストラクチャリングできるから良いって問題じゃないし
ただesには妥協の産物もあるってことは理解しといたほうがいいぞ
2019/03/08(金) 12:43:32.37ID:???
jsが妥協だらけなんてことは大前提の上での話だと思うけど……生まれからして開発者と会社間の妥協の産物やないか
2019/03/08(金) 12:53:34.47ID:???
すべての言語が妥協だらけなんてことは大前提の上での話だと思うけど……
2019/03/08(金) 12:58:23.28ID:???
我が人生に一片の妥協なし!
2019/03/08(金) 15:23:48.72ID:???
ちなみにリリースしたてのreact hooks apiの使用例:
const [count, setCount] = useState(initialCount);
5ちゃんのスーパーハカーによると妥協の産物である。
const [count, setCount] = useState(initialCount);
5ちゃんのスーパーハカーによると妥協の産物である。
2019/03/08(金) 22:50:57.61ID:???
だからそれもデストラクチャリング前提の妥協の産物でしょ
2019/03/08(金) 22:57:47.68ID:???
メモリ上に並ぶんだからどうやったって順序があるだろ
2019/03/09(土) 09:28:00.16ID:???
違和感ある/なしの感想だけを求めて理由はどうでも良かったのか
すぐ共感を求める女性のような考え方だな
すぐ共感を求める女性のような考え方だな
2019/03/09(土) 10:13:36.21ID:???
これか?
'a' : [ 正規表現, 文字列 ],
key が文字列で、value がコンテナなんて、
JSON なんか、ほとんどこればっかりだろ
違和感なんて感じないけど?
'a' : [ 正規表現, 文字列 ],
key が文字列で、value がコンテナなんて、
JSON なんか、ほとんどこればっかりだろ
違和感なんて感じないけど?
2019/03/09(土) 10:17:40.04ID:???
Mapや配列にした途端に違和感があるという不思議ちゃん
2019/03/09(土) 10:56:59.23ID:???
>>256はPHPの連想配列にも不満をいいそう
2019/03/09(土) 11:49:05.06ID:???
>>265
考え方が狭いだけだと思うよ
[a,b],
[c,d],
[e,f]
って
_ key val
0 a b
1 c d
2 e f
のような項目名が暗黙のテーブルってだけなんだよ
なんか配列というものにへんな固定観念を持ってるから違和感を感じるだけなんだよ
定義はシンプルな方が良いんだからさ
{key:'a',value:'b'},{key:'c',value:'d'},{key:'e',value:'f'}
みたいにするよりは配列を使ったほうが良いんだよ
別に[a,b],[c,d],[e,f]と書いて置いてオブジェクトに変換して使うとかも簡単にできるんだからさ
そのへんが内部的にも行われてると考えればいいだけで変なこだわりを持っても価値がないんだよ
考え方が狭いだけだと思うよ
[a,b],
[c,d],
[e,f]
って
_ key val
0 a b
1 c d
2 e f
のような項目名が暗黙のテーブルってだけなんだよ
なんか配列というものにへんな固定観念を持ってるから違和感を感じるだけなんだよ
定義はシンプルな方が良いんだからさ
{key:'a',value:'b'},{key:'c',value:'d'},{key:'e',value:'f'}
みたいにするよりは配列を使ったほうが良いんだよ
別に[a,b],[c,d],[e,f]と書いて置いてオブジェクトに変換して使うとかも簡単にできるんだからさ
そのへんが内部的にも行われてると考えればいいだけで変なこだわりを持っても価値がないんだよ
2019/03/09(土) 13:14:08.88ID:???
元は順序がどうとか言ってたから、arr[3]みたいな順序に依存したアクセスが気にくわないと言うのならわかる
2019/03/09(土) 13:15:16.54ID:???
そもそも、new Mapの引数にはiterableが指定可能で配列限定ではないんだが
2019/03/09(土) 13:20:11.46ID:???
o = { a:'b', c:'d', e:'f' }
new Map(Object.entries(o))
でいいじゃん
new Map(Object.entries(o))
でいいじゃん
2019/03/09(土) 17:50:19.98ID:???
iterableの考え方が出来てない人が「妥協の産物」と断じているだけだろう
2019/03/09(土) 18:29:25.30ID:???
本人も両親の妥協の産物なのです
2019/03/09(土) 23:39:17.89ID:???
一週間前に始めた超初心者です。
htmlファイルと外部読み込みjavascriptファイルをPCで作り、スマホに送ってクロームで開いたところ、
htmlは表示されましたが、どうしてもjavascriptがうまくいきません。なぜでしょうか?
(スクリプトをhtmlに直接書き込むと動作するので、外部読み込みファイルの指定の仕方が悪いと思っています。)
【外部ファイル指定部分】
<a href="./time.html" target="frame_name" >現在時刻</a><br>
<iframe name="frame_name" width="200" height="50" ></iframe><br>
htmlファイルと外部読み込みjavascriptファイルをPCで作り、スマホに送ってクロームで開いたところ、
htmlは表示されましたが、どうしてもjavascriptがうまくいきません。なぜでしょうか?
(スクリプトをhtmlに直接書き込むと動作するので、外部読み込みファイルの指定の仕方が悪いと思っています。)
【外部ファイル指定部分】
<a href="./time.html" target="frame_name" >現在時刻</a><br>
<iframe name="frame_name" width="200" height="50" ></iframe><br>
2019/03/10(日) 00:12:22.00ID:???
>>282
まず服を脱いでください
まず服を脱いでください
2019/03/10(日) 04:49:06.65ID:???
質問です。
var x = 123;
function hello(){
var y = 456;
var button = document.getElementById("btnElement");
button.onclick = function(mouseEvent){ console.log("x="+x+",y="+y); };
}
このときyがundefinedになりますが、
クリックのイベントハンドラ内にyを渡す方法はありませんか?
var x = 123;
function hello(){
var y = 456;
var button = document.getElementById("btnElement");
button.onclick = function(mouseEvent){ console.log("x="+x+",y="+y); };
}
このときyがundefinedになりますが、
クリックのイベントハンドラ内にyを渡す方法はありませんか?
2019/03/10(日) 06:38:27.92ID:???
>>284
> このときyがundefinedになりますが、
button.onclick の関数を定義してるのはhello関数のスコープ
hello関数で定義しているyは参照できるはず
適当に補って試してみたが再現しない
変数のスコープ説明のためのソースっぽいけど、このソースそのままなの?
どこかtypoしてないか?
> このときyがundefinedになりますが、
button.onclick の関数を定義してるのはhello関数のスコープ
hello関数で定義しているyは参照できるはず
適当に補って試してみたが再現しない
変数のスコープ説明のためのソースっぽいけど、このソースそのままなの?
どこかtypoしてないか?
286Name_Not_Found
2019/03/10(日) 09:11:19.04ID:Ny88Q30p addEventListener()の勉強しています
3つボタンを用意して押下するとそれぞれの数字がアラートで表示されるものを作りました
index.html
<button id="btn1" value="1" onclick="show(1)">ボタン1</button>
<button id="btn2" value="2" onclick="show(2)">ボタン2</button>
<button id="btn3" value="3" onclick="show(3)">ボタン3</button>
main.js
function show(val) {
alert(val);
}
こちらをonclickを使わずにaddEventListenerを使ってこのように再現しました
const fnc = function(a) {
alert(a.currentTarget.value);
}
document.addEventListener("DOMContentLoaded", function() {
var btn1 = document.getElementById("btn1");
btn1.addEventListener("click", fnc, false);
var btn2 = document.getElementById("btn2");
btn2.addEventListener("click", fnc, false);
var btn3 = document.getElementById("btn3");
btn3.addEventListener("click", fnc, false);
}, false);
簡潔に短く書く方法はないでしょうか?
仮にボタン10個に増えたときは下のボタン取得とクリックしたら〜の2行を10回繰り返すのでしょうか
3つボタンを用意して押下するとそれぞれの数字がアラートで表示されるものを作りました
index.html
<button id="btn1" value="1" onclick="show(1)">ボタン1</button>
<button id="btn2" value="2" onclick="show(2)">ボタン2</button>
<button id="btn3" value="3" onclick="show(3)">ボタン3</button>
main.js
function show(val) {
alert(val);
}
こちらをonclickを使わずにaddEventListenerを使ってこのように再現しました
const fnc = function(a) {
alert(a.currentTarget.value);
}
document.addEventListener("DOMContentLoaded", function() {
var btn1 = document.getElementById("btn1");
btn1.addEventListener("click", fnc, false);
var btn2 = document.getElementById("btn2");
btn2.addEventListener("click", fnc, false);
var btn3 = document.getElementById("btn3");
btn3.addEventListener("click", fnc, false);
}, false);
簡潔に短く書く方法はないでしょうか?
仮にボタン10個に増えたときは下のボタン取得とクリックしたら〜の2行を10回繰り返すのでしょうか
2019/03/10(日) 09:30:41.49ID:???
>>285
すいません、ちょっと違いました
function(){}とvar = function(){}でスコープが違うんですね・・・
var x = 123;
var world = function hello(){
var y = 456;
var button = document.getElementById("btnElement");
button.onclick = function(mouseEvent){ console.log("x="+x+",y="+y); };
}
すいません、ちょっと違いました
function(){}とvar = function(){}でスコープが違うんですね・・・
var x = 123;
var world = function hello(){
var y = 456;
var button = document.getElementById("btnElement");
button.onclick = function(mouseEvent){ console.log("x="+x+",y="+y); };
}
2019/03/10(日) 09:53:35.90ID:???
>>286
それならjQueryを使うと良い。単純に置き換えるだけでもここまで短くなる
function fnc(event) {
alert(event.currentTarget.value);
}
$(function() {
var btn1 = $("#btn1");
btn1.click(fnc);
var btn2 = $("#btn2");
btn2.click(fnc);
var btn3 = $("#btn3");
btn3.click(fnc);
});
一時変数を使うまでもないのでこうだな
function fnc(event) {
alert(event.currentTarget.value);
}
$(function() {
$("#btn1").click(fnc);
$("#btn2").click(fnc);
$("#btn3").click(fnc);
});
それならjQueryを使うと良い。単純に置き換えるだけでもここまで短くなる
function fnc(event) {
alert(event.currentTarget.value);
}
$(function() {
var btn1 = $("#btn1");
btn1.click(fnc);
var btn2 = $("#btn2");
btn2.click(fnc);
var btn3 = $("#btn3");
btn3.click(fnc);
});
一時変数を使うまでもないのでこうだな
function fnc(event) {
alert(event.currentTarget.value);
}
$(function() {
$("#btn1").click(fnc);
$("#btn2").click(fnc);
$("#btn3").click(fnc);
});
2019/03/10(日) 09:55:39.91ID:???
そして根本的にやるならこう
<button id="btn1" value="1" class="btn">ボタン1</button>
<button id="btn2" value="2" class="btn">ボタン2</button>
<button id="btn3" value="3" class="btn">ボタン3</button>
$(function() {
$(".btn").click(function() {
alert(this.value);
});
});
<button id="btn1" value="1" class="btn">ボタン1</button>
<button id="btn2" value="2" class="btn">ボタン2</button>
<button id="btn3" value="3" class="btn">ボタン3</button>
$(function() {
$(".btn").click(function() {
alert(this.value);
});
});
2019/03/10(日) 10:44:08.26ID:???
>>286
const $$ = q => [...document.querySelectorAll(q)]
を定義しておいて、冗長になっているところを、
$$`#btn1,#btn2,#btn3`.forEach(el => el.addEventListener('click', fnc, false))
で置き換えては?
また、
$$(['#btn1', '#btn2', '#btn3']).forEach(el => el.addEventListener('click', fnc, false))
と書くこともできるから、以下のようにすれば対象要素増やしたいときも配列にセレクタ追加するだけで対応できるよ。
const selectors = [
'#btn1',
'#btn2',
'#btn3',
'#btn4', // new!
]
$$(selectors).forEach(el => el.addEventListener('click', fnc, false))
const $$ = q => [...document.querySelectorAll(q)]
を定義しておいて、冗長になっているところを、
$$`#btn1,#btn2,#btn3`.forEach(el => el.addEventListener('click', fnc, false))
で置き換えては?
また、
$$(['#btn1', '#btn2', '#btn3']).forEach(el => el.addEventListener('click', fnc, false))
と書くこともできるから、以下のようにすれば対象要素増やしたいときも配列にセレクタ追加するだけで対応できるよ。
const selectors = [
'#btn1',
'#btn2',
'#btn3',
'#btn4', // new!
]
$$(selectors).forEach(el => el.addEventListener('click', fnc, false))
2019/03/10(日) 11:24:50.09ID:???
>>286
ボタンが一列に並ぶかどうかとか色々不明な前提条件があるので
すまんけど明確な方針は出せない
少なくとも適用する関数が全て同じfncならば、
idじゃなくてclassでまとめることをオススメする
https://jsfiddle.net/kgn91oyL/
ボタンが一列に並ぶかどうかとか色々不明な前提条件があるので
すまんけど明確な方針は出せない
少なくとも適用する関数が全て同じfncならば、
idじゃなくてclassでまとめることをオススメする
https://jsfiddle.net/kgn91oyL/
2019/03/10(日) 11:36:16.09ID:???
>>286
>>289のコードを動くようにしてみた
https://jsfiddle.net/r38gt724/
更に一行で書いてみた。
個人的にはアロー関数は戻り値を使うべきだと思ってるので好きではないが
https://jsfiddle.net/pm4cqf75/
>>289のコードを動くようにしてみた
https://jsfiddle.net/r38gt724/
更に一行で書いてみた。
個人的にはアロー関数は戻り値を使うべきだと思ってるので好きではないが
https://jsfiddle.net/pm4cqf75/
293286
2019/03/10(日) 15:33:27.62ID:Ny88Q30p2019/03/10(日) 15:35:20.25ID:???
>>288-292でした
2019/03/10(日) 16:00:41.96ID:???
2019/03/10(日) 17:11:57.07ID:???
>>286
var btn1 = document.getElementById("btn1");
などはまるごと省略してよい
id属性をもつ要素はそのままグローバルプロパティとして現れる決まりがある
var btn1 = document.getElementById("btn1");
などはまるごと省略してよい
id属性をもつ要素はそのままグローバルプロパティとして現れる決まりがある
2019/03/10(日) 17:22:18.21ID:???
>>295と同等のことをjQueryであるとこうなります。
document.getElementById("buttons").addEventListener("click", ev => {
if (ev.target.classList.contains("btn")) {
alert(ev.target.value);
}
});
↓
$("#buttons").on("click", '.btn', function(event) {
alert(this.value);
});
https://jsfiddle.net/3t1nv7kq/
document.getElementById("buttons").addEventListener("click", ev => {
if (ev.target.classList.contains("btn")) {
alert(ev.target.value);
}
});
↓
$("#buttons").on("click", '.btn', function(event) {
alert(this.value);
});
https://jsfiddle.net/3t1nv7kq/
2019/03/10(日) 19:26:50.44ID:???
デザイナーってJavaScriptどらくらい理解してればいい?
2019/03/10(日) 19:43:26.86ID:???
べつに必要ないんじゃない
2019/03/10(日) 19:49:57.05ID:???
>>298
DOMに関してはなんでも出来ると思ってればいいけど、基本はclassの付け外しのみに抑え、
後はcssで全部やるようにすると思っておいたほうが良い
cssで出来る所をjsでやろうとすると途端に重くなる
DOMに関してはなんでも出来ると思ってればいいけど、基本はclassの付け外しのみに抑え、
後はcssで全部やるようにすると思っておいたほうが良い
cssで出来る所をjsでやろうとすると途端に重くなる
2019/03/10(日) 20:05:35.31ID:???
>>282
><a href="./time.html" target="frame_name" >現在時刻</a><br>
これは、単なるリンクだろ。
JavaScript(JS) なんて読み込んでいないよ
それとも、./time.html ファイルの中で、JSを読み込んでいるのか?
><a href="./time.html" target="frame_name" >現在時刻</a><br>
これは、単なるリンクだろ。
JavaScript(JS) なんて読み込んでいないよ
それとも、./time.html ファイルの中で、JSを読み込んでいるのか?
302Name_Not_Found
2019/03/11(月) 08:45:22.93ID:pwrb3zCE ツイッターで#テクノロジー犯罪と検索して、まじでやばいことを四代目澄田会の幹部がやってる
被害者に対して暴力団以外にタゲそらしをしてるがやってるのは暴力団で普段外に出ることが少ないため遊びで公共の電波と同じような電波を使って殺人をしてる
統失はほとんどが作られた病気で実際は電波によって音声送信や思考盗聴ができることが最近明らかになりつつある
警察や病院では病気としてマニュアル化されてしまっているのが現状で被害者は泣き寝入りしてる
被害者がリアルタイムで多い現状を知って、被害者間でしか本当の事だと認知できていない
実際にできると思われていない事だから、ただの幻聴ではない実際に頭の中で会話ができる
できないことだと思われているからこそ真面目に被害を訴えてる
海外でも周知されつつあることを知ってほしい。
このままだとどんどん被害が広がる一方
#テクノロジー犯罪
#四代目澄田会
被害者に対して暴力団以外にタゲそらしをしてるがやってるのは暴力団で普段外に出ることが少ないため遊びで公共の電波と同じような電波を使って殺人をしてる
統失はほとんどが作られた病気で実際は電波によって音声送信や思考盗聴ができることが最近明らかになりつつある
警察や病院では病気としてマニュアル化されてしまっているのが現状で被害者は泣き寝入りしてる
被害者がリアルタイムで多い現状を知って、被害者間でしか本当の事だと認知できていない
実際にできると思われていない事だから、ただの幻聴ではない実際に頭の中で会話ができる
できないことだと思われているからこそ真面目に被害を訴えてる
海外でも周知されつつあることを知ってほしい。
このままだとどんどん被害が広がる一方
#テクノロジー犯罪
#四代目澄田会
2019/03/11(月) 21:26:04.37ID:???
>>286
べつにonclickでもいい
var btn1 = document.getElementById("btn1");
btn1.addEventListener("click", fnc, false);
var btn2 = document.getElementById("btn2");
btn2.addEventListener("click", fnc, false);
var btn3 = document.getElementById("btn3");
btn3.addEventListener("click", fnc, false);
↓
for(let i = 1; i <= 3; i++)window['btn'+i].onclick = fnc
べつにonclickでもいい
var btn1 = document.getElementById("btn1");
btn1.addEventListener("click", fnc, false);
var btn2 = document.getElementById("btn2");
btn2.addEventListener("click", fnc, false);
var btn3 = document.getElementById("btn3");
btn3.addEventListener("click", fnc, false);
↓
for(let i = 1; i <= 3; i++)window['btn'+i].onclick = fnc
2019/03/11(月) 21:34:51.03ID:???
jQueryなんて時代遅れって言われたんだけど今イケてるのって何?
2019/03/11(月) 21:37:41.65ID:???
生JS
2019/03/11(月) 21:39:38.12ID:???
jQueryのなんというかvbaくさい楽勝さがやめられん
アホでも書ける
アホでも書ける
2019/03/11(月) 21:59:37.19ID:???
>>304
これが現実やで。周りに振り回されている人が、周りを振り回そうとしてるだけ
2017年 JavaScript★71.9%ものサイトがjQueryを利用 [無断転載禁止]©2ch.net
https://medaka.5ch.net/test/read.cgi/prog/1485008061/
↓ 2年後
https://w3techs.com/technologies/history_overview/javascript_library/all/y
73.8% (+1.9%)
Angular 0.5% → 0.4% (+0.1%)
React 0.5% → 0.2% (-0.3%)
Vue 0.1% → 0.2% (+0.1%)
これが現実やで。周りに振り回されている人が、周りを振り回そうとしてるだけ
2017年 JavaScript★71.9%ものサイトがjQueryを利用 [無断転載禁止]©2ch.net
https://medaka.5ch.net/test/read.cgi/prog/1485008061/
↓ 2年後
https://w3techs.com/technologies/history_overview/javascript_library/all/y
73.8% (+1.9%)
Angular 0.5% → 0.4% (+0.1%)
React 0.5% → 0.2% (-0.3%)
Vue 0.1% → 0.2% (+0.1%)
2019/03/11(月) 22:18:30.49ID:???
>>304
TypeScriptとか?
TypeScriptとか?
2019/03/11(月) 22:41:08.48ID:???
>>307-308
Vueお勧めされたぜ
Vueお勧めされたぜ
2019/03/11(月) 22:48:02.83ID:???
色々言いたいことはあるけど
少なくとも古い新しいの問題では無いよ
何を作るかで決まる
少なくとも古い新しいの問題では無いよ
何を作るかで決まる
2019/03/11(月) 23:36:18.41ID:???
大規模サイトじゃなければ、jQuery で十分!
そこまで複雑じゃないから
それが数字に表れている
そこまで複雑じゃないから
それが数字に表れている
2019/03/11(月) 23:44:51.54ID:???
大規模サイトってどれくらいからいうの?
2019/03/12(火) 00:37:48.41ID:???
大規模って言葉がおかしいと思う
セキュリティか個人情報扱う時に一気に難易度が跳ね上がる
具体的にはユーザーログイン・ECが付くと大規模になる
静的ページなんぞ10000ページあっても大規模でもなんでもない
セキュリティか個人情報扱う時に一気に難易度が跳ね上がる
具体的にはユーザーログイン・ECが付くと大規模になる
静的ページなんぞ10000ページあっても大規模でもなんでもない
2019/03/12(火) 00:53:24.71ID:???
じゃあ通販サイトなんかは大規模サイトでいいのかな?
大規模サイトもjQuery使ってるよね
大規模サイトもjQuery使ってるよね
2019/03/12(火) 00:56:35.71ID:???
それは大規模な静的サイトだろ。
規模が大きいか小さいかと、動的か静的かは直交する。
10000ページあって小規模とか頭大丈夫?
規模が大きいか小さいかと、動的か静的かは直交する。
10000ページあって小規模とか頭大丈夫?
2019/03/12(火) 01:11:09.28ID:???
ぼくの3000ページのwordpressブログは中規模サイトでいいですか?
2019/03/12(火) 01:14:42.94ID:???
これは聞いてみたいな
昔、簡易HP作成サイトが当たって30000アカウントに登録してもらえた
・FWを除けばphpファイルは10ファイルぐらい
・30000アカウント集まって30000ページのサイト
これって大規模に当たる?
最初の開発は一週間ぐらいで終わった
昔、簡易HP作成サイトが当たって30000アカウントに登録してもらえた
・FWを除けばphpファイルは10ファイルぐらい
・30000アカウント集まって30000ページのサイト
これって大規模に当たる?
最初の開発は一週間ぐらいで終わった
2019/03/12(火) 01:41:28.75ID:???
2019/03/12(火) 02:21:38.02ID:???
>>318
無職になって作ったエロアフィブログだ
サーバー設定、プログラミング、コンテンツ作成等メチャクチャ勉強になったな。今も進化中だ
儲けは少ないが一部マニアに非常に高い評価をいただいておる
海外のエロレビューサイトにも高レスポンスな良心的サイトとして紹介されたりもしたよ
無職になって作ったエロアフィブログだ
サーバー設定、プログラミング、コンテンツ作成等メチャクチャ勉強になったな。今も進化中だ
儲けは少ないが一部マニアに非常に高い評価をいただいておる
海外のエロレビューサイトにも高レスポンスな良心的サイトとして紹介されたりもしたよ
2019/03/12(火) 20:16:22.42ID:???
残念ながらエロにレスポンスは求められていない
2019/03/12(火) 20:33:40.61ID:???
>>320
あほ、メチャクチャ求められるわ
あほ、メチャクチャ求められるわ
2019/03/12(火) 21:46:31.47ID:???
エロに重要なのは
広告で邪魔しないこと
クリック押したらすぐに表示されること
シークしたらすぐに移動すること
ダウンロードできること
広告で邪魔しないこと
クリック押したらすぐに表示されること
シークしたらすぐに移動すること
ダウンロードできること
2019/03/12(火) 23:17:21.21ID:???
最近はわざわざダウンロードする必要ないって事に気づいた
2019/03/12(火) 23:24:01.23ID:???
ダウンロードしないとぶつ切りにならん?
2019/03/12(火) 23:30:54.86ID:???
それは回線が悪いかサイトが悪いか
じゃないかな
じゃないかな
2019/03/13(水) 01:45:22.73ID:???
私も夫に毎晩メチャクチャ求められてます
2019/03/13(水) 06:32:02.29ID:???
328Name_Not_Found
2019/03/14(木) 14:13:33.51ID:f4r4sHfI アロー演算子と無名関数の使い分けを教えて下さい
foreachの中ではアロー演算子は使わない方が良いのでしょうか?
thisがwindowを差してしまいます
thisは今まで使ってきたのですが、
アロー演算子はどういう時に使うと良いのでしょうか??
foreachの中ではアロー演算子は使わない方が良いのでしょうか?
thisがwindowを差してしまいます
thisは今まで使ってきたのですが、
アロー演算子はどういう時に使うと良いのでしょうか??
329Name_Not_Found
2019/03/14(木) 14:30:58.38ID:f4r4sHfI 正規表現の置換を教えて下さい
最終的にはinputに入力された文字列から数字のみを抜き出し、全て半角数字にしたいのです
入力:
あ0い1う2え3お4
結果:
012345
"あ0い1う2え3お4".replace(/^[0-9]/u, '')
ではうまく行きませんでした、どなたかお助けを〜
最終的にはinputに入力された文字列から数字のみを抜き出し、全て半角数字にしたいのです
入力:
あ0い1う2え3お4
結果:
012345
"あ0い1う2え3お4".replace(/^[0-9]/u, '')
ではうまく行きませんでした、どなたかお助けを〜
2019/03/14(木) 15:05:51.78ID:???
h ={'0':'0','1':'1','2':'2','3':'3','4':'4','5':'5','6':'6','7':'7','8':'8','9':'9'};
"あ0い1う2え3お4".replace(/./g, (c)=>{
if (c.match(/\d/)) return c;
if (c.match(/[0-9]/)) return h[c];
return '';
});
"あ0い1う2え3お4".replace(/./g, (c)=>{
if (c.match(/\d/)) return c;
if (c.match(/[0-9]/)) return h[c];
return '';
});
2019/03/14(木) 15:11:43.54ID:???
>>329
"あ0い1う2え3お4".replace(/[0-9]/g, c => String.fromCodePoint(c.codePointAt(0) - 0xFEE0)).replace(/[^0-9]/g, '');
"あ0い1う2え3お4".replace(/[0-9]/g, c => String.fromCodePoint(c.codePointAt(0) - 0xFEE0)).replace(/[^0-9]/g, '');
2019/03/14(木) 15:13:38.40ID:???
normalize()を使おうぜ
333Name_Not_Found
2019/03/14(木) 15:13:39.18ID:1lyNtq792019/03/14(木) 15:31:05.00ID:???
335Name_Not_Found
2019/03/14(木) 15:39:59.51ID:1lyNtq792019/03/14(木) 15:49:26.14ID:???
> 基本的にthisを使わない(挙動をコードを書いた時点で確定する)方針にしようぜって思想が根底にある
ないから(笑)
ないから(笑)
2019/03/14(木) 16:13:00.64ID:???
2019/03/14(木) 17:06:18.92ID:???
2019/03/14(木) 18:22:12.31ID:???
MDNにめっちゃ詳しく書いてあった
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions
アロー関数はthisを持たないとか初めて知った
ちゃんとMDN読んどくべきだなあ
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions
アロー関数はthisを持たないとか初めて知った
ちゃんとMDN読んどくべきだなあ
2019/03/15(金) 05:47:18.43ID:???
持たない?むしろ持ってるのだと思うが
関数オブジェクトが作られるときに束縛される
関数オブジェクトが作られるときに束縛される
2019/03/15(金) 08:01:12.85ID:???
うんthis以外にも違いはあるけどthisについては定義時にvar hoge = (function() {〜}).bind(this)としてるようなもんだからな
2019/03/15(金) 09:00:52.35ID:???
>>341
定義後にthisは変動しない仕様だった?
定義後にthisは変動しない仕様だった?
2019/03/15(金) 09:30:17.18ID:???
アロー関数はthisを持たないってのは、別に私がそう解釈したわけじゃなくて
MDNにハッキリと書いてあるんだけど
>2 つの理由から、アロー関数が導入されました。1 つ目の理由は関数を短く書きたいということで、
>2 つ目の理由は this を束縛したくない、ということです。
>アロー関数自身は this を持ちません。レキシカルスコープの this 値を使います。
>つまり、アロー関数内の this 値は通常の変数検索ルールに従います
>(スコープに this 値がない場合、その一つ外側のスコープで this 値を探します)。
翻訳が間違ってるか、MDN自体が間違ってるってこと?
MDNにハッキリと書いてあるんだけど
>2 つの理由から、アロー関数が導入されました。1 つ目の理由は関数を短く書きたいということで、
>2 つ目の理由は this を束縛したくない、ということです。
>アロー関数自身は this を持ちません。レキシカルスコープの this 値を使います。
>つまり、アロー関数内の this 値は通常の変数検索ルールに従います
>(スコープに this 値がない場合、その一つ外側のスコープで this 値を探します)。
翻訳が間違ってるか、MDN自体が間違ってるってこと?
2019/03/15(金) 09:33:01.75ID:???
属するスコープの変数を参照する極々当然の挙動だな
2019/03/15(金) 10:19:44.87ID:???
翻訳か原文からそうなのか知らんが持つって言葉の使い方が戦犯
mdnなんか見てないで仕様読め仕様
mdnなんか見てないで仕様読め仕様
2019/03/15(金) 12:00:44.39ID:???
質問です
コールバック関数を使う関数を作りたいのですが、どう書けばよいのか分かりません。
検索しても既存のコールバック関数を伴う関数の使い方(setTimeout()の使い方など)ばっかり出てきて
そういう関数の「作り方」が出てこないのです…
早い話がsetTimeout()のような関数本体の方を作り、書きたいのですが
どうすればいいんでしょうか? どう検索したら出てきますかね?
コールバック関数を使う関数を作りたいのですが、どう書けばよいのか分かりません。
検索しても既存のコールバック関数を伴う関数の使い方(setTimeout()の使い方など)ばっかり出てきて
そういう関数の「作り方」が出てこないのです…
早い話がsetTimeout()のような関数本体の方を作り、書きたいのですが
どうすればいいんでしょうか? どう検索したら出てきますかね?
2019/03/15(金) 12:13:05.56ID:???
コールバック関数を使う関数
function(func){
func()
}
function(func){
func()
}
2019/03/15(金) 12:15:35.98ID:???
var コールバック使う関数 = function(コールバック) {
var コールバック使う関数が用意するデータ = 'hello, ';
var result = コールバック(コールバック使う関数が用意するデータ);
return result;
};
使い方:
var 文字列の長さを返す関数 = function(文字列) {
return 文字列.length;
};
var 文字列の後ろにworld足して返す関数 = function(文字列) {
return 文字列 + 'world';
};
console.log(コールバック使う関数(文字列の長さを返す関数));
//=> 7
console.log(コールバック使う関数(文字列の後ろにworld足して返す関数));
//=> hello, world
var コールバック使う関数が用意するデータ = 'hello, ';
var result = コールバック(コールバック使う関数が用意するデータ);
return result;
};
使い方:
var 文字列の長さを返す関数 = function(文字列) {
return 文字列.length;
};
var 文字列の後ろにworld足して返す関数 = function(文字列) {
return 文字列 + 'world';
};
console.log(コールバック使う関数(文字列の長さを返す関数));
//=> 7
console.log(コールバック使う関数(文字列の後ろにworld足して返す関数));
//=> hello, world
2019/03/15(金) 12:35:44.33ID:???
>>348-348
ありがとうございます!完全に分かりました。助かります…
ありがとうございます!完全に分かりました。助かります…
2019/03/15(金) 13:39:00.60ID:???
JavaScript のthis は、global のwindow などを指してしまうから、クソ仕様
だから、jQuery, Haxe では、this を修正している
だから、jQuery, Haxe では、this を修正している
2019/03/15(金) 13:44:52.34ID:???
Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww
def add(a, b)
a + b
end
def opTwo(a, b, func)
func(a, b)
end
p opTwo(1, 2, add)
=> Line 9:in `add': wrong number of arguments (0 for 2) (ArgumentError)
from t.rb:9
プギャーm9(^Д^ )
ちなみにPython:
def add(a, b):
return a + b
def opTwo(a, b, func):
return func(a, b)
print(opTwo(1, 2, add))
=> 3
ちなみにJavascript:
function add(a, b) {
return a + b;
}
function opTwo(a, b, func) {
return func(a, b);
}
console.log(opTwo(1, 2, add))
=> 3
def add(a, b)
a + b
end
def opTwo(a, b, func)
func(a, b)
end
p opTwo(1, 2, add)
=> Line 9:in `add': wrong number of arguments (0 for 2) (ArgumentError)
from t.rb:9
プギャーm9(^Д^ )
ちなみにPython:
def add(a, b):
return a + b
def opTwo(a, b, func):
return func(a, b)
print(opTwo(1, 2, add))
=> 3
ちなみにJavascript:
function add(a, b) {
return a + b;
}
function opTwo(a, b, func) {
return func(a, b);
}
console.log(opTwo(1, 2, add))
=> 3
2019/03/15(金) 13:48:49.73ID:???
2019/03/15(金) 14:01:38.57ID:???
やり方?
あるよねーいっぱいw
def 、proc、Proc.new、->、lambda、ブロック、・・挙動と使いどころの異なるこれら関数ライクを使いこなし、
==、===、eql?、equal?の違いと使いどころを完璧に把握しているRuby信者wwwww
あるよねーいっぱいw
def 、proc、Proc.new、->、lambda、ブロック、・・挙動と使いどころの異なるこれら関数ライクを使いこなし、
==、===、eql?、equal?の違いと使いどころを完璧に把握しているRuby信者wwwww
2019/03/15(金) 14:03:38.05ID:???
>>345
逆ギレワロタw
逆ギレワロタw
2019/03/15(金) 15:21:31.66ID:???
スクリプト内部でcreateElement('canvas')として動的にキャンバス要素を作成しているのですが、このキャンバスを右クリック、「名前をつけて画像を保存」を選択すると、すべてのファイル(*.*)となってしまいます。
jpegやpng形式で保存出来るようにしたいのですが、どうすればいいのでしょうか? どなたか教えて下さい。
使用しているブラウザはグーグルクロームです。
jpegやpng形式で保存出来るようにしたいのですが、どうすればいいのでしょうか? どなたか教えて下さい。
使用しているブラウザはグーグルクロームです。
2019/03/15(金) 15:31:35.89ID:???
保存ボタン付けるならやったことあるけど右クリックか。
どうやるんだろ?
どうやるんだろ?
2019/03/15(金) 18:03:13.99ID:???
2019/03/15(金) 20:26:29.49ID:???
>>343
thisは全ての関数内でキーワードとして動作する
だから「持つ」「持たない」というとそういう仕組みを持っているのかの話と
取られかねないのでオススメしない
thisキーワードは[[ThisValue]]が束縛され得る最も近いスコープを検索して
その[[ThisValue]]を参照しようとする
アロー関数の関数スコープは束縛しない事になっているので検索から外される
thisは全ての関数内でキーワードとして動作する
だから「持つ」「持たない」というとそういう仕組みを持っているのかの話と
取られかねないのでオススメしない
thisキーワードは[[ThisValue]]が束縛され得る最も近いスコープを検索して
その[[ThisValue]]を参照しようとする
アロー関数の関数スコープは束縛しない事になっているので検索から外される
359Name_Not_Found
2019/03/15(金) 23:42:16.73ID:i8BKzs9E 何を言ってるのか分からんが、少なくとも俺はアロー演算子を使わない方が良さそうということだけよく分かる
2019/03/15(金) 23:57:46.29ID:???
なんでやねんw
2019/03/16(土) 04:50:02.55ID:???
function hoge(){}
↑
hogeはwindow(global)のメソッドだからthisはwindow
var A = {
hoge : function(){}
};
↑
hogeはAのメソッドだからthisはA
var img = document.querySelector('#img');
img.addEventListener('click', A.hoge);
img.addEventListener('click', function(){ });
↑
imgにA.hogeという関数がバインドされて実行されるからthisはimg
ただし
img.addEventListener('click', () => { });
↑
アローの場合は、ひとつ上のスコープのthis
て理解であってますか?
↑
hogeはwindow(global)のメソッドだからthisはwindow
var A = {
hoge : function(){}
};
↑
hogeはAのメソッドだからthisはA
var img = document.querySelector('#img');
img.addEventListener('click', A.hoge);
img.addEventListener('click', function(){ });
↑
imgにA.hogeという関数がバインドされて実行されるからthisはimg
ただし
img.addEventListener('click', () => { });
↑
アローの場合は、ひとつ上のスコープのthis
て理解であってますか?
2019/03/16(土) 05:25:00.08ID:???
>>361
> var A = {
> hoge : function(){}
> };
>↑
>hogeはAのメソッドだからthisはA
A.hoge()で呼び出される限りにおいてはYes。
「FunctionオブジェクトがAのhogeプロパティに設定されている」だけで
必ずしも「Functionオブジェクトを呼び出したときのthisがAになる」わけではない
この辺がクラスベース言語のインスタンスメソッドとは違うので、混乱しやすいとこですね
> var A = {
> hoge : function(){}
> };
>↑
>hogeはAのメソッドだからthisはA
A.hoge()で呼び出される限りにおいてはYes。
「FunctionオブジェクトがAのhogeプロパティに設定されている」だけで
必ずしも「Functionオブジェクトを呼び出したときのthisがAになる」わけではない
この辺がクラスベース言語のインスタンスメソッドとは違うので、混乱しやすいとこですね
2019/03/16(土) 06:34:10.21ID:???
コールバック関数って数Vに出てきた合成関数みたいな認識でいいんですかね?
2019/03/16(土) 06:40:46.53ID:???
>>361
globalになるのは、非Strict Modeのみ
globalになるのは、非Strict Modeのみ
2019/03/16(土) 06:56:55.24ID:???
>>361
違う
thisは関数の呼ばれ方によって決まって
「.」演算子によってReference内部型が作られるときに決まる
直に呼ぶとsloppy modeのときはglobalになるという決まりなだけ
簡単に言うとobj.func()と呼んだ時onjがthisになるというだけ
thisは第0番目の引数とでも思えば良い
違う
thisは関数の呼ばれ方によって決まって
「.」演算子によってReference内部型が作られるときに決まる
直に呼ぶとsloppy modeのときはglobalになるという決まりなだけ
簡単に言うとobj.func()と呼んだ時onjがthisになるというだけ
thisは第0番目の引数とでも思えば良い
2019/03/16(土) 07:48:03.97ID:???
>>363
見た目はそうだけど、そう言って良いもんかどうか
まあ引数に関数渡して、そっちで実行してねってやつだよ
例えば関数Aの後に関数Bを実行したいけど、Aが
function A(){
setTimeout(function(){
// ふはははは、いつ終わるかわかるまい!
}, Math.floor( Math.random() * 1000 ));
}
こんなのだと、Bをいつ発火させればいいかわからん
そんなとき
function A( callback ){
setTimeout(function(){
// おわたぁ!
callback();
}, Math.floor( Math.random() * 1000 ));
}
こうしておいて
A( B );
ってすれば、ちゃんとAが終わってからBが発火する、よね!
って考え方がコールバック
見た目はそうだけど、そう言って良いもんかどうか
まあ引数に関数渡して、そっちで実行してねってやつだよ
例えば関数Aの後に関数Bを実行したいけど、Aが
function A(){
setTimeout(function(){
// ふはははは、いつ終わるかわかるまい!
}, Math.floor( Math.random() * 1000 ));
}
こんなのだと、Bをいつ発火させればいいかわからん
そんなとき
function A( callback ){
setTimeout(function(){
// おわたぁ!
callback();
}, Math.floor( Math.random() * 1000 ));
}
こうしておいて
A( B );
ってすれば、ちゃんとAが終わってからBが発火する、よね!
って考え方がコールバック
2019/03/16(土) 07:58:29.93ID:???
数学の合成関数ってのは
x = y + 1 = f(y)、 y = z - 1 = g(z)
としたとき
x = f( g(z) )
と出来るねって話
これをプログラムっぽく書くと
function f(y){ return y + 1; }
function g(z){ return z - 1; }
x = f( g(z) );
こんな感じになる
これは関数fの引数に、関数gを実行した結果を渡しているわけであって
関数gを渡しているわけではない
のでこれはコールバックとは呼ばない、と思う
x = y + 1 = f(y)、 y = z - 1 = g(z)
としたとき
x = f( g(z) )
と出来るねって話
これをプログラムっぽく書くと
function f(y){ return y + 1; }
function g(z){ return z - 1; }
x = f( g(z) );
こんな感じになる
これは関数fの引数に、関数gを実行した結果を渡しているわけであって
関数gを渡しているわけではない
のでこれはコールバックとは呼ばない、と思う
2019/03/16(土) 08:00:06.25ID:???
数学の「=」は等号だけど
プログラムの「=」は代入なので
そのへん気をつけて
プログラムの「=」は代入なので
そのへん気をつけて
2019/03/16(土) 20:29:39.66ID:???
漫画のコマ割りツールを作ろうとしているのですが
(1)テンプレート(ブログのカラムみたいな)方式
・1ページ分、コマ単体の中にさらにテンプレートを用意、みたいな
・テンプレート以外の微妙な調整ができない
(2)mousemoveなりで(居合斬りみたいに)直線で切り分け方式
・割った部分だけの削除後の再描画のアルゴリズムがよくわからない
・柔軟性あり
(3)線描画ツール方式
・特定の図形を描画できる
・テンプレート式だが柔軟性もある
・目視配置なのでズレが気になる(マス目内だけを移動するように補正すればよいかも)
を考えてみました(まだ作っていない)
何か効率の良いアイデアはないでしょうか?
(おそらく普通?は(2)のシミュレーション方式で、canvasに再描画する感じで
コマと枠線を選択し編集できる機能を別々に作ってー、という風にすると思うのですが
せっかくなのでブラウザとかHTMLやCSSをうまく組み合わせて効率よくできないものかと思ったのです)
すでに作ったもので言えば、DOM要素に横割り縦割り機能をつけ
要素を割ったら(要素の中に要素を作る)その中の要素にも縦横割り機能がつく、をループ(比率調整付き)
みたいなのは作ったのですが、垂直割りしかできないのでなんか今一です(キャプチャはブラウザの拡張)
要素を台形とかにできれば良いのですが・・
(1)テンプレート(ブログのカラムみたいな)方式
・1ページ分、コマ単体の中にさらにテンプレートを用意、みたいな
・テンプレート以外の微妙な調整ができない
(2)mousemoveなりで(居合斬りみたいに)直線で切り分け方式
・割った部分だけの削除後の再描画のアルゴリズムがよくわからない
・柔軟性あり
(3)線描画ツール方式
・特定の図形を描画できる
・テンプレート式だが柔軟性もある
・目視配置なのでズレが気になる(マス目内だけを移動するように補正すればよいかも)
を考えてみました(まだ作っていない)
何か効率の良いアイデアはないでしょうか?
(おそらく普通?は(2)のシミュレーション方式で、canvasに再描画する感じで
コマと枠線を選択し編集できる機能を別々に作ってー、という風にすると思うのですが
せっかくなのでブラウザとかHTMLやCSSをうまく組み合わせて効率よくできないものかと思ったのです)
すでに作ったもので言えば、DOM要素に横割り縦割り機能をつけ
要素を割ったら(要素の中に要素を作る)その中の要素にも縦横割り機能がつく、をループ(比率調整付き)
みたいなのは作ったのですが、垂直割りしかできないのでなんか今一です(キャプチャはブラウザの拡張)
要素を台形とかにできれば良いのですが・・
2019/03/16(土) 20:36:49.93ID:???
2019/03/16(土) 20:53:51.27ID:???
Assignment Operators
Syntax
https://www.ecma-international.org/ecma-262/5.1/#sec-11.13
JSで参照になるのはArrayや関数含めたオブジェクトで、数値やtrue/falseなどのプリミティブ値は値で、文字列はちょっと特殊じゃなかったっけ。
本当に全部参照になってるのはPythonだった気がする
Syntax
https://www.ecma-international.org/ecma-262/5.1/#sec-11.13
JSで参照になるのはArrayや関数含めたオブジェクトで、数値やtrue/falseなどのプリミティブ値は値で、文字列はちょっと特殊じゃなかったっけ。
本当に全部参照になってるのはPythonだった気がする
2019/03/16(土) 21:03:22.23ID:???
2019/03/16(土) 21:05:46.41ID:???
>>371
JSに参照とかはない(Reference型はあるが)
値は基本的に複製されることはなく
すべて同一存在の名前付けの連鎖でしかない
要するにお前が会社ではタッ君と呼ばれ、家ではターちゃんと呼ばれてるのと同じ
JSに参照とかはない(Reference型はあるが)
値は基本的に複製されることはなく
すべて同一存在の名前付けの連鎖でしかない
要するにお前が会社ではタッ君と呼ばれ、家ではターちゃんと呼ばれてるのと同じ
2019/03/16(土) 21:26:22.98ID:???
あんまり触らないほうがよさそうだな
2019/03/16(土) 21:39:16.61ID:???
変に他の言語に引っ張らなければJavaScriptはシンプルでわかりやすい言語だと思うけどなぁ
2019/03/17(日) 00:27:38.62ID:???
>>369
何かの図形描画ツールを参考にすれば?
何かの図形描画ツールを参考にすれば?
377Name_Not_Found
2019/03/17(日) 10:46:23.51ID:oYnZimu7 今jsのロクでも無い部分ってあるのかな
昔はundefinedがうんちだった
昔はundefinedがうんちだった
2019/03/17(日) 11:53:16.69ID:???
undefinedなんて実際に問題になることなかったろ
undefinedに何か代入するとかワザと壊しにかかってるんだからその結果壊れても問題ないでしょ
他にも置き換えられたら困るものなんて無数にあるんだし
undefinedに何か代入するとかワザと壊しにかかってるんだからその結果壊れても問題ないでしょ
他にも置き換えられたら困るものなんて無数にあるんだし
2019/03/17(日) 11:58:56.33ID:???
他の言語は知らんがjsは基本
昔動いてたコードは今も動く
動いてたうんちコードは今も動くはず
'use strict'がなければundefined = 'puyopuyo'も
昔動いてたコードは今も動く
動いてたうんちコードは今も動くはず
'use strict'がなければundefined = 'puyopuyo'も
2019/03/17(日) 13:08:53.43ID:???
node.jsの使い途が分からない。
2019/03/17(日) 14:31:49.75ID:???
>>380
使わなきゃいいじゃん
使わなきゃいいじゃん
2019/03/17(日) 16:50:28.45ID:???
使いみちが分からんものを使ってみるのも大事だぞ
そのときには使えなくても後々使うかもしれない
そのときには使えなくても後々使うかもしれない
383Name_Not_Found
2019/03/17(日) 17:18:44.38ID:RNotdYYW node.jsは一度使っておいたほうが良い
2019/03/17(日) 19:26:56.07ID:???
Node.js、コマンドラインでは毎日使ってるし
(ただ単にバッチファイルをダブルクリックしたら起動してファイルを生成してくれるってだけだけど)
一応localhostでなんやかんやするやつのチュートリアルもやったけど
それらを組み合わせて色々するとなると、コールバック地獄とか大変だと聞くので
なかなか重い腰が上がらずにいる
うまく使えたらすごく良さそうだと思うんだけど
このへんどこで学んだらいいものか
(ただ単にバッチファイルをダブルクリックしたら起動してファイルを生成してくれるってだけだけど)
一応localhostでなんやかんやするやつのチュートリアルもやったけど
それらを組み合わせて色々するとなると、コールバック地獄とか大変だと聞くので
なかなか重い腰が上がらずにいる
うまく使えたらすごく良さそうだと思うんだけど
このへんどこで学んだらいいものか
2019/03/17(日) 21:20:14.86ID:???
JSでclip-pathを操作したいのですが、検証ツールで見ると「at center center」というおかしな値になってしまっています。
JSで設定できないCSSプロパティがあるということでしょうか?
https://jsfiddle.net/0vrcehsf/1/
JSで設定できないCSSプロパティがあるということでしょうか?
https://jsfiddle.net/0vrcehsf/1/
2019/03/17(日) 22:57:03.93ID:???
VSCode で、Code Runner という拡張機能を入れて、右クリックメニューまたは、
Ctrl+Shift+P から、Run Code で、node.js で実行される
node は、npm, yarn を使うのに必須だから
他にも、webpack, babel, vue.js なども、たぶん、node が必須だろ
Ctrl+Shift+P から、Run Code で、node.js で実行される
node は、npm, yarn を使うのに必須だから
他にも、webpack, babel, vue.js なども、たぶん、node が必須だろ
387Name_Not_Found
2019/03/18(月) 02:14:35.81ID:NS7cgoce 変数aがあるとして
aが負の数(-700など)だったなら-1に
aが正の数(329など)だったなら1に
変換したいのですが、どうすればいいですか?
aが負の数(-700など)だったなら-1に
aが正の数(329など)だったなら1に
変換したいのですが、どうすればいいですか?
2019/03/18(月) 02:30:12.32ID:???
Math.sign(a)
2019/03/18(月) 06:47:25.25ID:???
同期処理と非同期処理がよくわかりません
iframe使ったら勝手に非同期処理になるんですか?
iframe使ったら勝手に非同期処理になるんですか?
2019/03/18(月) 07:09:52.54ID:???
a>0?1:a<0?-1:0
2019/03/18(月) 17:38:35.25ID:???
まぁ0きたときに微妙かもしれんが
2019/03/18(月) 17:45:45.85ID:???
(a<0)*-1||1
2019/03/18(月) 17:47:36.61ID:???
>>390 みたいなことしたら何かマズいのか?
2019/03/18(月) 17:48:41.26ID:???
396Name_Not_Found
2019/03/18(月) 18:01:33.54ID:1/b8FMfj2019/03/18(月) 18:09:51.31ID:???
signはIEで動かなかった思い出
今は大丈夫かな?
今は大丈夫かな?
2019/03/18(月) 18:12:19.37ID:???
ぶっちゃけIEよりfirefoxの方が上手くJS動かないこと多くない?
IE10以下は論外として
IE10以下は論外として
2019/03/18(月) 19:06:34.58ID:???
signと三角関数のsinを勘違いしている幼稚園児が約一名いるなw
2019/03/18(月) 19:18:56.62ID:???
Math.signumじゃいかんかったんかね
他にsignumをsignって書く言語あったっけ?
他にsignumをsignって書く言語あったっけ?
2019/03/18(月) 20:00:11.87ID:???
>>393
これはどうして動くの
これはどうして動くの
2019/03/18(月) 20:16:12.55ID:???
3つしか演算子ないんだから
流石に自分でいろんな場合考えてみようぜ
流石に自分でいろんな場合考えてみようぜ
2019/03/18(月) 20:17:46.82ID:???
>>401
論理演算子 ||(or)は
expr1 || expr2 としたとき
expr1がfalseとみなせる値の時、expr2を返す
falseとみなされるのは
0、-0、false、null、undefined、NaN、空文字
aが正のとき、カッコがfalseつまり0なので
0 || 1 となり、0はfalseとみなされ1が返る
aが負のとき、カッコがtrueつまり1なので
-1 || 1 となり、-1はfalseとみなされないので-1が返る
論理演算子 ||(or)は
expr1 || expr2 としたとき
expr1がfalseとみなせる値の時、expr2を返す
falseとみなされるのは
0、-0、false、null、undefined、NaN、空文字
aが正のとき、カッコがfalseつまり0なので
0 || 1 となり、0はfalseとみなされ1が返る
aが負のとき、カッコがtrueつまり1なので
-1 || 1 となり、-1はfalseとみなされないので-1が返る
2019/03/18(月) 20:25:56.89ID:???
NaNとかもあるから
a>0?1:a<0?-1:a
か
+a>0?1:+a<0?-1:+a
の方が良いだろうな
a>0?1:a<0?-1:a
か
+a>0?1:+a<0?-1:+a
の方が良いだろうな
2019/03/18(月) 20:37:27.77ID:???
(a>0)-(a<0)
が一番わかり易いでしょ
が一番わかり易いでしょ
2019/03/18(月) 20:44:14.80ID:???
>>405
すばらしい
すばらしい
2019/03/18(月) 20:54:23.12ID:???
結局signのpolyfillやないかい
2019/03/18(月) 21:05:02.19ID:???
それがどうかしたのか?
2019/03/18(月) 21:08:59.06ID:???
なんとか10文字に小さくできた
-(a<0>0)|1
-(a<0>0)|1
2019/03/18(月) 21:10:26.37ID:???
と思ったら8文字でもいけたわ
-(a<0)|1
-(a<0)|1
2019/03/18(月) 21:49:44.05ID:???
7文字
a>>31|1
a>>31|1
2019/03/18(月) 22:09:43.39ID:???
さぁ!6文字誰かいないかい?
7文字で終わりなのかい!?
7文字で終わりなのかい!?
2019/03/18(月) 22:20:04.18ID:???
2019/03/18(月) 22:55:03.55ID:???
a=-100000000000000000000000000;
がだめじゃん
まぁガバガバだけどそこそこ動けばいいレベルだと7文字限界っぽいな
がだめじゃん
まぁガバガバだけどそこそこ動けばいいレベルだと7文字限界っぽいな
2019/03/18(月) 23:26:54.17ID:???
6文字
a/~a|1
a/~a|1
2019/03/18(月) 23:28:06.07ID:???
2019/03/18(月) 23:36:18.95ID:???
2019/03/18(月) 23:47:54.91ID:???
残念ながらNaNに対応できていない
2019/03/18(月) 23:52:24.69ID:???
Math.sign含むMath関数はBigIntなどNumber以外の数値を受け付けないという致命的な欠点がある
2019/03/18(月) 23:58:51.06ID:???
BigMathできるのかと思ったけどstandard libraryまで待つことになりそうだな
2019/03/19(火) 00:12:45.40ID:???
2019/03/19(火) 01:06:23.68ID:???
それだとInfinityがNaNになる
2019/03/20(水) 10:54:08.67ID:???
スマホ(android)でもjavaScriptの勉強がしたいのですが、使いやすい出力アプリ?はありますか?
ブラウザで出力できるのならそれでも良いのですが、なかなか難しいようで…
ブラウザで出力できるのならそれでも良いのですが、なかなか難しいようで…
424Name_Not_Found
2019/03/20(水) 10:59:09.00ID:9YLktb+I2019/03/20(水) 11:20:55.93ID:???
2019/03/20(水) 11:55:51.31ID:???
なぜあえてそんな苦行を…
2019/03/20(水) 12:09:30.47ID:???
ホリエモンの影響だろうな
スマホでなんでもやっていくスタイルには賛成だが
少なくともjavascriptのコーディングをスマホのみでやるのは数年早い
フォークしてコピペや改変くらいならまだしも
スマホでなんでもやっていくスタイルには賛成だが
少なくともjavascriptのコーディングをスマホのみでやるのは数年早い
フォークしてコピペや改変くらいならまだしも
2019/03/20(水) 12:46:23.84ID:???
俺はガキの頃ガラケーのフルブラウザから始めたぞ
大丈夫、できるよ
大丈夫、できるよ
429Name_Not_Found
2019/03/20(水) 13:13:03.49ID:9YLktb+I 紙とペンの方がマシなレベル
430Name_Not_Found
2019/03/20(水) 20:59:06.50ID:/d+gyT6p Blutoothキーボードだって繋げられるんだし、何も問題はない
2019/03/23(土) 22:22:40.79ID:???
スマホでもIDEの補完並みのIMEがあればできるかもな あるのか?
2019/03/24(日) 01:09:04.99ID:???
いらんでしょ
昔はメモ帳で書く人も多かったんだし
制約が多い中頑張ることは変な癖がつくけどそれはプラスにもなる
昔はメモ帳で書く人も多かったんだし
制約が多い中頑張ることは変な癖がつくけどそれはプラスにもなる
2019/03/24(日) 11:35:11.49ID:???
すみません初心者の質問ですが
あるelementAが存在するかしないか分からない時に、
var element=elementA;
elemet.style.display="none";
というふうに書くとelementが要素でないのでstyleがundefinedになるので2行目の時点でエラーになってしまいますよね。
こういう時に「要素があれば指定の処理をする、なければ何もしない、エラーは出さない」ようにするには
var element=elementA;
if(element)elemet.style.display="none";
というふうに書くしかないのでしょうか?もう少し簡潔に書く方法とかあったりしないのでしょうか
あるelementAが存在するかしないか分からない時に、
var element=elementA;
elemet.style.display="none";
というふうに書くとelementが要素でないのでstyleがundefinedになるので2行目の時点でエラーになってしまいますよね。
こういう時に「要素があれば指定の処理をする、なければ何もしない、エラーは出さない」ようにするには
var element=elementA;
if(element)elemet.style.display="none";
というふうに書くしかないのでしょうか?もう少し簡潔に書く方法とかあったりしないのでしょうか
2019/03/24(日) 11:36:31.84ID:???
>>433
すみません
x というふうに書くとelementが要素でないのでstyleがundefinedになるので2行目の時点でエラーになってしまいますよね。
o というふうに書くとelementAが存在しない場合はelementが要素でなくなるのでstyleがundefinedになるので2行目の時点でエラーになってしまいますよね。
です
すみません
x というふうに書くとelementが要素でないのでstyleがundefinedになるので2行目の時点でエラーになってしまいますよね。
o というふうに書くとelementAが存在しない場合はelementが要素でなくなるのでstyleがundefinedになるので2行目の時点でエラーになってしまいますよね。
です
2019/03/24(日) 14:39:16.19ID:???
>>433
十分簡潔だと思うけど……
十分簡潔だと思うけど……
2019/03/24(日) 14:40:07.19ID:???
あーひょっとして
ver element = elementA?elementA:new Element()
みたいなことをしたいのかな
NullObject的な
ver element = elementA?elementA:new Element()
みたいなことをしたいのかな
NullObject的な
437Name_Not_Found
2019/03/24(日) 14:57:33.89ID:x5MsQlEw ダミー要素を入れておくって手法も
2019/03/24(日) 15:12:37.29ID:???
function ignore (f) {
try { return f(); } catch(e) {} ;
}
ignore(() => {
var element =elementA;
element.styke.display = "none";
});
try { return f(); } catch(e) {} ;
}
ignore(() => {
var element =elementA;
element.styke.display = "none";
});
2019/03/24(日) 16:03:41.23ID:???
jQuery厨さんの出番のような気がするけど今日はいないのかな?
440Name_Not_Found
2019/03/24(日) 19:23:39.54ID:H9PUHQN+ stykeってstrikeみたいでかっこいい
2019/03/24(日) 21:41:37.21ID:???
>>439
呼んだ?w
>>433
jQueryの設計は
1. セレクタで検索する
2. 「0個以上のマッチした要素」であるjQueryオブジェクトが作られる
3. そのjQueryオブジェクトに対してメソッドを呼び出すと、
「0個以上のマッチした要素」全体に対して処理が適用される。
つまり存在してもしなくても同じように処理をかけて
要素がなければないでエラーにならないという設計だよ。
CSSと同じだね。(CSSも要素がなくてもエラーにならない)
>>433の例だと以下のように簡潔に書ける。
$(elementA).css({display: 'none');
ただ普通はこのようには書かない。
一般的には $(elementA) ではなく、$('.foo') みたいなセレクタを書くし
CSSを直接いじるのではなく $(・・・).addClass('bar'); みたいにクラス名をつけ外しして
CSS側で .bar { display: none } みたいに書く
なお >>438 はありえないクソコード
呼んだ?w
>>433
jQueryの設計は
1. セレクタで検索する
2. 「0個以上のマッチした要素」であるjQueryオブジェクトが作られる
3. そのjQueryオブジェクトに対してメソッドを呼び出すと、
「0個以上のマッチした要素」全体に対して処理が適用される。
つまり存在してもしなくても同じように処理をかけて
要素がなければないでエラーにならないという設計だよ。
CSSと同じだね。(CSSも要素がなくてもエラーにならない)
>>433の例だと以下のように簡潔に書ける。
$(elementA).css({display: 'none');
ただ普通はこのようには書かない。
一般的には $(elementA) ではなく、$('.foo') みたいなセレクタを書くし
CSSを直接いじるのではなく $(・・・).addClass('bar'); みたいにクラス名をつけ外しして
CSS側で .bar { display: none } みたいに書く
なお >>438 はありえないクソコード
2019/03/25(月) 00:26:44.23ID:???
これだけのためにわざわざ何KBもあるコードを導入しないといけない案の方が遥かにクソだけどな
443Name_Not_Found
2019/03/25(月) 00:31:28.97ID:cn8CNW4E2019/03/25(月) 04:24:51.14ID:???
Kotlin の、?: エルビス演算子みたいな奴だろ
2019/03/25(月) 08:06:16.57ID:???
433ですありがとうございます
>>435
beautifyをかけた時に2行に分かれてしまうのがイヤだったり(そんな重要な部分じゃないのでソース上で場所とったり変に目立ったりして欲しくない)
同じ変数名を1度以上書きたくなかったり(そこが変数じゃなかったり変数名が長かった場合かさばるから)
して、まさにjQueryみたいに反応してほしいんですよね。むしろ直接
elementA.style.display="none";
と書いて、elementAが存在しなかったりエレメントじゃなかったりすれば何もせず素通りしてほしいぐらいなんです。
(elementA?).style.display="none"; とか
if(elementA).style.display="none";
みたいな書き方が(空想ですが)あればいいんですが。
>>436
そうですね、そんなふうに1行にまとめる書き方でelementAを2度書かなくてすむ書き方があれば知りたいです…
>>435
beautifyをかけた時に2行に分かれてしまうのがイヤだったり(そんな重要な部分じゃないのでソース上で場所とったり変に目立ったりして欲しくない)
同じ変数名を1度以上書きたくなかったり(そこが変数じゃなかったり変数名が長かった場合かさばるから)
して、まさにjQueryみたいに反応してほしいんですよね。むしろ直接
elementA.style.display="none";
と書いて、elementAが存在しなかったりエレメントじゃなかったりすれば何もせず素通りしてほしいぐらいなんです。
(elementA?).style.display="none"; とか
if(elementA).style.display="none";
みたいな書き方が(空想ですが)あればいいんですが。
>>436
そうですね、そんなふうに1行にまとめる書き方でelementAを2度書かなくてすむ書き方があれば知りたいです…
2019/03/25(月) 09:10:57.61ID:???
?.
tc39で提案されてると思う
tc39で提案されてると思う
2019/03/25(月) 09:18:32.06ID:???
>>445
どちらかといえば、変数 element が100%要素ノードになるようにコードを組むか、要素ノードでない場合にTypeErrorを返す方が厳密動作で俺は好きだけどな
(バリデーションするなら、Object.getPrototypeOfとか、nodeTypeとか、tagNameとか、いろいろあるが)
君のやりたいことを実現するには、setProperty(element, 'style.display', 'none') をユーザ定義すれば良い
だが、呼び出すごとに2の乗数分の組み合わせが出来るから、そこを考慮してアルゴリズムを考える手間が必要
どちらかといえば、変数 element が100%要素ノードになるようにコードを組むか、要素ノードでない場合にTypeErrorを返す方が厳密動作で俺は好きだけどな
(バリデーションするなら、Object.getPrototypeOfとか、nodeTypeとか、tagNameとか、いろいろあるが)
君のやりたいことを実現するには、setProperty(element, 'style.display', 'none') をユーザ定義すれば良い
だが、呼び出すごとに2の乗数分の組み合わせが出来るから、そこを考慮してアルゴリズムを考える手間が必要
448Name_Not_Found
2019/03/25(月) 11:45:03.06ID:BIWwjtgP 質問です。
1=ニューヨーク
2=東京
3=パリ
として、1,2,3みたいな文字列を
ニューヨーク,東京,パリ
という風に置き換えるにはどうすれば良いですか?
1000個以上あって全部replaceだととんでもない長さになるので、良い方法を探しています。
1=ニューヨーク
2=東京
3=パリ
として、1,2,3みたいな文字列を
ニューヨーク,東京,パリ
という風に置き換えるにはどうすれば良いですか?
1000個以上あって全部replaceだととんでもない長さになるので、良い方法を探しています。
449Name_Not_Found
2019/03/25(月) 11:54:24.22ID:cn8CNW4E 真っ先に思いついたのはメソッドチェーンだけど、1000個つなげるとエラーが出る気がして仕方がない
ソースの時点で書き換えるのはダメなの?
ソースの時点で書き換えるのはダメなの?
2019/03/25(月) 12:09:20.31ID:???
1000個くらいなら配列にしてmapしてもっかい文字列に戻せばええんちゃう?
2019/03/25(月) 12:21:43.37ID:???
>>448
string.replace(/\d+/g, n => hash[n]);
string.replace(/\d+/g, n => hash[n]);
2019/03/25(月) 12:26:31.76ID:???
var str = '1,2,3';
var map = {
'1':'ニューヨーク',
'2':'東京',
'3':'パリ'
};
var newstr = str.replace(/\d+/g, function(match){
if(match in map){
return map[match];
}
});
var map = {
'1':'ニューヨーク',
'2':'東京',
'3':'パリ'
};
var newstr = str.replace(/\d+/g, function(match){
if(match in map){
return map[match];
}
});
2019/03/25(月) 12:29:43.99ID:???
>>448
const cities = [, 'ニューヨーク', '東京', 'パリ'];
const nStr = '1,2,3';
const cStr = nStr.split `,`.map(n => cities[n]).join();
console.log(cStr);
\\=> ニューヨーク,東京,パリ
const cities = [, 'ニューヨーク', '東京', 'パリ'];
const nStr = '1,2,3';
const cStr = nStr.split `,`.map(n => cities[n]).join();
console.log(cStr);
\\=> ニューヨーク,東京,パリ
2019/03/25(月) 13:29:35.43ID:???
>>452
間違えた。訂正
var str = '1,2,3';
var map = {
'1':'ニューヨーク',
'2':'東京',
'3':'パリ'
};
var newstr = str.replace(/\d/g, function(match){
return (match in map) ? map[match] : match;
});
間違えた。訂正
var str = '1,2,3';
var map = {
'1':'ニューヨーク',
'2':'東京',
'3':'パリ'
};
var newstr = str.replace(/\d/g, function(match){
return (match in map) ? map[match] : match;
});
2019/03/25(月) 17:24:01.81ID:???
みなさま有難うございます。凄く助かりました。お陰様で理解が出来ましたので、次に進めそうです。
2019/03/26(火) 01:04:31.30ID:???
まあ、\d の所は、2桁以上にも対応するように、\d+ の方が良い
それにわざわざ、str で数字を定義しなくても、
map のすべてのキー・値を取り出せば、良いのでは?
それにわざわざ、str で数字を定義しなくても、
map のすべてのキー・値を取り出せば、良いのでは?
2019/03/26(火) 03:01:27.38ID:???
1000個くらいなら何してもいいよ
JSは最も高速なメジャー汎用スクリプト言語の一つなのだから
JSは最も高速なメジャー汎用スクリプト言語の一つなのだから
458Name_Not_Found
2019/03/26(火) 08:13:40.39ID:6Cs6H7nz チェーンメソッドを1000個繋いでも特に問題はない?
なんとなくだけどメモリを多く消費するイメージがある
なんとなくだけどメモリを多く消費するイメージがある
2019/03/26(火) 09:52:19.52ID:???
チェーンしないでいちいち何かに入れた方が負荷高かったりと予想
2019/03/26(火) 11:49:00.29ID:???
負荷以前に、置換後の文字列を再置換するリスクを考慮すべき
461Name_Not_Found
2019/03/26(火) 23:54:01.48ID:NKxGekVn イベントに対し、ブラウザのデフォルト処理(htmlタグに備わった機能、return falseで無効にできたりするアレ)が起こったあとで何かすることってできないですか?
1. ユーザーがmousedownやkeydownする
2. それらに対してJSでイベントハンドラに設定された処理が実行される
3. ブラウザのデフォルトの処理
4. ユーザーがボタンやキーを離すまで何も起こらない(ドラッグとかするならここ)
5. ユーザーがmouseupやkeyupする
6. JS
7. ブラウザのデフォルトの処理
この一連の流れのうち、2と3を入れ替えるか
あるいは3と4の間にJSで何かしたいのですが…
setTimeoutを使った方法以外にないんですかね?
1. ユーザーがmousedownやkeydownする
2. それらに対してJSでイベントハンドラに設定された処理が実行される
3. ブラウザのデフォルトの処理
4. ユーザーがボタンやキーを離すまで何も起こらない(ドラッグとかするならここ)
5. ユーザーがmouseupやkeyupする
6. JS
7. ブラウザのデフォルトの処理
この一連の流れのうち、2と3を入れ替えるか
あるいは3と4の間にJSで何かしたいのですが…
setTimeoutを使った方法以外にないんですかね?
462461
2019/03/27(水) 00:02:17.74ID:uvZdVCXT 特にpasteイベントなんかは、せっかくあるのに
普通に使うとペーストされた文字列を取得できなかったりするので…(ペーストされる前に何かするだけ)
https://qiita.com/neko_the_shadow/items/c05a266075c08b73bddb
ここだとやっぱりsetTimeoutを使っているようですが
普通に使うとペーストされた文字列を取得できなかったりするので…(ペーストされる前に何かするだけ)
https://qiita.com/neko_the_shadow/items/c05a266075c08b73bddb
ここだとやっぱりsetTimeoutを使っているようですが
2019/03/28(木) 00:12:44.22ID:???
画像をダウンロードされたくない場合に、
画像上で、右クリックメニューを開かないように、return false とかにしてるサイトがあるけど、
確か、F12 開発者ツールを起動して、return false を削除すれば、
右クリックメニューが出るようになるから、画像をダウンロードできたと思う
また、jQuery などでDOM から、return false を削除できるかも知れない
画像上で、右クリックメニューを開かないように、return false とかにしてるサイトがあるけど、
確か、F12 開発者ツールを起動して、return false を削除すれば、
右クリックメニューが出るようになるから、画像をダウンロードできたと思う
また、jQuery などでDOM から、return false を削除できるかも知れない
464463
2019/03/28(木) 00:23:25.97ID:??? 漏れは、Ruby から、Powershell のGet-Clipboard, Set-Clipboard、
または、clip コマンドを呼び出して処理している。
VBScript などからも呼べる
コマンドプロンプトで、where clip で、
C:\Windows\System32\clip.exe
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip )
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
または、clip コマンドを呼び出して処理している。
VBScript などからも呼べる
コマンドプロンプトで、where clip で、
C:\Windows\System32\clip.exe
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip )
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
465Name_Not_Found
2019/03/28(木) 01:07:17.71ID:ZWPLcePw ちょっと教えて欲しいんだけど、
これからPWAの基本的な使い方を学習しようと思うのだけど、開発環境はどういうのが良いの?テキトーなエディタとブラウザで進める感じ?それともvisual studio codeとか?
ゆくゆくはVue.jsあたりでSPAに進んでいくつもりだけど、最初は簡単なサイト(HTML+CSS+JS)をPWA対応しながらPWAとServiceWorkerの使い方になれていきたいと思っている
質問者はpython使いでjavascriptは基本を抑えた程度。開発環境はpycharmとかVScodeのイメージはある一方で、JSでの開発経験はないからおかしいこと言ってるかもしれない
よろしくです。
これからPWAの基本的な使い方を学習しようと思うのだけど、開発環境はどういうのが良いの?テキトーなエディタとブラウザで進める感じ?それともvisual studio codeとか?
ゆくゆくはVue.jsあたりでSPAに進んでいくつもりだけど、最初は簡単なサイト(HTML+CSS+JS)をPWA対応しながらPWAとServiceWorkerの使い方になれていきたいと思っている
質問者はpython使いでjavascriptは基本を抑えた程度。開発環境はpycharmとかVScodeのイメージはある一方で、JSでの開発経験はないからおかしいこと言ってるかもしれない
よろしくです。
2019/03/28(木) 07:11:33.30ID:???
何でもいい
というか一番素朴にキャッシュにSWを使ったら
SPAである必要もないことも多い
キャッシュにあるってことは高速に切り替えられるってことだから
無理に既存の平凡なサイトをSPAという名のpjax対応しても体験は変わらない
そういう面ではPWAとSPAは競合しうる概念
でもゲームのようなSPAもあるしSWのキャッシュにしたって
ちょっと拘ると、ファイル種やディレクトリごとに挙動を調整したりしないといけないし
表と連携したり、基本はないし、フレームワークに適当に任せられるものでもないので難しい
というか一番素朴にキャッシュにSWを使ったら
SPAである必要もないことも多い
キャッシュにあるってことは高速に切り替えられるってことだから
無理に既存の平凡なサイトをSPAという名のpjax対応しても体験は変わらない
そういう面ではPWAとSPAは競合しうる概念
でもゲームのようなSPAもあるしSWのキャッシュにしたって
ちょっと拘ると、ファイル種やディレクトリごとに挙動を調整したりしないといけないし
表と連携したり、基本はないし、フレームワークに適当に任せられるものでもないので難しい
2019/03/28(木) 13:31:46.16ID:???
>>1
http://nowsmartsoft.atwebpages.com/
↑こういう ToolKit を作ってるんだけど、MIT/BSD系ライセンスでオープンソース
にしたら、興味ある人いるかな。
C++で、ブラウザとWindows nativeの両方で動くアプリがソース共通で作れるんだけど。
# 既に WebProg 板に板違いで投稿してまったけど、見逃して欲しい。
http://nowsmartsoft.atwebpages.com/
↑こういう ToolKit を作ってるんだけど、MIT/BSD系ライセンスでオープンソース
にしたら、興味ある人いるかな。
C++で、ブラウザとWindows nativeの両方で動くアプリがソース共通で作れるんだけど。
# 既に WebProg 板に板違いで投稿してまったけど、見逃して欲しい。
2019/03/28(木) 14:59:52.08ID:???
間に合ってます
2019/03/28(木) 18:22:51.05ID:???
demo1, demo2 と書かれたリンクをクリックしてみて。
以下からでも見れる:
http://nowsmartsoft.atwebpages.com/demo1/index.html
http://nowsmartsoft.atwebpages.com/demo2/index.html
以下からでも見れる:
http://nowsmartsoft.atwebpages.com/demo1/index.html
http://nowsmartsoft.atwebpages.com/demo2/index.html
2019/03/28(木) 18:25:57.30ID:???
言葉では分からないと思う。
実際に起動してみると、ブラウザの「中に」Windowが出てくるので
サイズを変更したり、タイトルバーをドラッグしたり、メニュー項目を
クリックしてみたり、その中にある 小さな Window をクリックして
文字を入力したりしてみて欲しい。
実際に起動してみると、ブラウザの「中に」Windowが出てくるので
サイズを変更したり、タイトルバーをドラッグしたり、メニュー項目を
クリックしてみたり、その中にある 小さな Window をクリックして
文字を入力したりしてみて欲しい。
2019/03/28(木) 18:26:25.44ID:???
間に合ってますんで…
2019/03/28(木) 18:29:57.91ID:???
アクセス解析でわかるんだが、いまだ、誰一人もまともに起動してみて無いんだよ。
一度は見てから決めてくれよ。
一度は見てから決めてくれよ。
2019/03/28(木) 19:08:24.06ID:???
2019/03/28(木) 19:15:39.79ID:???
475Name_Not_Found
2019/03/28(木) 19:21:31.80ID:zC5VHeSC >>467>>472
んじゃ評価するけど・・・
・まず見た目がひどすぎる。使わずに評価するなってお前、こんな見た目で誰が使うんだ
・技術的には素直に凄いと思う
・需要がない。現状、widowsネイティブで作る物が思い浮かばない。ちなみに俺はちょっとしたツールならvbaとVB.NET使ってる
・時期もあまりに遅い。15-20年前なら、フリゲとブラゲ両方同時に作れるって触れ込みでかなり需要があったと思うけど、今はその手のライブラリは山程あるしメインはスマホアプリとsteam。もっと早ければDXライブラリの代わりになれたかも知れない
・そのためにこのツールを使おうって気にはならない事は、説明読めば大体分かるんだけど使ってみても意見が変わらなかった
ツールを作る事自体は悪い事じゃないけど、もう少しコンセプト(どんな物を作るのに向いているか)を考えた方が良いと思う
あと、「使って下さい、お願いします」ぐらいの気持ちで作らないと、ロクでもないものしか出来ないと思う
んじゃ評価するけど・・・
・まず見た目がひどすぎる。使わずに評価するなってお前、こんな見た目で誰が使うんだ
・技術的には素直に凄いと思う
・需要がない。現状、widowsネイティブで作る物が思い浮かばない。ちなみに俺はちょっとしたツールならvbaとVB.NET使ってる
・時期もあまりに遅い。15-20年前なら、フリゲとブラゲ両方同時に作れるって触れ込みでかなり需要があったと思うけど、今はその手のライブラリは山程あるしメインはスマホアプリとsteam。もっと早ければDXライブラリの代わりになれたかも知れない
・そのためにこのツールを使おうって気にはならない事は、説明読めば大体分かるんだけど使ってみても意見が変わらなかった
ツールを作る事自体は悪い事じゃないけど、もう少しコンセプト(どんな物を作るのに向いているか)を考えた方が良いと思う
あと、「使って下さい、お願いします」ぐらいの気持ちで作らないと、ロクでもないものしか出来ないと思う
2019/03/28(木) 19:25:38.23ID:???
>>475
有難う。色々と参考になる。
有難う。色々と参考になる。
2019/03/28(木) 20:14:48.01ID:???
>>474
よく頑張ってると思う
最初はいろいろどうかと思ったけど、考え直した
コマンドラインで動くようなものをWASMに移植するのはそう難しくないし、
ゲームのオーサリングツールはいろいろあるけど、
最低限のGUIを持ったツール的なもののための環境は整備されてないから
そういう広い視野で見たら可能性があって目の付け所は良いと思う
だからそういうところを間違わず見失わず続けていけば
必ず評価されるものになると思うよ
逆に少しでも余計なことに拘るとそっぽを向かれる
例えば今の見た目は確かに駄目だが、これを「足りない」と思うと失敗するパターン
むしろ変に拘ってるものを捨てようとして一番重要で地味な部分を着実に整備していったほうがいい
そしてアピールして回るのはいいけど、もし自ずと使ってくれる人がいるなら
その人の声を、見失わない範囲で最も大事にしたほうがいい
よく頑張ってると思う
最初はいろいろどうかと思ったけど、考え直した
コマンドラインで動くようなものをWASMに移植するのはそう難しくないし、
ゲームのオーサリングツールはいろいろあるけど、
最低限のGUIを持ったツール的なもののための環境は整備されてないから
そういう広い視野で見たら可能性があって目の付け所は良いと思う
だからそういうところを間違わず見失わず続けていけば
必ず評価されるものになると思うよ
逆に少しでも余計なことに拘るとそっぽを向かれる
例えば今の見た目は確かに駄目だが、これを「足りない」と思うと失敗するパターン
むしろ変に拘ってるものを捨てようとして一番重要で地味な部分を着実に整備していったほうがいい
そしてアピールして回るのはいいけど、もし自ずと使ってくれる人がいるなら
その人の声を、見失わない範囲で最も大事にしたほうがいい
2019/03/29(金) 01:09:42.77ID:???
>>477
ありがとう。
ありがとう。
2019/03/29(金) 09:46:38.41ID:???
当たり前かもしれないけど、HTML の textarea 要素って、native OS の
クリップボードからのコピーもペーストもできるんだね。
クリップボードからのコピーもペーストもできるんだね。
2019/03/29(金) 14:09:56.00ID:???
OS以外のクリップボードがあるの?
リアル机の上に置いてあるやつのこと言ってる?
リアル机の上に置いてあるやつのこと言ってる?
481Name_Not_Found
2019/03/29(金) 14:12:27.43ID:zaSXTawa >OS以外のクリップボードがあるの?
ソフト上で実装しようと思えば出来ると思うけど、めんどいからOS丸投げだわな
ソフト上で実装しようと思えば出来ると思うけど、めんどいからOS丸投げだわな
2019/03/29(金) 14:25:32.11ID:???
>>480
ブラウザは、「ペースト」の方はセキュリティー上の問題から禁止している
ことが多い。JSからは原則的には、native OSのクリップボードの内容を
paste する事が出来ない。ところが、textarea には出来る。
JSからでも全く出来ないわけではなく、ユーザーが CTRL+V を押した場合
にのみは、textarea 以外でも出来るらしい。イベントが発生した場合に
のみは、他の要素、例えば <p> タグなどでも使えるようになっている。
ブラウザは、「ペースト」の方はセキュリティー上の問題から禁止している
ことが多い。JSからは原則的には、native OSのクリップボードの内容を
paste する事が出来ない。ところが、textarea には出来る。
JSからでも全く出来ないわけではなく、ユーザーが CTRL+V を押した場合
にのみは、textarea 以外でも出来るらしい。イベントが発生した場合に
のみは、他の要素、例えば <p> タグなどでも使えるようになっている。
483Name_Not_Found
2019/03/29(金) 14:46:48.65ID:zaSXTawa2019/03/29(金) 14:54:29.11ID:???
>>482
1人の私が、参考になった と評価しています
1人の私が、参考になった と評価しています
2019/03/29(金) 17:32:57.85ID:???
>>483
document.execCommand('paste')
は使えなくなってるけど、それとはまた別の問題のはず。
何にもない場合に、JS から関数を呼び出してもペーストは出来ないようになっている。
ところが、ユーザーが CTRL+V キーを押した場合は、<p> タグにさえもペースト
できる方法が有る。<p> タグの attribute に名前は忘れたけど、
xxxx="true" みたいにしておく必要がある。すると、そのタグで、
pasteイベントが発生するようにもなるので、そのイベントを拾えば、
また、いろいろなことが出来るようになる。
document.execCommand('paste')
は使えなくなってるけど、それとはまた別の問題のはず。
何にもない場合に、JS から関数を呼び出してもペーストは出来ないようになっている。
ところが、ユーザーが CTRL+V キーを押した場合は、<p> タグにさえもペースト
できる方法が有る。<p> タグの attribute に名前は忘れたけど、
xxxx="true" みたいにしておく必要がある。すると、そのタグで、
pasteイベントが発生するようにもなるので、そのイベントを拾えば、
また、いろいろなことが出来るようになる。
486Name_Not_Found
2019/03/29(金) 17:34:22.11ID:zaSXTawa2019/03/29(金) 17:54:29.07ID:???
こう書くらしい。
但し、<>括弧は半角から全角に変えてある:
<p contenteditable="true" onpaste="myFunction()">Try to paste something inside this paragraph.</p>
<script>
function myFunction() {
alert("You pasted text!");
}
</script>
但し、<>括弧は半角から全角に変えてある:
<p contenteditable="true" onpaste="myFunction()">Try to paste something inside this paragraph.</p>
<script>
function myFunction() {
alert("You pasted text!");
}
</script>
2019/03/29(金) 17:59:27.31ID:???
なにもない状態でクリップボード取得できたら完全にセキュリティホール
2019/03/29(金) 18:02:43.51ID:???
>>487
htmlタグにcontenteditable="true"したらえらいことになったwww
htmlタグにcontenteditable="true"したらえらいことになったwww
2019/03/29(金) 18:09:11.31ID:???
そうか、editable になるのはそれはそれで問題だね・・・。
2019/03/29(金) 18:12:19.69ID:???
htmlに設定すると、サイトの各要素をdeleteやimgごとコピーしたりできるようになるのか
開発ツール無しでも結構色々出来て面白いなこれ
開発ツール無しでも結構色々出来て面白いなこれ
2019/03/29(金) 20:28:05.34ID:???
いまさらかよ
2019/03/29(金) 21:11:16.85ID:???
2019/03/29(金) 23:21:45.86ID:???
>>491
googleのVisBug拡張機能じゃダメか?
googleのVisBug拡張機能じゃダメか?
495Name_Not_Found
2019/03/30(土) 01:39:18.06ID:+uiLpP+A onloadイベントでajax使うとポップアップブロックされるんだけど
ページロード時にデータベースの項目とかどうやって表示するの?
ページロード時にデータベースの項目とかどうやって表示するの?
2019/03/30(土) 01:54:51.64ID:???
ポップアップとajaxは特に関係がない機能なので、
何か変なコード書いてる気がする
何か変なコード書いてる気がする
2019/03/30(土) 01:56:25.63ID:???
コードを見せて欲しい
498Name_Not_Found
2019/03/30(土) 02:16:37.65ID:+uiLpP+A 指摘の通りべつのところでした
let Hoge = function(){};
Hoge .prototype.open= () => {};
Hoge .prototype.run = () => {
let self = this;
window.addEventListener("DOMContentLoaded", ()=>{
self.open();
});
};
これでself = windowと見なされてwindow.open()してたもよう
let Hoge = function(){};
Hoge .prototype.open= () => {};
Hoge .prototype.run = () => {
let self = this;
window.addEventListener("DOMContentLoaded", ()=>{
self.open();
});
};
これでself = windowと見なされてwindow.open()してたもよう
499Name_Not_Found
2019/03/30(土) 02:28:11.29ID:+uiLpP+A Ajaxが原因というのは完全に先入観だったみたい
let Hoge = function(){};
Hoge .prototype.run = () => { console.log(this); } // 1
new Hoge().run();
Hoge .prototype.run = function() { console.log(this); } // 2
new Hoge().run();
下だとthis = Hogeでいいんだけど上だと何故かthis = Window
アロー演算子の使い方が間違っているのかも
let Hoge = function(){};
Hoge .prototype.run = () => { console.log(this); } // 1
new Hoge().run();
Hoge .prototype.run = function() { console.log(this); } // 2
new Hoge().run();
下だとthis = Hogeでいいんだけど上だと何故かthis = Window
アロー演算子の使い方が間違っているのかも
2019/03/30(土) 02:33:01.85ID:???
2019/03/30(土) 05:53:03.31ID:???
class構文にしちゃえよ
2019/03/30(土) 08:07:32.69ID:???
アロー関数がわからない
2019/03/30(土) 17:51:11.16ID:???
2019/03/30(土) 21:41:52.17ID:???
>>502
高階関数を簡単に書くためのものだよ
高階関数っていうのは関数を引数に取る関数
コールバックを引数にするとほぼ同等
var array1 = [1, 4, 9, 16];
var map1 = array1.map(function(x) {
return x * 2
});
長ったらしいだろ?
これをこう書ける。
var map1 = array1.map(x => x * 2);
こう書くことで、単に短く書けるだけでなく
「関数が呼ばれる」という感じから「式を渡す」感じになるだろ?
さらに関数っぽく見えないのでthisも呼び出し元のthisを
そのまま参照するという感じが素直に受け入れられる
たまに関数の改良型だと思ってなんでもアロー関数にするやつがいるけど
高階関数用の引数だと思ったほうが良いよ
高階関数を簡単に書くためのものだよ
高階関数っていうのは関数を引数に取る関数
コールバックを引数にするとほぼ同等
var array1 = [1, 4, 9, 16];
var map1 = array1.map(function(x) {
return x * 2
});
長ったらしいだろ?
これをこう書ける。
var map1 = array1.map(x => x * 2);
こう書くことで、単に短く書けるだけでなく
「関数が呼ばれる」という感じから「式を渡す」感じになるだろ?
さらに関数っぽく見えないのでthisも呼び出し元のthisを
そのまま参照するという感じが素直に受け入れられる
たまに関数の改良型だと思ってなんでもアロー関数にするやつがいるけど
高階関数用の引数だと思ったほうが良いよ
2019/03/30(土) 22:01:07.62ID:???
無理にアロー関数を?使う必要はない
以上
以上
2019/03/30(土) 22:22:04.33ID:???
無理にでも使え
以上
以上
2019/03/30(土) 22:27:05.71ID:???
適材適所じゃよ
今は分からんでも一度使っておけば良い
今は分からんでも一度使っておけば良い
2019/03/30(土) 22:52:11.48ID:???
>>504
恥ずかしくないの?
恥ずかしくないの?
2019/03/30(土) 23:11:55.84ID:???
パンツじゃないから。
2019/03/31(日) 00:05:18.16ID:???
JavaScript のthis は、文脈によって、Global(window) を指す事があるから、ややこしい
TypeScript は、これを踏襲しているけど、
Haxe, jQuery は、this の意味を変えている
TypeScript は、これを踏襲しているけど、
Haxe, jQuery は、this の意味を変えている
2019/03/31(日) 00:08:52.83ID:???
jQueryの$(this)を組み合わせるという手もあるのか
2019/03/31(日) 00:11:40.91ID:???
2019/03/31(日) 00:19:31.59ID:???
間違いなくあると思う
2019/03/31(日) 00:43:31.01ID:???
2019/03/31(日) 00:54:22.01ID:???
DOMのthisの話だったよね。
ほいこれ。これがDOMのthisでjQueryはDOM標準に準拠してる。
https://jsfiddle.net/ub0rh3fo/
document.getElementById('id').addEventListener('click', function() {
this.classList.toggle('on');
},false);
ほいこれ。これがDOMのthisでjQueryはDOM標準に準拠してる。
https://jsfiddle.net/ub0rh3fo/
document.getElementById('id').addEventListener('click', function() {
this.classList.toggle('on');
},false);
2019/03/31(日) 00:55:37.48ID:???
つまり、jQueryが悪いんじゃなくて、DOMが悪いんか
2019/03/31(日) 00:57:54.81ID:???
一番ハマるのは、setTimeoutだろう。これもDOMだが
「Global(window) を指す事があるから、ややこしい」=setTimeoutぐらいしか
思いつかないんだが。あとは似たようなsetIntervalか。
「Global(window) を指す事があるから、ややこしい」=setTimeoutぐらいしか
思いつかないんだが。あとは似たようなsetIntervalか。
2019/03/31(日) 02:06:21.24ID:???
immediate省くな
2019/03/31(日) 10:32:14.09ID:???
>>508はどういう意味?
2019/03/31(日) 10:35:47.98ID:???
2019/03/31(日) 10:41:49.12ID:???
thisがややこしい?
thisは関数が呼ばれるときに決まる第0の引数のようなものなんだから
呼ばれ方によって呼ぶ方の取り決めによって如何様な値も取りうることは当然だし
ドット演算子と関数呼び出しを組み合わせるとレシーバが来るという基本はあるけれど
別にthisはそれだけのために存在してるものではないし
変な固定観念を捨てて簡単に考えれば何も難しくないと思うけどな
thisは関数が呼ばれるときに決まる第0の引数のようなものなんだから
呼ばれ方によって呼ぶ方の取り決めによって如何様な値も取りうることは当然だし
ドット演算子と関数呼び出しを組み合わせるとレシーバが来るという基本はあるけれど
別にthisはそれだけのために存在してるものではないし
変な固定観念を捨てて簡単に考えれば何も難しくないと思うけどな
2019/03/31(日) 13:02:05.48ID:???
chrome ver73 64bit使ってるけどimport/exportがSyntax Errorになる
まだ未実装ということでwebpackだかbabelだかソース変換ツールが必要なのかな
まだ未実装ということでwebpackだかbabelだかソース変換ツールが必要なのかな
2019/03/31(日) 13:05:18.20ID:???
「○○難しい」って人に「全然難しくないよ!」って返す人は教える才能ない
とはいえ悪いことでもないので、人に教えるなんて無駄なことせずにガシガシコード書いてればいい。
とはいえ悪いことでもないので、人に教えるなんて無駄なことせずにガシガシコード書いてればいい。
2019/03/31(日) 13:10:02.59ID:???
>>520
const array = [1, 2, 3, 4,5];
array.forEach(function() {
console.log(this); // Windowと表示される。
});
いま、thisが「Global(window) を指す事があるから、ややこしい」
って話でしたよね?
const array = [1, 2, 3, 4,5];
array.forEach(function() {
console.log(this); // Windowと表示される。
});
いま、thisが「Global(window) を指す事があるから、ややこしい」
って話でしたよね?
2019/03/31(日) 13:10:45.45ID:???
↑を見れば分かるように、
JavaScript標準自体がややこしいんだよね。
JavaScript標準自体がややこしいんだよね。
2019/03/31(日) 13:15:54.69ID:???
document.getElementById('id').addEventListener('click', function() {
const array = [1, 2, 3];
console.log(this); // ここのthisはDOM Element
array.forEach(function() {
console.log(this); // ここのthisはWindow
});
}, false);
このように、thisが変わるのがややこしいって話でしょ?
jQueryとか関係ないよ。
const array = [1, 2, 3];
console.log(this); // ここのthisはDOM Element
array.forEach(function() {
console.log(this); // ここのthisはWindow
});
}, false);
このように、thisが変わるのがややこしいって話でしょ?
jQueryとか関係ないよ。
2019/03/31(日) 13:20:39.12ID:???
ちなみに、jQueryのeach使って、thisを変えたくなければ
アロー関数を使えばいい。これもJavaScript標準と同じ
$('#id').on('click', function() {
const array = [1, 2, 3];
console.log(this); // ここのthisはDOM Element
$.each(array, () => console.log(this)); // ここのthisもDOM Element
});
アロー関数を使えばいい。これもJavaScript標準と同じ
$('#id').on('click', function() {
const array = [1, 2, 3];
console.log(this); // ここのthisはDOM Element
$.each(array, () => console.log(this)); // ここのthisもDOM Element
});
2019/03/31(日) 13:28:58.89ID:???
ハイパー大雑把に言えば
thisはクラスのメンバ関数でクラス自体を参照するものだったじゃん?
thisはクラスのメンバ関数でクラス自体を参照するものだったじゃん?
2019/03/31(日) 13:40:04.88ID:???
>>528
「俺の知っている言語では」という言葉が抜けてるよ
「俺の知っている言語では」という言葉が抜けてるよ
2019/03/31(日) 13:50:56.28ID:???
全てはJavaやC++のthisの説明がダメダメなんだよ。
class Hoge {
private String str = 'hoge';
public void foo() {
System.out.println(this.str); // ×間違い thisはクラスのインスタンス自身です
}
}
Hoge hoge = new Hoge();
hoge.foo()
↑
○ 正解 thisとはfooメソッドを呼んだ時の.の左側のことです。
と正しく説明していれば、JavaScriptも同じだってわかるのに
class Hoge {
private String str = 'hoge';
public void foo() {
System.out.println(this.str); // ×間違い thisはクラスのインスタンス自身です
}
}
Hoge hoge = new Hoge();
hoge.foo()
↑
○ 正解 thisとはfooメソッドを呼んだ時の.の左側のことです。
と正しく説明していれば、JavaScriptも同じだってわかるのに
2019/03/31(日) 14:39:11.10ID:???
2019/03/31(日) 14:55:05.05ID:???
>>531
そもそもthisを変えない。ということはありえないよ
document.getElementById('id').addEventListener('click', function() {
const array = [1, 2, 3];
console.log(this); // ここのthisはDOM Element
array.forEach(function() {
console.log(this); // ここのthisはWindow ← 【thisが変わってしまっている】
});
}, false);
そもそもthisを変えない。ということはありえないよ
document.getElementById('id').addEventListener('click', function() {
const array = [1, 2, 3];
console.log(this); // ここのthisはDOM Element
array.forEach(function() {
console.log(this); // ここのthisはWindow ← 【thisが変わってしまっている】
});
}, false);
2019/03/31(日) 15:16:10.62ID:???
2019/03/31(日) 15:29:04.93ID:???
>>533
その言い方だとjQueryがthisを変えてるのが悪いように見えるけど、
実際にはJavaScriptだってthisを変えているし、
むしろjQueryは正しい方向にthisを修正しているってことだろう?
その言い方だとjQueryがthisを変えてるのが悪いように見えるけど、
実際にはJavaScriptだってthisを変えているし、
むしろjQueryは正しい方向にthisを修正しているってことだろう?
2019/03/31(日) 17:09:44.81ID:???
2019/03/31(日) 17:23:16.55ID:???
2019/03/31(日) 17:39:05.90ID:???
jQuery君は相変わらず、主張が矛盾だらけですね
2019/03/31(日) 17:44:24.52ID:???
>>523
教える才能もクソもないよ
JSの細かな仕様を覚えろと説明してもしょうがないでしょ
だから変な固定観念を捨てて柔軟に捉えろと言ってる
thisが難しいのではなくて難しく考えてるだけ
そしてそこを柔軟に捉えるのが難しいってだけで
最初から第0引数と思ってれば何にも難しくない
そこが難しくなってしまってるのはもう仕方のないことだから頑張れとしか言えん
何か詳しく知りたいのなら聞いてくれれば具体的に細かく教えるが
細かく聞いてそれで理解できる人は自分で調べられる
だからとりあえず固定観念を捨てろとしか言えん
教える才能もクソもないよ
JSの細かな仕様を覚えろと説明してもしょうがないでしょ
だから変な固定観念を捨てて柔軟に捉えろと言ってる
thisが難しいのではなくて難しく考えてるだけ
そしてそこを柔軟に捉えるのが難しいってだけで
最初から第0引数と思ってれば何にも難しくない
そこが難しくなってしまってるのはもう仕方のないことだから頑張れとしか言えん
何か詳しく知りたいのなら聞いてくれれば具体的に細かく教えるが
細かく聞いてそれで理解できる人は自分で調べられる
だからとりあえず固定観念を捨てろとしか言えん
2019/03/31(日) 18:29:44.25ID:???
キモイ
2019/03/31(日) 18:53:41.17ID:???
2019/03/31(日) 19:02:47.80ID:???
俺ははじめからjQueryの方が良いという話をしている。
2019/03/31(日) 19:10:31.71ID:???
>>532
何か少し勘違いしてね?
addEventListenerは第二引数に渡される関数を
DOM要素にバインドするメソッドなんだから
thisがイベントターゲットになるのは当たり前
forEachは引数に渡された関数を繰り返すだけなんだから
何にもバインドされてない関数のthisがグローバルになるのも当たり前よ
何か少し勘違いしてね?
addEventListenerは第二引数に渡される関数を
DOM要素にバインドするメソッドなんだから
thisがイベントターゲットになるのは当たり前
forEachは引数に渡された関数を繰り返すだけなんだから
何にもバインドされてない関数のthisがグローバルになるのも当たり前よ
2019/03/31(日) 19:18:20.73ID:???
jQueryやprototype.jsがバズる前夜
JSとAS界隈で、即席に閉じたスコープを作るのに
(function(){
})();
をほいほい書いちゃう宗教が出来て
それがループに適用されると
for(var i=0 ; i<配列.length ; i++)(function(index,item){
})(i, 配列[i]);
みたいな形になって、ここでcallやapplyを使って
thisを配列[i]にしちゃう宗派も出来た
その系譜がjQueryだったんだな
JSとAS界隈で、即席に閉じたスコープを作るのに
(function(){
})();
をほいほい書いちゃう宗教が出来て
それがループに適用されると
for(var i=0 ; i<配列.length ; i++)(function(index,item){
})(i, 配列[i]);
みたいな形になって、ここでcallやapplyを使って
thisを配列[i]にしちゃう宗派も出来た
その系譜がjQueryだったんだな
2019/03/31(日) 19:32:24.88ID:???
2019/03/31(日) 20:12:51.07ID:???
>>544
へー面白い
へー面白い
2019/03/31(日) 20:44:13.06ID:???
>>543
何か少し勘違いしてね?
> addEventListenerは第二引数に渡される関数を
> DOM要素にバインドするメソッドなんだから
その理屈だと、jQueryもDOM要素にバインドするメソッドなんだから
thisがイベントターゲットになるのは当たり前
> forEachは引数に渡された関数を繰り返すだけなんだから
> 何にもバインドされてない関数のthisがグローバルになるのも当たり前よ
だからってthisを変えたらダメでしょ
JavaScript のthis は、文脈によって、Global(window) を指す事があるから、ややこしい
何か少し勘違いしてね?
> addEventListenerは第二引数に渡される関数を
> DOM要素にバインドするメソッドなんだから
その理屈だと、jQueryもDOM要素にバインドするメソッドなんだから
thisがイベントターゲットになるのは当たり前
> forEachは引数に渡された関数を繰り返すだけなんだから
> 何にもバインドされてない関数のthisがグローバルになるのも当たり前よ
だからってthisを変えたらダメでしょ
JavaScript のthis は、文脈によって、Global(window) を指す事があるから、ややこしい
2019/03/31(日) 20:53:45.79ID:???
$('.hoge').each(function(i, elem) {
console.log(elem);
});
を、
$('.hoge').each(function() {
console.log(this);
});
と書けるのは、jQueryがelemをthisにバインドしてるからでしょ。
アロー関数使ってこれは無理。
$('.hoge').each(() => {
console.log(this);
});
つまりjQueryバカ君は「this変えられるfunction最高!アローはクソ!」って言いたいんだねw
console.log(elem);
});
を、
$('.hoge').each(function() {
console.log(this);
});
と書けるのは、jQueryがelemをthisにバインドしてるからでしょ。
アロー関数使ってこれは無理。
$('.hoge').each(() => {
console.log(this);
});
つまりjQueryバカ君は「this変えられるfunction最高!アローはクソ!」って言いたいんだねw
2019/03/31(日) 21:03:38.59ID:???
>>549
アロー関数を使う場合はこうな。
$('.hoge').each((i, elem) => console.log(elem));
ってか、アロー関数はthisをバインドしないんだから
引数でやるしか無いでしょ?jQueryの問題じゃないよ。
アロー関数使う以上、thisは関数の外のものが使われる
アロー関数を使う場合はこうな。
$('.hoge').each((i, elem) => console.log(elem));
ってか、アロー関数はthisをバインドしないんだから
引数でやるしか無いでしょ?jQueryの問題じゃないよ。
アロー関数使う以上、thisは関数の外のものが使われる
2019/03/31(日) 21:05:11.90ID:???
jQueryはもちろんアロー関数と組み合わせて便利に使えます(当たり前)
2019/03/31(日) 21:19:31.52ID:???
jQueryバカ君の主張まとめ:
アロー関数で書く
$('.hoge').each((i, elem) => {
console.log(elem);
});
は、functionでも同じく
$('.hoge').each(function(i, elem) {
console.log(elem);
});
と書ける。
しかしjQueryはわざわざelemをthisにバインドして
$('.hoge').each(function() {
console.log(this);
});
と書けるようにしている。
これは全く無駄なことである。
つまりjQueryは必要もないのにthis変えるアホである。
そうではなく
$('.hoge').each(function() {
console.log(this);
});
と書けることに価値があるのであれば、
$('.hoge').each(() => {
console.log(this);
});
と書けないアロー関数はクソということになってしまうからだ。
…と、こういうことか…
アロー関数で書く
$('.hoge').each((i, elem) => {
console.log(elem);
});
は、functionでも同じく
$('.hoge').each(function(i, elem) {
console.log(elem);
});
と書ける。
しかしjQueryはわざわざelemをthisにバインドして
$('.hoge').each(function() {
console.log(this);
});
と書けるようにしている。
これは全く無駄なことである。
つまりjQueryは必要もないのにthis変えるアホである。
そうではなく
$('.hoge').each(function() {
console.log(this);
});
と書けることに価値があるのであれば、
$('.hoge').each(() => {
console.log(this);
});
と書けないアロー関数はクソということになってしまうからだ。
…と、こういうことか…
2019/03/31(日) 21:21:12.05ID:???
>>552
ぜんぜん違うよw
ぜんぜん違うよw
2019/03/31(日) 21:25:19.40ID:???
2019/03/31(日) 21:26:41.89ID:???
>>554
DOM ElementからWindowに変わった
これがややこしいって話をしてる
document.getElementById('id').addEventListener('click', function() {
const array = [1, 2, 3];
console.log(this); // ここのthisはDOM Element
array.forEach(function() {
console.log(this); // ここのthisはWindow ← 【thisが変わってしまっている】
});
}, false);
DOM ElementからWindowに変わった
これがややこしいって話をしてる
document.getElementById('id').addEventListener('click', function() {
const array = [1, 2, 3];
console.log(this); // ここのthisはDOM Element
array.forEach(function() {
console.log(this); // ここのthisはWindow ← 【thisが変わってしまっている】
});
}, false);
2019/03/31(日) 21:33:17.64ID:???
これも例の一つ。thisがクラス自身を指していない。
class Foo {
constructor(){
this.value = 100;
}
foo() {
console.log(this.value); // 100と表示される
var ar = [1, 2, 3];
ar.forEach(function() {
console.log(this.value); // エラーになる
})
}
}
var f = new Foo();
f.foo();
class Foo {
constructor(){
this.value = 100;
}
foo() {
console.log(this.value); // 100と表示される
var ar = [1, 2, 3];
ar.forEach(function() {
console.log(this.value); // エラーになる
})
}
}
var f = new Foo();
f.foo();
2019/03/31(日) 21:36:03.76ID:???
2019/03/31(日) 21:38:01.10ID:???
>>555
ああわかった、何がわかってないのかが
thisは関数を実行した時に
その関数がメンバとなるオブジェクトの参照になるんよ
んで、何のメンバでもない関数はどのスコープで作られようと
グローバルのメンバ扱いになる
して、addEventListenerもforEachも
引数に渡されてる何のメンバでもないただの無名関数は
本来ならthisの参照先はグローバルになる
ただaddEventListenerは引数の関数をDOM要素にバインドする関数だから
バインド先のDOM要素がthisになるってだけ
thisってのは関数スコープを上から下に貫通するただの変数ではなくて
関数ごとに持ってるキーワードなんよ
だから変わってるのではなくて
addEventListenerの引数関数のthisと
forEachの引数関数のthisは
もともと別のものなんだよ
ああわかった、何がわかってないのかが
thisは関数を実行した時に
その関数がメンバとなるオブジェクトの参照になるんよ
んで、何のメンバでもない関数はどのスコープで作られようと
グローバルのメンバ扱いになる
して、addEventListenerもforEachも
引数に渡されてる何のメンバでもないただの無名関数は
本来ならthisの参照先はグローバルになる
ただaddEventListenerは引数の関数をDOM要素にバインドする関数だから
バインド先のDOM要素がthisになるってだけ
thisってのは関数スコープを上から下に貫通するただの変数ではなくて
関数ごとに持ってるキーワードなんよ
だから変わってるのではなくて
addEventListenerの引数関数のthisと
forEachの引数関数のthisは
もともと別のものなんだよ
2019/03/31(日) 21:42:45.57ID:???
>>558
> ただaddEventListenerは引数の関数をDOM要素にバインドする関数だから
> バインド先のDOM要素がthisになるってだけ
じゃあ。
my.foo(function() {
// ここのthisはなんになる?
}
関数ごとにバラバラじゃないですか?
関数ごとにバラバラであっていいっていうのが、
JavaScriptの正しい仕様なんですか?
> ただaddEventListenerは引数の関数をDOM要素にバインドする関数だから
> バインド先のDOM要素がthisになるってだけ
じゃあ。
my.foo(function() {
// ここのthisはなんになる?
}
関数ごとにバラバラじゃないですか?
関数ごとにバラバラであっていいっていうのが、
JavaScriptの正しい仕様なんですか?
2019/03/31(日) 21:59:47.95ID:???
>>559
バラバラじゃないって
何のメンバでもない、どのオブジェクトのメソッドでもない関数で
thisキーワードが参照されたときは一律グローバル
そもそもthisってのは関数がオブジェクトのメソッドとして実行されたとき
そのオブジェクトを参照するキーワードなんよ
参照すべきオブジェクトがないからグローバルにしてる
バラバラじゃないって
何のメンバでもない、どのオブジェクトのメソッドでもない関数で
thisキーワードが参照されたときは一律グローバル
そもそもthisってのは関数がオブジェクトのメソッドとして実行されたとき
そのオブジェクトを参照するキーワードなんよ
参照すべきオブジェクトがないからグローバルにしてる
2019/03/31(日) 22:06:19.78ID:???
function foo(){ return this; }
foo();
var bar = {
foo: foo
};
bar.foo();
こうしてみればわかりやすかろう
そうでもない?
foo();
var bar = {
foo: foo
};
bar.foo();
こうしてみればわかりやすかろう
そうでもない?
2019/03/31(日) 22:21:54.26ID:???
2019/03/31(日) 22:24:15.51ID:???
564Name_Not_Found
2019/03/31(日) 22:37:34.12ID:rWRvnw+C565Name_Not_Found
2019/03/31(日) 22:37:49.34ID:rWRvnw+C だった
2019/04/01(月) 00:21:49.34ID:???
>>558
> ただaddEventListenerは引数の関数をDOM要素にバインドする関数だから
> バインド先のDOM要素がthisになるってだけ
それは理屈にあわない。
element.onclick = function() { }
これなら、イベントハンドラを呼び出す時、
element.onclick() と実行するから、イベントハンドラの中では
this = element だって納得できるが、
addEventListenerの場合はイベントハンドラを複数登録できるわけで、
何かしらの配列に入れてるはず。
function addEventLister(type, handler) {
this.handlers.push({type, handler}) ;
}
みたいな感じで。そしてイベントハンドラを呼び出す時は
for(var handler in this.handlers) {
handler();
}
もしくは、handlersがただの配列ではなくてオブジェクトでこんな風になってるとか
this.handlers.call_all_handler();
そうするとイベントハンドラの中のthisは、globalかundefinedかhandlersになるはずだ。
イベントハンドラはDOM要素に直接バインドされていない。
> ただaddEventListenerは引数の関数をDOM要素にバインドする関数だから
> バインド先のDOM要素がthisになるってだけ
それは理屈にあわない。
element.onclick = function() { }
これなら、イベントハンドラを呼び出す時、
element.onclick() と実行するから、イベントハンドラの中では
this = element だって納得できるが、
addEventListenerの場合はイベントハンドラを複数登録できるわけで、
何かしらの配列に入れてるはず。
function addEventLister(type, handler) {
this.handlers.push({type, handler}) ;
}
みたいな感じで。そしてイベントハンドラを呼び出す時は
for(var handler in this.handlers) {
handler();
}
もしくは、handlersがただの配列ではなくてオブジェクトでこんな風になってるとか
this.handlers.call_all_handler();
そうするとイベントハンドラの中のthisは、globalかundefinedかhandlersになるはずだ。
イベントハンドラはDOM要素に直接バインドされていない。
2019/04/01(月) 00:23:56.82ID:???
ようするに、DOM要素にaddEventListenerで登録した
イベントハンドラの中でthisがDOM要素になっているのは、
DOM要素が複数のイベントハンドラを呼び出す時に
わざわざthisをDOM要素に変更して呼び出しているはずだ
イベントハンドラの中でthisがDOM要素になっているのは、
DOM要素が複数のイベントハンドラを呼び出す時に
わざわざthisをDOM要素に変更して呼び出しているはずだ
2019/04/01(月) 00:29:02.24ID:???
>>563
そりゃそうよ。コールバック関数自体はどのオブジェクトにも
紐付いてないのだからthis束縛はされていない
addEventListerとかは、わざわざ自分の要素が
thisになるようにしてからコールバック関数を呼び出している。
そりゃそうよ。コールバック関数自体はどのオブジェクトにも
紐付いてないのだからthis束縛はされていない
addEventListerとかは、わざわざ自分の要素が
thisになるようにしてからコールバック関数を呼び出している。
2019/04/01(月) 00:55:47.10ID:???
関数をネストすると、内側のthis が、window になってしまう
漏れは、そういう認識です
漏れは、そういう認識です
570Name_Not_Found
2019/04/01(月) 01:30:33.76ID:Io+GUhRr >>566
callとかapplyとか知らんの?
callとかapplyとか知らんの?
2019/04/01(月) 01:44:17.16ID:???
2019/04/01(月) 06:07:30.29ID:???
グローバルのメンバ云々は全く関係なくて
thisArgがundefinedのときsloppy modeではglobalThisに置き換えられてただけ
thisArgがundefinedのときsloppy modeではglobalThisに置き換えられてただけ
2019/04/01(月) 06:41:07.52ID:???
>>568
jQuery君がそれを理解してくれれば解決なんだがね
jQuery君がそれを理解してくれれば解決なんだがね
2019/04/01(月) 11:02:31.57ID:???
2019/04/01(月) 12:30:27.39ID:???
2019/04/01(月) 13:01:46.00ID:???
2019/04/01(月) 14:38:53.39ID:???
変なの湧いてるなあ
なんか名前書いてよ
興味のある人は読むし
ない人はNGすっから
なんか名前書いてよ
興味のある人は読むし
ない人はNGすっから
2019/04/01(月) 14:52:34.84ID:???
まずは言い出しっぺが名前を書くように
2019/04/01(月) 15:18:31.39ID:???
自覚あってワロタ
2019/04/01(月) 15:19:53.04ID:???
じゃなくて名前。はよ
2019/04/01(月) 15:38:30.56ID:???
"バインドするメソッド" で検索しても何も見つからんわ
むしろ一番最初にjQueryでてきた
オレオレ用語使ってないで、ちゃんと説明しろ
むしろ一番最初にjQueryでてきた
オレオレ用語使ってないで、ちゃんと説明しろ
583Name_Not_Found
2019/04/01(月) 18:56:34.87ID:WoIas1Og https://qiita.com/kan_dai/items/b1850750b883f83b9bee
このサイトに載っているカレンダーを勉強してるんですが、
calendarHtml += '<h1>' + year + '/' + month + '</h1>'
calendarHtml += '<table>'
ソースを見ると上記のように、変数を上書きしています。
前の値を保持して、新しい値を追加してると考えていいのでしょうか?
このあともfor文で、<tr>や<td>もcalenderHtmlに代入されていってます。
上書きすると前の値が消えて、新しい値に上書きされると思ってたんですが。
このサイトに載っているカレンダーを勉強してるんですが、
calendarHtml += '<h1>' + year + '/' + month + '</h1>'
calendarHtml += '<table>'
ソースを見ると上記のように、変数を上書きしています。
前の値を保持して、新しい値を追加してると考えていいのでしょうか?
このあともfor文で、<tr>や<td>もcalenderHtmlに代入されていってます。
上書きすると前の値が消えて、新しい値に上書きされると思ってたんですが。
2019/04/01(月) 19:36:34.49ID:???
585Name_Not_Found
2019/04/01(月) 20:27:20.84ID:WoIas1Og2019/04/01(月) 20:41:20.75ID:???
>>532が敗れたか
2019/04/01(月) 21:51:05.16ID:???
バインドするメソッドってなに?
2019/04/01(月) 21:58:59.79ID:???
jQuery君は言葉狩りで話を逸らそうと必死だな
2019/04/01(月) 23:04:20.22ID:???
言葉狩りじゃないなぁ
理由が「バインドするメソッドなんだから」って
書いてるんだから、その理由の意味を聞いてるわけ。
それが答えられないなら、理由がないってことになる。
理由が「バインドするメソッドなんだから」って
書いてるんだから、その理由の意味を聞いてるわけ。
それが答えられないなら、理由がないってことになる。
2019/04/01(月) 23:08:44.94ID:???
2019/04/02(火) 01:14:19.26ID:???
>>589
他意は無いんだが
質問者が未解決のままレス続ける時は
名前欄に最初の質問のレス番号入れてくれんかね
文脈わからなくなるし
混ざって他の質問者が流されたりしちゃうこともあるから
あんまり口うるさくするのもアレなんだけど
マナーっつうか
みんなで使う掲示板なんで、ちょっとした気遣いみたいなもんで
他意は無いんだが
質問者が未解決のままレス続ける時は
名前欄に最初の質問のレス番号入れてくれんかね
文脈わからなくなるし
混ざって他の質問者が流されたりしちゃうこともあるから
あんまり口うるさくするのもアレなんだけど
マナーっつうか
みんなで使う掲示板なんで、ちょっとした気遣いみたいなもんで
2019/04/02(火) 01:58:53.89ID:???
bind で、this を固定するのだろ
2019/04/02(火) 05:36:12.19ID:???
おそらくaddEventListenerは要素に関数を紐付ける(バインド)のだから
レシーバー(→this)が要素オブジェクトになると言いたかったんだろうが
紐付けてるからそうなってるのではなくて
紐づけてる風でもあるし、便利だからそうされてたのが
デファクトとして今仕様になってると考えたほうが良いと思う
何れにせよthisをどうしようが自由でそこに言語の縛りはないのだから
レシーバー(→this)が要素オブジェクトになると言いたかったんだろうが
紐付けてるからそうなってるのではなくて
紐づけてる風でもあるし、便利だからそうされてたのが
デファクトとして今仕様になってると考えたほうが良いと思う
何れにせよthisをどうしようが自由でそこに言語の縛りはないのだから
2019/04/02(火) 08:45:37.87ID:???
いやjavascriptはthisをどうしようが勝手な言語だが他の一般的なクラスベースの言語はそんな自由じゃないだろ
2019/04/02(火) 10:34:08.65ID:???
>>593
うん、でもaddEventListenerは複数指定できるから
要素に直接紐づけてるわけじゃないんだよね。
便利だからわざわざthisを要素自身にして呼び出してる
便利だから。jQueryも同じ。便利だからそうしている。
うん、でもaddEventListenerは複数指定できるから
要素に直接紐づけてるわけじゃないんだよね。
便利だからわざわざthisを要素自身にして呼び出してる
便利だから。jQueryも同じ。便利だからそうしている。
2019/04/02(火) 12:31:14.19ID:???
つまり、
$('.hoge').each(function(i, elem) {
console.log(elem);
});
を、
$('.hoge').each(function() {
console.log(this);
});
と書けるようにしてるから便利という意見ですよね。
つまり、
$('.hoge').each((i, elem) => {
console.log(elem);
});
としか書けない、
$('.hoge').each(() => {
console.log(this);
});
とは書けないアロー関数はクソ、thisを自由に変えられるfunction最高という意見ですねw
$('.hoge').each(function(i, elem) {
console.log(elem);
});
を、
$('.hoge').each(function() {
console.log(this);
});
と書けるようにしてるから便利という意見ですよね。
つまり、
$('.hoge').each((i, elem) => {
console.log(elem);
});
としか書けない、
$('.hoge').each(() => {
console.log(this);
});
とは書けないアロー関数はクソ、thisを自由に変えられるfunction最高という意見ですねw
2019/04/02(火) 12:42:52.91ID:???
>>596
thisが変わってほしい時は、function、
thisを変えたくない時は、アロー関数
使い分ければ良いんだよ
所でさ、
1. thisが要素になる・・・使いやすくするため
2. thisが変わらない(つまりアロー関数)・・・関数の外のthisを使える
この2つにメリットが有るのは分かるんだが
3. thisがGlobal(Window)に変わる。(ただし"use strict"の場合はundefined)
この仕様にメリットってなにかある?
thisが変わってほしい時は、function、
thisを変えたくない時は、アロー関数
使い分ければ良いんだよ
所でさ、
1. thisが要素になる・・・使いやすくするため
2. thisが変わらない(つまりアロー関数)・・・関数の外のthisを使える
この2つにメリットが有るのは分かるんだが
3. thisがGlobal(Window)に変わる。(ただし"use strict"の場合はundefined)
この仕様にメリットってなにかある?
2019/04/02(火) 12:48:28.74ID:???
じゃあ他人にできることができないことがある
お前はクソということだな
お前はクソということだな
2019/04/02(火) 21:21:24.17ID:???
>>597
昔はthisは(他のクラスベース言語だとインスタンスを表すのでそれに習って)
オブジェクトでないといけないという縛りがあったので
undefinedのときは仕方がないのでglobalThisに置き換えられてただけ
ES5になってその制限を緩くして
strict modeだとthisがプリミティブになることができるようになった
昔はthisは(他のクラスベース言語だとインスタンスを表すのでそれに習って)
オブジェクトでないといけないという縛りがあったので
undefinedのときは仕方がないのでglobalThisに置き換えられてただけ
ES5になってその制限を緩くして
strict modeだとthisがプリミティブになることができるようになった
2019/04/02(火) 22:19:18.56ID:???
javascript人気だけど仕様がクソすぎるよな
2019/04/02(火) 22:26:07.77ID:???
いや。客観的に見てクソ加減は著名な言語の中で平均以下だよ
2019/04/02(火) 22:44:24.58ID:???
JSで未だに問題になり得る隠しきれない残念な部分ってtypeof演算子くらいでしょ
2019/04/02(火) 23:02:49.98ID:???
>>599
うん。それはそれでいいんだけど、
JavaScriptのforEachでthisがundefinedもしくはwindowになる(strictかどうかで挙動が変わる)
という仕様は何が便利なのかなーって話
うん。それはそれでいいんだけど、
JavaScriptのforEachでthisがundefinedもしくはwindowになる(strictかどうかで挙動が変わる)
という仕様は何が便利なのかなーって話
2019/04/02(火) 23:35:05.59ID:???
>>603
人の話聞いてる?
forEachなんかでのthisValueは当然メソッド呼び出しでもないんだしundefinedでしょ
ただsloppy modeだとundefinedがglobalThisに置き換えられるってだけ
置き換えられる理由は前述の通り
人の話聞いてる?
forEachなんかでのthisValueは当然メソッド呼び出しでもないんだしundefinedでしょ
ただsloppy modeだとundefinedがglobalThisに置き換えられるってだけ
置き換えられる理由は前述の通り
2019/04/02(火) 23:46:04.80ID:???
2019/04/02(火) 23:53:56.37ID:???
ん?ただ一言、forEachでundefinedになってることに
メリットはないって言ってくれれば良いんだけど?
メリットはないって言ってくれれば良いんだけど?
2019/04/03(水) 01:29:23.51ID:???
2019/04/03(水) 06:24:40.86ID:???
>>606
お前言ってることがおかしいよ
undefined以外だったらおかしくてむしろデメリットになり得るでしょ
thisは何にでも使えるとはいえ「THIS」なのだから
ライブラリやらが何をどうしようと勝手だが標準には秩序というものがある
お前言ってることがおかしいよ
undefined以外だったらおかしくてむしろデメリットになり得るでしょ
thisは何にでも使えるとはいえ「THIS」なのだから
ライブラリやらが何をどうしようと勝手だが標準には秩序というものがある
2019/04/03(水) 06:53:42.50ID:???
こいつ第10引数は何故いつも開いてるんだ!
undefinedの代わりに何か便利なものを提供しろ!
とか言いそうだな
undefinedの代わりに何か便利なものを提供しろ!
とか言いそうだな
2019/04/03(水) 09:31:07.53ID:???
>>608
> undefined以外だったらおかしくてむしろデメリットになり得るでしょ
どんなデメリット?
> thisは何にでも使えるとはいえ「THIS」なのだから
forEachの中では、必ず undefined (またはWindow)になるんです。
「THISなのだから」とはどういう意味?
> undefined以外だったらおかしくてむしろデメリットになり得るでしょ
どんなデメリット?
> thisは何にでも使えるとはいえ「THIS」なのだから
forEachの中では、必ず undefined (またはWindow)になるんです。
「THISなのだから」とはどういう意味?
2019/04/03(水) 09:32:02.44ID:???
>>609
便利なものが思いつかないなら、何も提供しなくて良いのでは?
便利なものが思いつかないなら、何も提供しなくて良いのでは?
2019/04/03(水) 11:59:54.22ID:???
やっぱjavascriptの仕様がおかしい
おかしくなかったら揉めない
おかしくなかったら揉めない
2019/04/03(水) 12:39:21.11ID:???
>>610
必ずなるなんて誰も言ってないでしょ
forEachやmapは第二引数で指定できるでしょ
コールバックのthisが何になるかなんてJSの秩序では自明でないでしょ
それに利便性も含めて指定できるようになってるんだから
指定されていない時はundefinedが自然でしょ
それが嫌なら指定すればいいだけなのだから
必ずなるなんて誰も言ってないでしょ
forEachやmapは第二引数で指定できるでしょ
コールバックのthisが何になるかなんてJSの秩序では自明でないでしょ
それに利便性も含めて指定できるようになってるんだから
指定されていない時はundefinedが自然でしょ
それが嫌なら指定すればいいだけなのだから
2019/04/03(水) 13:10:19.03ID:???
> 指定されていない時はundefinedが自然でしょ
いいえ、コールバックのthisが何になるかなんてJSの秩序では自明ではありません。
いいえ、コールバックのthisが何になるかなんてJSの秩序では自明ではありません。
2019/04/03(水) 13:24:50.00ID:???
まあ呼び出しが側が自由に設定出来るからな。jQueryがそうしてるように。
※ただしアロー関数は除くww
※ただしアロー関数は除くww
2019/04/03(水) 14:34:05.92ID:???
>>612
なんかおかしいことあるか?
なんかおかしいことあるか?
2019/04/03(水) 14:42:05.30ID:???
2019/04/03(水) 14:46:24.68ID:???
2019/04/03(水) 15:03:32.42ID:???
>>618
だからそのクラスベース脳捨てろよ。
hoge(function() {console.log(this);});
//=> undefined
が自明だって?バカいうな。
hogeの定義はこうだ!
function hoge(cb) {cb.bind('うんこ')();}
だから、
//=> undefined
じゃなくて、
//=> うんこ
なんだよこのうんこ!
jQueryだってやってることは同じだバカ!
だからそのクラスベース脳捨てろよ。
hoge(function() {console.log(this);});
//=> undefined
が自明だって?バカいうな。
hogeの定義はこうだ!
function hoge(cb) {cb.bind('うんこ')();}
だから、
//=> undefined
じゃなくて、
//=> うんこ
なんだよこのうんこ!
jQueryだってやってることは同じだバカ!
2019/04/03(水) 15:04:39.23ID:???
>>619
日本語でok
日本語でok
2019/04/03(水) 15:19:00.20ID:???
>>618
> 何かのオブジェクトのメソッドとして実行されないから
> thisキーワードを参照しても返すべきオブジェクトがないわけで
その理屈だと、DOMのイベントは、
DOM要素オブジェクトのメソッドとして実行されないから
undefinedになるべきなんですよ。
> 何かのオブジェクトのメソッドとして実行されないから
> thisキーワードを参照しても返すべきオブジェクトがないわけで
その理屈だと、DOMのイベントは、
DOM要素オブジェクトのメソッドとして実行されないから
undefinedになるべきなんですよ。
2019/04/03(水) 15:22:50.44ID:???
そろそろまとめてくれないか
2019/04/03(水) 15:22:52.93ID:???
2019/04/03(水) 15:24:00.52ID:???
2019/04/03(水) 15:26:05.17ID:???
>>623
お前の言う「JSの秩序」によると
element.addEventListener('click', function() {
// ここのthis は
}, false) ;
undefinedとして扱われるべきということになってしまう
お前の言う「JSの秩序」によると
element.addEventListener('click', function() {
// ここのthis は
}, false) ;
undefinedとして扱われるべきということになってしまう
2019/04/03(水) 15:48:03.08ID:???
jQueryはあくまでDOM用のライブラリだから
DOMの仕様に準拠している。と考えればいいのか
DOMの仕様に準拠している。と考えればいいのか
2019/04/03(水) 16:06:48.43ID:???
なんにも分かってないのな
恥ずかしい奴
恥ずかしい奴
2019/04/03(水) 16:11:54.15ID:???
自称わかってる君、登場。何も言えずに、退場。
2019/04/03(水) 17:14:50.60ID:???
630Name_Not_Found
2019/04/03(水) 17:20:17.27ID:3PPhuC922019/04/03(水) 18:08:36.79ID:???
2019/04/03(水) 18:10:26.05ID:???
JavaScriptのforEachでthisを要素にする方法ないのかな?
2019/04/03(水) 18:54:20.51ID:???
今日書かれた内容くらいは読んでから書こうぜ
2019/04/03(水) 19:02:49.56ID:???
>>632
これでええやろ。
Array.prototype.forEach2 = function(cb) {
this.forEach((v, i, a) => { cb.bind(v)(v, i, a); });
};
コールバックにはfunctionつかうんやで?
アローはthis変えさせてくれへんいけずやからな。
[5, 4, 3].forEach2(function() { console.log(this); });
5
4
3
これでええやろ。
Array.prototype.forEach2 = function(cb) {
this.forEach((v, i, a) => { cb.bind(v)(v, i, a); });
};
コールバックにはfunctionつかうんやで?
アローはthis変えさせてくれへんいけずやからな。
[5, 4, 3].forEach2(function() { console.log(this); });
5
4
3
2019/04/03(水) 19:21:12.75ID:???
2019/04/03(水) 19:41:10.96ID:???
2019/04/03(水) 20:03:03.80ID:???
forEachの第二引数はthisの指定だって既出じゃん
2019/04/03(水) 20:20:48.57ID:???
それだけじゃ>>635は全然分かんないんだけと…
バカ舐めてない?
バカ舐めてない?
639Name_Not_Found
2019/04/03(水) 20:44:42.80ID:3PPhuC92640Name_Not_Found
2019/04/03(水) 20:51:38.49ID:DDwik/cB 分からないときは変数を解決しつつステップを追っていったらいいだけでは?
fn = function() { console.log(this); }
[5, 4, 3].forEach(Map.call,fn);
↓
Map.call.call( fn, 5 ); Map.call.call( fn, 4 ); Map.call.call( fn, 3 )
Map.call.call( fn, 5 );
↓
Map.__proto__.call.call( fn, 5 )
↓
(Function.prototype.call).call( fn, 5 )
↓
(fn.__proto__.call).call( 5 )
↓
fn.call( 5 )
∵o.m(x) ≡ (o.m).call( o, x ) ⇐ ( o.__proto__.m ).call( o, x )
fn = function() { console.log(this); }
[5, 4, 3].forEach(Map.call,fn);
↓
Map.call.call( fn, 5 ); Map.call.call( fn, 4 ); Map.call.call( fn, 3 )
Map.call.call( fn, 5 );
↓
Map.__proto__.call.call( fn, 5 )
↓
(Function.prototype.call).call( fn, 5 )
↓
(fn.__proto__.call).call( 5 )
↓
fn.call( 5 )
∵o.m(x) ≡ (o.m).call( o, x ) ⇐ ( o.__proto__.m ).call( o, x )
2019/04/03(水) 21:19:54.11ID:???
2019/04/03(水) 22:09:35.97ID:???
643Name_Not_Found
2019/04/03(水) 22:10:37.53ID:3PPhuC922019/04/03(水) 22:42:42.04ID:???
645Name_Not_Found
2019/04/03(水) 23:25:13.34ID:Ed8aFiP/ すみません、ちょっと質問なのですが、javascriptはスタックサイズの変更は出来ないのでしょうか?
再帰関数を実装したらスタックが溢れてしまいます。スタックサイズを設定出来るコンパイラオプションみたいなものはないのでしょうか?
再帰関数を実装したらスタックが溢れてしまいます。スタックサイズを設定出来るコンパイラオプションみたいなものはないのでしょうか?
2019/04/03(水) 23:46:27.85ID:???
スタックサイズを無限にでもしたいのか?
無限に必要だろ。お前のコードは。
無限に必要だろ。お前のコードは。
2019/04/04(木) 00:19:20.05ID:???
>>646
わからんのなら黙っとけ
わからんのなら黙っとけ
2019/04/04(木) 00:23:21.44ID:???
使用上末尾呼び出しでスタックは消費しない
それでも溢れるのはエンジンの実装がまだだから
各エンジンにスタックサイズ指定のオプションがある
>>644
普通はそこまで無理くりthisを使おうとしないほうが
よっぽどいくらでもスマートに書く方法があるから
なぜ第一引数で与えられるものをわざわざthisを使おうとする
考え直したほうがいい
それでも溢れるのはエンジンの実装がまだだから
各エンジンにスタックサイズ指定のオプションがある
>>644
普通はそこまで無理くりthisを使おうとしないほうが
よっぽどいくらでもスマートに書く方法があるから
なぜ第一引数で与えられるものをわざわざthisを使おうとする
考え直したほうがいい
2019/04/04(木) 00:36:39.01ID:???
× 使用上末尾呼び出しでスタックは消費しない
○ 末尾最適化が可能なように書いた場合に限り、末尾においてスタックは消費しないだけで
末尾以外でスタックは消費するし、末尾最適化が可能じゃない書き方をしていれば、それもスタック消費する
最初からループで書けばすむものを、再帰で書いてコンパイラにループに戻してくれることを期待するという無駄なことをしている。
○ 末尾最適化が可能なように書いた場合に限り、末尾においてスタックは消費しないだけで
末尾以外でスタックは消費するし、末尾最適化が可能じゃない書き方をしていれば、それもスタック消費する
最初からループで書けばすむものを、再帰で書いてコンパイラにループに戻してくれることを期待するという無駄なことをしている。
2019/04/04(木) 00:54:37.99ID:???
>>649
最後の意見は超同意。再帰が話題になるたび思う。
最後の意見は超同意。再帰が話題になるたび思う。
2019/04/04(木) 00:56:50.91ID:???
2019/04/04(木) 06:58:14.10ID:???
Aでやりたいんだという人にそんなの無理無理Bでやれというのは老害だと思う
本当に不可能なことをしようというのであればそれは不毛だよと教えてあげないといけないが
エンジンの設定などで動き得る範囲なら
書きたいように書けるように設定するほうが正しい判断だと思う
今の時代人間が機械に合わせるより機械を人間に合わせるほうが絶対に良いことで
JSなんてエンジンが頑張ってくれるおかげでいろいろ好きなように楽に書けてる言語の代表なのだから
本当に不可能なことをしようというのであればそれは不毛だよと教えてあげないといけないが
エンジンの設定などで動き得る範囲なら
書きたいように書けるように設定するほうが正しい判断だと思う
今の時代人間が機械に合わせるより機械を人間に合わせるほうが絶対に良いことで
JSなんてエンジンが頑張ってくれるおかげでいろいろ好きなように楽に書けてる言語の代表なのだから
2019/04/04(木) 07:17:15.02ID:???
それは手段を目的にしちゃってるのでは?
2019/04/04(木) 07:27:49.42ID:???
一人で仕事するならどうかいたって自由
2019/04/04(木) 10:41:05.79ID:???
>>652
むしろ今は人が機械に合わせた方が恩恵大きそうな気が
むしろ今は人が機械に合わせた方が恩恵大きそうな気が
2019/04/04(木) 12:35:25.19ID:???
第一引数でとれるものを、彼はなぜthis束縛に拘ってるの?
array.forEach(v=>console.log(v));
これでいいじゃん
this束縛したら通常の動作ではなくて直感的じゃないし、第二引数でthis束縛する場合に改修コストが余計にかかるし、メリットがまるでない
つーか、ループ処理でthisで束縛してるのはjQueryだけだし、それが当然としたり顔でいわれても困るわ
array.forEach(v=>console.log(v));
これでいいじゃん
this束縛したら通常の動作ではなくて直感的じゃないし、第二引数でthis束縛する場合に改修コストが余計にかかるし、メリットがまるでない
つーか、ループ処理でthisで束縛してるのはjQueryだけだし、それが当然としたり顔でいわれても困るわ
2019/04/04(木) 12:48:02.04ID:???
jQueryからそれが当たり前のように始めると危ないよと様々な人が様々に言ってきた害が現実に起きてるだけとは言え
それでもforEachに一々躓くのは異常としか言えないね
それでもforEachに一々躓くのは異常としか言えないね
2019/04/04(木) 13:16:57.26ID:???
2019/04/04(木) 14:24:07.26ID:???
2019/04/04(木) 15:18:51.12ID:???
jQueryのデザインが、絶対!
javascriptのforEachは、間違っている!
javascriptのforEachは、間違っている!
661Name_Not_Found
2019/04/04(木) 15:55:22.62ID:l5iaeRCP >>660
でどうしろと
でどうしろと
2019/04/04(木) 17:57:59.73ID:???
2019/04/04(木) 18:37:03.60ID:???
>>662
addEventListenerとforEachは全く違う
addEventListenerとforEachは全く違う
664Name_Not_Found
2019/04/04(木) 18:48:39.01ID:l5iaeRCP2019/04/04(木) 19:16:52.41ID:???
>>662
jQueryも全く違う。thisをどうするかは設計者が決めること
jQueryも全く違う。thisをどうするかは設計者が決めること
2019/04/04(木) 19:17:11.00ID:???
2019/04/04(木) 19:27:20.92ID:???
>>659
お前もうレスしてくるな
これまでの話の流れのニュアンスを理解できないというのならよくいるただのアスペだが
お前は1レス中の隣接する行すら関連付けて理解できないのだから
そんなAI以下の知能でよく今まで生きてこれたな
お前もうレスしてくるな
これまでの話の流れのニュアンスを理解できないというのならよくいるただのアスペだが
お前は1レス中の隣接する行すら関連付けて理解できないのだから
そんなAI以下の知能でよく今まで生きてこれたな
2019/04/04(木) 19:30:25.51ID:???
>>667
お前が、存在しない「害」をある前提にして洗脳しようとするからだろ
「害」なんて無いんだよ。有るならどんな「害」か書けるはずだが。
それともお前は、これが正しいんだ!とかいうお前の思い込みを主張するつもりか?w
お前が、存在しない「害」をある前提にして洗脳しようとするからだろ
「害」なんて無いんだよ。有るならどんな「害」か書けるはずだが。
それともお前は、これが正しいんだ!とかいうお前の思い込みを主張するつもりか?w
669663
2019/04/04(木) 19:41:56.15ID:vTBEFf7i2019/04/04(木) 19:51:29.10ID:???
foreachのindex仕えばいいだけの話が、何でこんなにこじれるのか意味不明
2019/04/04(木) 19:51:38.67ID:???
>>668
お前頭湧いてるのか?
jQuery流にドップリ浸かったせいでJSの基礎構文に違和感を感じて
無理やりにでもthisを活用しようとすることが害でなくてなんなんだ?
正しいとか正しくないとか誰も言ってないことを思い込むのも辞めてくれ
もしかしてjQueryを否定してると思ってるのかもしれないがそれも違う
表があれば裏があるという当たり前で自明なことを言ってるだけ
それを受け入れられないというのならただの病気
お前と話すことはない
お前頭湧いてるのか?
jQuery流にドップリ浸かったせいでJSの基礎構文に違和感を感じて
無理やりにでもthisを活用しようとすることが害でなくてなんなんだ?
正しいとか正しくないとか誰も言ってないことを思い込むのも辞めてくれ
もしかしてjQueryを否定してると思ってるのかもしれないがそれも違う
表があれば裏があるという当たり前で自明なことを言ってるだけ
それを受け入れられないというのならただの病気
お前と話すことはない
2019/04/04(木) 19:53:38.50ID:???
>>670
第二引数(index)を使わずとも、第一引数(値)で参照出来るぞ?
第二引数(index)を使わずとも、第一引数(値)で参照出来るぞ?
2019/04/04(木) 19:57:25.62ID:???
2019/04/04(木) 20:01:37.35ID:???
こういうのを想像して、新人さんかわいいなぁと思ってしまった
arr = [1,2,3];
arr.forEach(function(i){
console.log(arr[i-1]);
})
arr = [1,2,3];
arr.forEach(function(i){
console.log(arr[i-1]);
})
2019/04/04(木) 20:03:34.26ID:???
俺なら新人でもそんなコードを書く奴は見込み0と判断する
2019/04/04(木) 20:11:45.82ID:???
2019/04/04(木) 20:13:14.02ID:???
>>674
引数の位置的に、jQuery脳も疑う
引数の位置的に、jQuery脳も疑う
2019/04/04(木) 20:17:07.79ID:???
>>671
> jQuery流にドップリ浸かったせいでJSの基礎構文に違和感を感じて
ん?誰が違和感を感じてるんだ? 逆だろう。
jQueryが憎くて憎くて、jQueryの構文に違和感を感じてるのはお前だろう。
自覚ないんだろうけどなw
JSの基礎構文(?)なら、jQueryにも採用されてるんで、
違和感を感じるはずがないんだよ。
あ、そっちのやり方ね。で終わる話だから
$.each([1, 2, 3], function(index, value) {
console.log(value); // 1, 2, 3 と表示される
});
> jQuery流にドップリ浸かったせいでJSの基礎構文に違和感を感じて
ん?誰が違和感を感じてるんだ? 逆だろう。
jQueryが憎くて憎くて、jQueryの構文に違和感を感じてるのはお前だろう。
自覚ないんだろうけどなw
JSの基礎構文(?)なら、jQueryにも採用されてるんで、
違和感を感じるはずがないんだよ。
あ、そっちのやり方ね。で終わる話だから
$.each([1, 2, 3], function(index, value) {
console.log(value); // 1, 2, 3 と表示される
});
2019/04/04(木) 20:20:19.15ID:???
jQuery脳・・・jQueryもJSのやり方もありです。だってjQueryはJSだもの
アンチjQuery脳・・・jQuery脳のやつはjQueryが絶対だって思ってるはずだ!
これな
アンチjQuery脳・・・jQuery脳のやつはjQueryが絶対だって思ってるはずだ!
これな
2019/04/04(木) 20:24:20.92ID:???
js vs jQuery ファイッ! → jQueryでも大差ない → アンチjQuery沈黙
ワンライナーで戦争終わらせたぞ
ワンライナーで戦争終わらせたぞ
2019/04/04(木) 20:37:07.43ID:???
jQuery IE
同じような存在
未来には不要
同じような存在
未来には不要
2019/04/04(木) 20:38:14.93ID:???
2019/04/04(木) 20:39:24.77ID:???
○○はオワコン
本当にオワコンになるのは、開発元がやめたときで
他人が言ってるだけ(=オワコンなってほしい、なってくれー)が
現実のものになることはないのです。COBOLとかね。
本当にオワコンになるのは、開発元がやめたときで
他人が言ってるだけ(=オワコンなってほしい、なってくれー)が
現実のものになることはないのです。COBOLとかね。
2019/04/04(木) 20:39:55.51ID:???
>>682
アンチjQuery脳・・・標準APIにjQueryの流儀を持ってこようとしているはずだ!
アンチjQuery脳・・・標準APIにjQueryの流儀を持ってこようとしているはずだ!
2019/04/04(木) 20:55:33.34ID:???
ならアロー関数を使わないべき論はやめて欲しいね
2019/04/04(木) 20:59:29.45ID:???
アロー関数を使わないなんて誰が言ってるんだ?
むしろjQueryとも組み合わせて使っていんだが?
↓に書いてあるとおり
551 自分:Name_Not_Found[sage] 投稿日:2019/03/31(日) 21:05:11.90 ID:???
jQueryはもちろんアロー関数と組み合わせて便利に使えます(当たり前)
むしろjQueryとも組み合わせて使っていんだが?
↓に書いてあるとおり
551 自分:Name_Not_Found[sage] 投稿日:2019/03/31(日) 21:05:11.90 ID:???
jQueryはもちろんアロー関数と組み合わせて便利に使えます(当たり前)
2019/04/04(木) 21:00:10.86ID:???
アンチjQuery脳・・・jQuery脳のやつはアロー関数を使わないべきだって思ってるはずだ!
ほんと、これだよなw
ほんと、これだよなw
2019/04/04(木) 21:05:26.74ID:???
2019/04/04(木) 21:07:26.66ID:???
>>688
ぜんぜん違うだろw
ぜんぜん違うだろw
2019/04/04(木) 21:15:05.48ID:???
geolocation APIの位置情報が偽装されているかを検出したいのですが。
2019/04/04(木) 21:29:46.76ID:???
ストーキングすれば簡単だろ
2019/04/04(木) 21:32:08.32ID:???
>>689
なぜ?
なぜ?
2019/04/04(木) 21:38:41.67ID:???
無理だろ
iphoneは知らんけどドロは好き放題変えられる
iphoneは知らんけどドロは好き放題変えられる
2019/04/04(木) 22:08:18.94ID:???
>>692
標準APIにjQueryの流儀を持ってこようとしてないから
標準APIにjQueryの流儀を持ってこようとしてないから
2019/04/04(木) 23:13:26.33ID:???
2019/04/04(木) 23:18:25.39ID:???
それらはもう十分に萎みきって一部分野だけで残り滓が生き残ってる段階だからオワコンとは言わんでしょ
まだまだ活力はあるけど今まさに萎みだしてる段階をオワコンと言うと思う
まだまだ活力はあるけど今まさに萎みだしてる段階をオワコンと言うと思う
2019/04/04(木) 23:19:02.61ID:???
>>690
そういうのはディープラーニングでできる
そういうのはディープラーニングでできる
2019/04/04(木) 23:20:39.89ID:???
>>697
出来るわけねーだろハゲ
出来るわけねーだろハゲ
2019/04/04(木) 23:25:15.01ID:???
2019/04/04(木) 23:29:34.91ID:???
flashとかの環境もうどっか行ったな
案件来るんだろうか
案件来るんだろうか
701699
2019/04/04(木) 23:33:24.29ID:???2019/04/04(木) 23:38:07.70ID:???
標準技術の上に作られたjQueryが使われなくなることはないのだった
2019/04/05(金) 05:43:28.18ID:???
2019/04/05(金) 06:42:16.26ID:???
>>694
Array#forEachでthisが変わらないとおかしいという論調には読めないのかね?
Array#forEachでthisが変わらないとおかしいという論調には読めないのかね?
2019/04/05(金) 06:52:19.89ID:???
そいつ脳足りんだから読めないよ
ほっとけ
ほっとけ
2019/04/05(金) 06:55:38.66ID:???
2019/04/05(金) 06:56:43.46ID:???
2019/04/05(金) 07:13:40.21ID:???
>>707
最近は少ないサンプルでも学習できるようになってるから
最初幾らか人力も使ってサンプルを用意して
運用しながら人間が判別しつつサンプルを増やしていけばいいんだよ
「偽装」っていうのはそういうものだから
もしかすると端末のGPSの精度がおかしいから外部アタッチメントと
アプリ使ってAndroidの位置情報置き換えてるかもしれないけど
そういうのは「偽装」とは言えないしね
最近は少ないサンプルでも学習できるようになってるから
最初幾らか人力も使ってサンプルを用意して
運用しながら人間が判別しつつサンプルを増やしていけばいいんだよ
「偽装」っていうのはそういうものだから
もしかすると端末のGPSの精度がおかしいから外部アタッチメントと
アプリ使ってAndroidの位置情報置き換えてるかもしれないけど
そういうのは「偽装」とは言えないしね
2019/04/05(金) 08:28:33.22ID:???
2019/04/05(金) 08:51:54.08ID:???
2019/04/05(金) 19:46:37.51ID:???
2019/04/05(金) 20:01:23.37ID:???
2019/04/05(金) 20:03:48.29ID:???
それをうまく逆手に取れば自然な位置偽装工作も可能だろう
2019/04/06(土) 00:15:23.15ID:???
あちこちのサイトで見かけるpopper.js って何をしているのでしょう?
2019/04/06(土) 00:17:26.32ID:???
そのくらい調べろボケ
2019/04/06(土) 00:33:43.84ID:???
>>715
調べて分からないのです 観察上はBootstrap使う時につきものみたいですが
調べて分からないのです 観察上はBootstrap使う時につきものみたいですが
2019/04/06(土) 06:52:54.05ID:???
移動してるとセルラーやWifiの電波状況、方位や加速度センサーの値が変化する
2019/04/06(土) 07:12:03.07ID:???
2019/04/06(土) 07:18:51.27ID:???
popper.jsぐぐっても分からない?
ならプログラミングの適性ないから止めてけ
ならプログラミングの適性ないから止めてけ
2019/04/06(土) 10:53:44.12ID:???
2019/04/06(土) 14:57:17.08ID:???
昔作ったサイトからPopper.jsを外しても動作変わらんかったw
2019/04/06(土) 16:53:59.55ID:???
設計とかのことを考えたら結構その動画はヤバい気がするけどどうなんだろ
2019/04/06(土) 18:11:57.01ID:???
どうなんだろって質問なんだろうか?どうなんだろ
2019/04/06(土) 18:31:43.36ID:???
RPGなんて恐れ多い物に手を出そうとする奴は
間違いなく将来強い拘り持って孤立するへんくうな奴だけど
JS仙人になれる資格を有する
そういう奴は多少変な教え方されようがされまいが
すぐに自分の心理へとたどり着けるので問題はない
間違いなく将来強い拘り持って孤立するへんくうな奴だけど
JS仙人になれる資格を有する
そういう奴は多少変な教え方されようがされまいが
すぐに自分の心理へとたどり着けるので問題はない
2019/04/06(土) 18:32:18.94ID:???
心理→真理 ね
2019/04/07(日) 11:31:02.53ID:???
JavaScriptで共有の値渡しだの参照の渡しだのいろいろ言われてるのは結局どういうことなのですか?
2019/04/07(日) 12:08:31.05ID:???
なにが?
2019/04/07(日) 22:57:21.90ID:???
>>726
単一存在にいろんな場所からいろんな名前が付けられていくイメージをするといいよ
単一存在にいろんな場所からいろんな名前が付けられていくイメージをするといいよ
2019/04/08(月) 22:22:10.02ID:???
<div id="wrap">
<canvas id="canvas-1" width="640" height="480"></canvas>
<canvas id="canvas-2" width="640" height="480"></canvas>
<canvas id="canvas-3" width="640" height="480"></canvas>
</div>
canvasをabsoluteで重ねてレイヤー化。
各々単独レイヤーのみでのtoDataURL()でpng/jpeg化。
var d = data:image/png;base64,・・・
ここまではできてます。
複数の、例えば#canvas-1と#canvas-2を結合したdを得るにはどうしたらいいでしょうか?
または複数のdを結合してあたかも1層のようにさせる関数やライブラリなどありますか?
OSやブラウザは最新のものに対応してればいいです。お願いします。
<canvas id="canvas-1" width="640" height="480"></canvas>
<canvas id="canvas-2" width="640" height="480"></canvas>
<canvas id="canvas-3" width="640" height="480"></canvas>
</div>
canvasをabsoluteで重ねてレイヤー化。
各々単独レイヤーのみでのtoDataURL()でpng/jpeg化。
var d = data:image/png;base64,・・・
ここまではできてます。
複数の、例えば#canvas-1と#canvas-2を結合したdを得るにはどうしたらいいでしょうか?
または複数のdを結合してあたかも1層のようにさせる関数やライブラリなどありますか?
OSやブラウザは最新のものに対応してればいいです。お願いします。
2019/04/09(火) 00:09:33.21ID:???
「canvas 画像 合成」で検索すれば?
2019/04/09(火) 00:22:04.60ID:???
個人的にはcanvas一個にまとめたほうが楽で軽い気がする
2019/04/09(火) 06:16:41.96ID:???
OffscreenCanvasをいくつも持っておいて1つのCanvasにputImageでいいじゃん
2019/04/09(火) 17:28:10.05ID:???
javascriptってブラウザを使ってローカルで開くだけで動作するるですか?
2019/04/09(火) 18:07:06.32ID:???
はい
2019/04/09(火) 18:07:27.93ID:???
webページ右クリック名前をつけて保存→開いてみたらええで
2019/04/09(火) 22:26:33.63ID:???
>>732
すみません、もうちょっと詳しくお願いします
すみません、もうちょっと詳しくお願いします
2019/04/09(火) 22:32:57.53ID:???
canvasって裏側でレイヤー複数持つ事できないの?
合わせてダブルバッファリングみたいにして一括描画、みたいな
合わせてダブルバッファリングみたいにして一括描画、みたいな
2019/04/10(水) 04:34:15.00ID:???
すぐ上に方法書いてあるじゃん
2019/04/10(水) 05:24:18.22ID:???
canvas には、Win32 API の、BitBlt() みたいな、
転送元から転送先へのブロックコピー機能は、無いの?
ダブルバッファリングみたいに、一旦、裏側のバッファへ、
幾つかのシーンを合成して描いておいてから、ディスプレイに切り替えるような
>>733
実行環境はブラウザ・Node.js の2つがある
ブラウザのコンソール画面で、コード片を実行するか、
VSCode, Node.js をインストールしておいて、VSCodeからNode.jsで実行するか
転送元から転送先へのブロックコピー機能は、無いの?
ダブルバッファリングみたいに、一旦、裏側のバッファへ、
幾つかのシーンを合成して描いておいてから、ディスプレイに切り替えるような
>>733
実行環境はブラウザ・Node.js の2つがある
ブラウザのコンソール画面で、コード片を実行するか、
VSCode, Node.js をインストールしておいて、VSCodeからNode.jsで実行するか
2019/04/10(水) 06:52:30.97ID:???
見えないCanvas好きなだけ用意して好きなだけdrawImageで合成して見えるCanvasにdrawImageすればいいじゃん
上品にOffscreenCanvasとcommit()でやってもいいし
上品にOffscreenCanvasとcommit()でやってもいいし
2019/04/10(水) 10:08:26.03ID:???
>>739
>canvas には、Win32 API の、BitBlt() みたいな、
>転送元から転送先へのブロックコピー機能は、無いの?
>ダブルバッファリングみたいに、一旦、裏側のバッファへ、
>幾つかのシーンを合成して描いておいてから、ディスプレイに切り替えるような
あるよ。
http://nowsmartsoft.atwebpages.com/demo1/index.html
の Caret Blink で、それやってる。
Caret の下の canvas 画像を読み込んで、RGB データの色を
反転してから、danvas に過去戻すみたいなこと。
canvas は、back surface みたいなものも持てる。
>canvas には、Win32 API の、BitBlt() みたいな、
>転送元から転送先へのブロックコピー機能は、無いの?
>ダブルバッファリングみたいに、一旦、裏側のバッファへ、
>幾つかのシーンを合成して描いておいてから、ディスプレイに切り替えるような
あるよ。
http://nowsmartsoft.atwebpages.com/demo1/index.html
の Caret Blink で、それやってる。
Caret の下の canvas 画像を読み込んで、RGB データの色を
反転してから、danvas に過去戻すみたいなこと。
canvas は、back surface みたいなものも持てる。
2019/04/10(水) 10:18:34.24ID:???
誤:反転してから、danvas に過去戻すみたいなこと。
正:反転してから、canvas に描き戻すみたいなこと。
確か、 var canvas = document.createElement("canvas") みたいにすれば、
back surface 的な canvas を作れる。例えば、
appendChild(canvas)
としない限りは、画面に表示されることは無い。
正:反転してから、canvas に描き戻すみたいなこと。
確か、 var canvas = document.createElement("canvas") みたいにすれば、
back surface 的な canvas を作れる。例えば、
appendChild(canvas)
としない限りは、画面に表示されることは無い。
2019/04/10(水) 11:08:23.10ID:???
それとこないだ追加されたオフスクリーンキャンバスってのはどういうところが違うの?
2019/04/10(水) 11:33:10.42ID:???
>>743
同じハズ。
同じハズ。
2019/04/10(水) 13:21:37.78ID:???
>>744
知らないなら黙っているということができないのか
オフスクリーンキャンバスを使った
JavaScriptのマルチスレッド描画
- スムーズなユーザー操作実現の切り札
https://ics.media/entry/19043/
> OffscreenCanvasはWeb Workers(ウェブワーカーズ)を使用してWorkerスレッドで描画処理を行える機能です。
負荷の高い描画処理をWorkerスレッドに移動することで、メインスレッドの負担が軽くなり、余裕ができます。
これによりメインスレッドでスムーズなユーザー操作を実現できるようになり、ユーザー体験の向上が期待できます。
> OffscreenCanvasの使用方法
> メインスレッドでDOMから取得したCanvas要素に対し、transferControlToOffscreen()メソッドを呼ぶことでOffscreenCanvasオブジェクトを取得できます。
このOffscreenCanvasオブジェクトのコンテキストに対して行った描画命令は自動的にもとのCanvas要素に反映されます。
OffscreenCanvasオブジェクトをWorkerに転送し、描画を行います。
知らないなら黙っているということができないのか
オフスクリーンキャンバスを使った
JavaScriptのマルチスレッド描画
- スムーズなユーザー操作実現の切り札
https://ics.media/entry/19043/
> OffscreenCanvasはWeb Workers(ウェブワーカーズ)を使用してWorkerスレッドで描画処理を行える機能です。
負荷の高い描画処理をWorkerスレッドに移動することで、メインスレッドの負担が軽くなり、余裕ができます。
これによりメインスレッドでスムーズなユーザー操作を実現できるようになり、ユーザー体験の向上が期待できます。
> OffscreenCanvasの使用方法
> メインスレッドでDOMから取得したCanvas要素に対し、transferControlToOffscreen()メソッドを呼ぶことでOffscreenCanvasオブジェクトを取得できます。
このOffscreenCanvasオブジェクトのコンテキストに対して行った描画命令は自動的にもとのCanvas要素に反映されます。
OffscreenCanvasオブジェクトをWorkerに転送し、描画を行います。
2019/04/10(水) 14:05:57.84ID:???
2019/04/10(水) 14:20:38.90ID:???
>>745
あー、そういえば、そんなの聞いたことがある。
ただ、マルチスレッドで高速化しようとする技術だと思うので、
マルチスレッドへの対応が微妙な段階にある WebAssembly では
使えるかどうかはやってみないと分からないかも。
あー、そういえば、そんなの聞いたことがある。
ただ、マルチスレッドで高速化しようとする技術だと思うので、
マルチスレッドへの対応が微妙な段階にある WebAssembly では
使えるかどうかはやってみないと分からないかも。
2019/04/10(水) 14:25:24.38ID:???
>BitBltとどこが違うか聞いてるんじゃないよ?
> >>743の「それ」とどこが違うのかを聞いてる。
マルチスレッドで出来るかどうかだと思う。
WebWorkerというのは、MainThreadとは別のスレッドで起動するプログラムで、
「OffscreenCanvas」というものは、そのスレッドを使って、MainThreadとは
別のCPUコアで描画しよう、というものだと思う。
高速化や、レスポンスのよさ(?)の追求に使うのかな。
でもたしか、OffscreenCanvas自体が新しい仕様なので、まだ、使えない
環境の人が多すぎて、使うのには速すぎるんじゃなかろうか。確か。
> >>743の「それ」とどこが違うのかを聞いてる。
マルチスレッドで出来るかどうかだと思う。
WebWorkerというのは、MainThreadとは別のスレッドで起動するプログラムで、
「OffscreenCanvas」というものは、そのスレッドを使って、MainThreadとは
別のCPUコアで描画しよう、というものだと思う。
高速化や、レスポンスのよさ(?)の追求に使うのかな。
でもたしか、OffscreenCanvas自体が新しい仕様なので、まだ、使えない
環境の人が多すぎて、使うのには速すぎるんじゃなかろうか。確か。
2019/04/10(水) 14:27:30.65ID:???
https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas#Browser_compatibility
まだ、Safari が対応してないので、iPhone、iPad、Mac では使ってもらいにくい
と思う。
まだ、Safari が対応してないので、iPhone、iPad、Mac では使ってもらいにくい
と思う。
2019/04/10(水) 17:57:49.53ID:???
Magnific Pop Up
Owl Carousel
2つセットで使われていることが多い。
この時それぞれどんな動作しているのかいまだにわからない。
Owl Carousel
2つセットで使われていることが多い。
この時それぞれどんな動作しているのかいまだにわからない。
2019/04/10(水) 18:54:30.16ID:???
owlってかなり古いぞ
2019/04/10(水) 20:26:00.82ID:???
>>747
今のWebには「off-the-main-thread」って言葉があるんだよ
高速化云々ではなく、メインスレッドでやる必要の無いことは別のスレッドでやろうという
勿論理由もあるけど、「Extensible Web」のような原理主義ポリシー
OffscreenCanvasはそうした使い方もできるし、単純にcreateElement('canvas')で仮の要素を作るという
ちょっと気持ち悪さをなくすためだけにも使える
今のWebには「off-the-main-thread」って言葉があるんだよ
高速化云々ではなく、メインスレッドでやる必要の無いことは別のスレッドでやろうという
勿論理由もあるけど、「Extensible Web」のような原理主義ポリシー
OffscreenCanvasはそうした使い方もできるし、単純にcreateElement('canvas')で仮の要素を作るという
ちょっと気持ち悪さをなくすためだけにも使える
2019/04/10(水) 20:50:55.69ID:???
>>731
なんのためのレイヤーなのか
なんのためのレイヤーなのか
2019/04/10(水) 21:28:34.85ID:???
>>752
ほう。今時は何が流行りですか?
ほう。今時は何が流行りですか?
2019/04/10(水) 22:37:01.44ID:???
OffscreenCanvasなんぞ使わなくても
ゲームしか想定してないのか
CADのレイヤーを想定したらいいし元からそういう話
ゲームしか想定してないのか
CADのレイヤーを想定したらいいし元からそういう話
2019/04/11(木) 06:14:48.12ID:???
OffscreenCanvasなんぞってOffscreenCanvasは別に大層なもんじゃないぞ
レイヤー用途でも普通に気軽に使えるもの
レイヤー用途でも普通に気軽に使えるもの
2019/04/11(木) 08:48:37.32ID:???
ではセーラーマーズのコスプレで踏みつけて欲しい。
2019/04/11(木) 10:07:49.46ID:???
複数のCanvasを結合し、1つの画像として保存したい
https://teratail.com/questions/25283
てのがあったけど、これできる?
最後「;」入れても何も表示されないのだが
https://teratail.com/questions/25283
てのがあったけど、これできる?
最後「;」入れても何も表示されないのだが
2019/04/11(木) 10:34:50.77ID:???
createImageがonload待たずにimage返しちゃってるからじゃね
2019/04/11(木) 12:47:13.04ID:???
バカすぎ
わざわざdataURLとか取らなくてもdrawImageには直接Canvas指定できるっつうの
わざわざdataURLとか取らなくてもdrawImageには直接Canvas指定できるっつうの
2019/04/11(木) 14:21:10.21ID:???
ドメインが別だと使えないぞ
2019/04/11(木) 15:56:16.80ID:???
2019/04/11(木) 18:55:50.18ID:???
>>762
もしお前が知りたければそれはお前が調べることだから
つうか調べる必要すらない、全部言ってるんだから
その上でただコードを要求するとかお前失礼な奴だな
だから俺は意地でも見本は書かない
何が嬉しくてバカがバカ言って大バカになる手伝いをしないといけないんだ
もしお前が知りたければそれはお前が調べることだから
つうか調べる必要すらない、全部言ってるんだから
その上でただコードを要求するとかお前失礼な奴だな
だから俺は意地でも見本は書かない
何が嬉しくてバカがバカ言って大バカになる手伝いをしないといけないんだ
2019/04/11(木) 19:33:40.95ID:???
日本語が変な人がバカバカ言ってて草
2019/04/11(木) 19:48:41.33ID:???
2019/04/11(木) 19:59:05.42ID:???
なんでこんなにイキり屋が多いのか?
2019/04/11(木) 20:56:12.99ID:???
誰か俺のいきり立ったチンポを見てくれ
2019/04/11(木) 21:30:41.08ID:???
2019/04/11(木) 22:01:20.05ID:???
>>766
それだけjsは誰にでも出来る簡単な言語って事なんだ
それだけjsは誰にでも出来る簡単な言語って事なんだ
2019/04/11(木) 22:29:24.01ID:???
よくある
canvasは罠が多い
canvasは罠が多い
2019/04/11(木) 22:39:18.74ID:???
canvasの罠ではないしcanvasの罠はDOMなどに比べても相当少ない
2019/04/11(木) 23:03:01.38ID:???
canvasってあんまり使わないから動作確認がし辛い
俺だけ?
俺だけ?
2019/04/11(木) 23:21:15.04ID:???
webglをスクラッチから思い出しながら100行程度最小限用意するのは面倒だが
2dなんて10行程度でしょ
2dなんて10行程度でしょ
2019/04/12(金) 09:57:52.15ID:???
スマホ持ってないんだけど、input タグでの 仮想キーボード(?)を
Chromeで Emulate 出来る?
開発者モードのスマホエミュレートモードで「Nexus 5」モードにして、
Landscape keyboard をチェックしてみると、仮想キーボードの画像自体
は表示できたんだけど、そのボタンをマウスでクリックしても input タグには
文字が入力されない。
Chromeで Emulate 出来る?
開発者モードのスマホエミュレートモードで「Nexus 5」モードにして、
Landscape keyboard をチェックしてみると、仮想キーボードの画像自体
は表示できたんだけど、そのボタンをマウスでクリックしても input タグには
文字が入力されない。
2019/04/12(金) 11:51:41.04ID:???
エミュレートのinputやselectなど入力に関するものはサッパリダメだ
2019/04/12(金) 12:17:17.64ID:???
例えば、Fire 7 タブレットとか、Wifi接続専用(?)のAndroidタブレットを
買った場合、USBケーブルでPCのデータを転送してフォルダやファイルの内容を
見たり出来る? 例えば、html を転送したりとか。
あと、PCで使ってるモデムとかから有線 LAN ケーブルを使っての Web ページ
の閲覧とかも出来るのかな?
買った場合、USBケーブルでPCのデータを転送してフォルダやファイルの内容を
見たり出来る? 例えば、html を転送したりとか。
あと、PCで使ってるモデムとかから有線 LAN ケーブルを使っての Web ページ
の閲覧とかも出来るのかな?
2019/04/12(金) 12:28:59.84ID:???
>>777
何でもできる
何でもできる
779Name_Not_Found
2019/04/12(金) 14:19:19.97ID:cHAK/luG お金がほしいです。どなたか恵んでくださいませ。
運気が上がり、きっと幸せになります。天国に行けます、多分。
運気が上がり、きっと幸せになります。天国に行けます、多分。
2019/04/12(金) 16:33:52.55ID:???
document.createRange();で作れるRangeオブジェクトってどういう時に使うの?
MDN読んでもよく分からんので使ったことある人教えてください。
MDN読んでもよく分からんので使ったことある人教えてください。
2019/04/12(金) 16:52:36.60ID:???
document.designMode = 'on';
するのと、
htmlタグの属性でcontnteditable="true"
付けるのとの違いはなんでしょう?
編集可能になった後の挙動は同じように見えるのですが。
document.designModeが'off'の状態でhtmlをcontnteditable="true"してもdocument.designModeは'off'のままです。
つまり別の機能?挙動が同じなのに?なぜ1つにしなかったのでしょう??
するのと、
htmlタグの属性でcontnteditable="true"
付けるのとの違いはなんでしょう?
編集可能になった後の挙動は同じように見えるのですが。
document.designModeが'off'の状態でhtmlをcontnteditable="true"してもdocument.designModeは'off'のままです。
つまり別の機能?挙動が同じなのに?なぜ1つにしなかったのでしょう??
2019/04/12(金) 16:53:22.83ID:???
jsライブラリの表はクソ重いからcanvasがいい
2019/04/12(金) 20:23:40.94ID:???
2019/04/12(金) 21:15:49.18ID:???
>>778
最初は、Chromeがインストールされて無いらしいんだけど、
Google Play をインストールした後、APKファイルをDLした
らインストールできるの?
PCでAPKファイルをDLしておいて、Fire 7 端末にUSB経由でコピー
してもインストールできるのかな?
最初は、Chromeがインストールされて無いらしいんだけど、
Google Play をインストールした後、APKファイルをDLした
らインストールできるの?
PCでAPKファイルをDLしておいて、Fire 7 端末にUSB経由でコピー
してもインストールできるのかな?
2019/04/12(金) 21:48:15.20ID:???
つうかそういうこねくり回すくらいなら最初から
Huaweiのタブレット買ったほうが良いと思うよ
dtabとか性能そこそこだけど解像度抜群で回覧用タブレットにはベスト
中古1万くらいで売ってるでしょ
Huaweiのタブレット買ったほうが良いと思うよ
dtabとか性能そこそこだけど解像度抜群で回覧用タブレットにはベスト
中古1万くらいで売ってるでしょ
2019/04/12(金) 22:38:05.78ID:???
CDNで読む混む時の
integrity=
って必要なの?
integrity=
って必要なの?
2019/04/13(土) 00:40:41.66ID:???
いらない
2019/04/13(土) 20:03:37.26ID:???
スライドパズルのサンプルはないでしょうか?
いろいろ調べたんですが、動かないものが多くて困ってます
ドットインストールのものは途中から有料のようです
いろいろ調べたんですが、動かないものが多くて困ってます
ドットインストールのものは途中から有料のようです
2019/04/13(土) 20:51:25.47ID:???
>>788
いろいろ調べた?
サンプルなんか腐るほど見つかるが…
これは?
https://github.com/imshubhamsingh/15-puzzle
動いてるぞ
https://15puzzle.netlify.com
現代人とは思えない致命的な検索力のなさだな。そっちの方を何とかした方がいい。マジで。
いろいろ調べた?
サンプルなんか腐るほど見つかるが…
これは?
https://github.com/imshubhamsingh/15-puzzle
動いてるぞ
https://15puzzle.netlify.com
現代人とは思えない致命的な検索力のなさだな。そっちの方を何とかした方がいい。マジで。
2019/04/13(土) 20:55:06.80ID:???
生jsのほうがいいならこれとか
https://github.com/diffdiff/15-puzzle
https://blooming-fortress-48092.herokuapp.com 👀
Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf289)
https://github.com/diffdiff/15-puzzle
https://blooming-fortress-48092.herokuapp.com 👀
Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf289)
2019/04/13(土) 22:25:18.31ID:???
こんなコード入社したばかりの新人が
かけるわけないじゃないですかwww
かけるわけないじゃないですかwww
2019/04/13(土) 23:23:56.25ID:???
この程度も書けない奴なんて要らねーよ
2019/04/14(日) 01:33:49.99ID:???
15パズル作れって言われたら、速攻で著作権ないコードをgithubから探すわ
2019/04/14(日) 03:05:01.94ID:???
仕事ならそれでも良いが、課題だったらアウトだぞ
出題した人も探せるわけだから
出題した人も探せるわけだから
2019/04/14(日) 03:35:10.51ID:???
複雑なコード人の人なりのサンプル見て理解してかけるなら0から作れる力があると思うぞ
特にJSって自由で人のコード理解して真似するの難しいのだから
特にJSって自由で人のコード理解して真似するの難しいのだから
2019/04/14(日) 05:00:23.25ID:???
HTML で( 表を使って? )、数字の書いた、16個のセルを作って、
その数字を、jQuery で書き換えていけば、簡単なのでは?
入力は、4つの矢印キーで
その数字を、jQuery で書き換えていけば、簡単なのでは?
入力は、4つの矢印キーで
2019/04/14(日) 06:16:34.34ID:???
絵をバラバラにすることなど考えたらCanvasでやる方が良いと思う
2019/04/14(日) 07:18:40.52ID:???
>>797
CSSスプライトでもっと簡単にできるだろ
CSSスプライトでもっと簡単にできるだろ
2019/04/14(日) 07:20:43.99ID:???
15パズルは「解なし」がありえるんで
それをどうやって判定するか or
「解なし」にならないシャッフルを行うか
が肝だろう
それをどうやって判定するか or
「解なし」にならないシャッフルを行うか
が肝だろう
2019/04/14(日) 07:25:35.35ID:???
godot pythonでやってたんですが、チュートが少なかったのでとりあえずこっちゃきました
2019/04/14(日) 08:30:24.30ID:???
絶対に正解にたどり着かない、盤面を判定するのは、難しいから、
最初に、正解の盤面を作って、
そこから10〜20回ほど、ランダムに動かしてから、問題を作る
最初に、正解の盤面を作って、
そこから10〜20回ほど、ランダムに動かしてから、問題を作る
2019/04/14(日) 10:39:41.21ID:???
>>789
日本語の説明がないと結局ロジックがよくわからなんだです
日本語の説明がないと結局ロジックがよくわからなんだです
2019/04/14(日) 11:33:49.77ID:???
ドットンストールにあるなら一ヶ月だけ金払って有料動画見まくれればいいんじゃないの
2019/04/14(日) 11:40:14.36ID:???
これぐらいなら書けたけど、15 パズルは難しい!
jQuery のバージョンは、もっと新しいのがあるかも
<body>
<table id="board">
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
<tr><td>7</td><td>8</td><td></td></tr>
</table>
<script type="text/javascript" src="../jQuery/jquery-3.1.0.js"></script>
<script>
$( document ).ready ( function( ) {
$( 'body' ).keydown ( function( e ) {
switch( e.key ) {
// 32:空白、37:←、38:↑、39:→、40:↓
case " " :
case "ArrowLeft" :
case "ArrowRight" :
case "ArrowUp" :
case "ArrowDown" : console.log( e.key );
}
} )
} );
</script>
</body>
jQuery のバージョンは、もっと新しいのがあるかも
<body>
<table id="board">
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
<tr><td>7</td><td>8</td><td></td></tr>
</table>
<script type="text/javascript" src="../jQuery/jquery-3.1.0.js"></script>
<script>
$( document ).ready ( function( ) {
$( 'body' ).keydown ( function( e ) {
switch( e.key ) {
// 32:空白、37:←、38:↑、39:→、40:↓
case " " :
case "ArrowLeft" :
case "ArrowRight" :
case "ArrowUp" :
case "ArrowDown" : console.log( e.key );
}
} )
} );
</script>
</body>
2019/04/14(日) 12:05:14.70ID:???
>>799
知能が低すぎる・・・
知能が低すぎる・・・
2019/04/14(日) 12:21:05.23ID:???
>>804
生のチュートください
生のチュートください
2019/04/14(日) 13:04:07.87ID:???
他のパズルに変えた方がよい
15 パズルは、ややこし過ぎる!
15 パズルは、ややこし過ぎる!
2019/04/14(日) 17:08:13.37ID:???
2019/04/14(日) 17:08:43.83ID:???
誰か教えて(´;ω;`)
2019/04/14(日) 17:12:58.47ID:???
2019/04/14(日) 17:16:48.64ID:???
>>808
うおすげぇ
うおすげぇ
812Name_Not_Found
2019/04/14(日) 17:21:28.97ID:c7X3oOAW >>810
なぜ同じことをレスしたのか
なぜ同じことをレスしたのか
2019/04/14(日) 17:25:08.50ID:???
>>808
レイアウト崩れるけど、サーバ使わないとだめなん?
レイアウト崩れるけど、サーバ使わないとだめなん?
2019/04/14(日) 17:30:58.90ID:???
概念的なロジック教えてください
それが英語だとわからない
それが英語だとわからない
2019/04/14(日) 17:33:21.62ID:???
2019/04/14(日) 17:56:17.89ID:???
これだけわかりやすいコードあるのにロジックがわからないってどういう事だ
コードに全て書いてあるじゃないか
コードに全て書いてあるじゃないか
2019/04/14(日) 18:05:58.78ID:???
2019/04/14(日) 18:19:09.32ID:???
>>816
わからんのなら黙っとけ
わからんのなら黙っとけ
819Name_Not_Found
2019/04/14(日) 18:30:31.66ID:yoZEsvZb2019/04/14(日) 18:41:58.82ID:???
2019/04/14(日) 18:41:59.79ID:???
wikipediaに日本語でアルゴリズム書いてあるだろ…
2019/04/14(日) 18:56:23.49ID:???
>>819
神!
神!
2019/04/14(日) 19:23:55.06ID:???
ごくまれにホントにデキる人が来るから2ちゃんねるって侮れない
2019/04/14(日) 19:39:58.67ID:???
2019/04/14(日) 21:09:03.21ID:???
2019/04/14(日) 21:09:17.98ID:???
関数の間違いでした
2019/04/14(日) 21:32:57.34ID:???
2019/04/14(日) 23:12:45.48ID:???
>>825
即時関数+無名関数
https://qiita.com/hiroshimaeasyryo/items/a270b00c420ed96f02f0
即時関数は即時実行できる関数
関数名は不要なので無名関数にしている
こう書くことで変数名を閉じ込めることが出来るので、他のコードに影響を与えない
まぁ要するに便利な書き方だ
即時関数+無名関数
https://qiita.com/hiroshimaeasyryo/items/a270b00c420ed96f02f0
即時関数は即時実行できる関数
関数名は不要なので無名関数にしている
こう書くことで変数名を閉じ込めることが出来るので、他のコードに影響を与えない
まぁ要するに便利な書き方だ
2019/04/14(日) 23:53:09.23ID:???
const,let使ってんなら名前付き関数にして呼び出しでいいんじゃないの?
2019/04/14(日) 23:54:41.01ID:???
2019/04/15(月) 01:03:14.64ID:???
>>830
うちのEdgeでは普通に動いてるよ
IE11はread onlyになるけど、それでも動くことは動くし
あと矢印キーのほうが楽だとは思わないし、スマホやタブレットのこと考えたら、
clickのほうが手間が省けるだろ
うちのEdgeでは普通に動いてるよ
IE11はread onlyになるけど、それでも動くことは動くし
あと矢印キーのほうが楽だとは思わないし、スマホやタブレットのこと考えたら、
clickのほうが手間が省けるだろ
2019/04/15(月) 05:40:17.90ID:???
2019/04/15(月) 11:51:58.02ID:???
Androidに最初から入っているブラウザなどで、ある機能が使えないときに
エラーを出すのはどうしたらいいでしょう?
まだ実行して無くても、後の方の行に関数が書いてあるだけでもスクリプト自体が
エラーになって停止してしまって、肝心のエラー表示のロジック部分は実行される
事がない場合があるようです。つまり、
// 判定ロジックのつもり :
if ( !(関数 aaa が定義されているか?) ) {
alert( "aaa が使えません。" );
}
・・・
aaa();
とすると、関数 aaa が使えない場合でも、alert() 部分が実行される前に
実行前の先読みのような感じで aaa の呼び出し部分が先にパースだけされて
しまって、そこでスクリプト自体がエラーで停止してしまう事があるようです。
なんというか、先読みでパースされて内部でJITコンパイルされてから、
実行に移るからではないかと思っているのですが。
エラーを出すのはどうしたらいいでしょう?
まだ実行して無くても、後の方の行に関数が書いてあるだけでもスクリプト自体が
エラーになって停止してしまって、肝心のエラー表示のロジック部分は実行される
事がない場合があるようです。つまり、
// 判定ロジックのつもり :
if ( !(関数 aaa が定義されているか?) ) {
alert( "aaa が使えません。" );
}
・・・
aaa();
とすると、関数 aaa が使えない場合でも、alert() 部分が実行される前に
実行前の先読みのような感じで aaa の呼び出し部分が先にパースだけされて
しまって、そこでスクリプト自体がエラーで停止してしまう事があるようです。
なんというか、先読みでパースされて内部でJITコンパイルされてから、
実行に移るからではないかと思っているのですが。
834Name_Not_Found
2019/04/15(月) 11:59:25.67ID:sdLCdqLM hrefとsrc以外の属性を削除したいのですがどうすればいいでしょうか?
var tag = document.getElementsByTagName("*");
for (i=0; i < tag.length; i++)
{
for (j=0; j < tag[i].attributes.length; j++)
{
if (tag[i].attributes[j].nodeName === "href" || tag[i].attributes[j].nodeName === "src")
{
//console.log(tag[i].attributes[j].nodeName);
//hrefとsrcが表示される
}
else
{
//console.log(tag[i].attributes[j].nodeName);
//styleとwidthを含めて全部表示される
tag[i].removeAttribute(tag[i].attributes[j].nodeName);
//styleとwidthを削除できない場合がある
}
}
}
var tag = document.getElementsByTagName("*");
for (i=0; i < tag.length; i++)
{
for (j=0; j < tag[i].attributes.length; j++)
{
if (tag[i].attributes[j].nodeName === "href" || tag[i].attributes[j].nodeName === "src")
{
//console.log(tag[i].attributes[j].nodeName);
//hrefとsrcが表示される
}
else
{
//console.log(tag[i].attributes[j].nodeName);
//styleとwidthを含めて全部表示される
tag[i].removeAttribute(tag[i].attributes[j].nodeName);
//styleとwidthを削除できない場合がある
}
}
}
2019/04/15(月) 12:02:52.36ID:???
機能判定には、modernizr だろ
2019/04/15(月) 12:07:01.19ID:???
>>834
一旦、すべての属性を削除してから、href, src を追加すれば?
一旦、すべての属性を削除してから、href, src を追加すれば?
2019/04/15(月) 12:13:08.01ID:???
15パズル作れれば強くなれますか
2019/04/15(月) 12:18:42.96ID:???
vs code 使用なんですが、javascriptファイルだけをコンソールででバックする方法はないんでしょうか?
いちいちhtml作ってalertするしかないんですか?
いちいちhtml作ってalertするしかないんですか?
2019/04/15(月) 12:18:46.21ID:???
バナナはおやつに入りますか?
2019/04/15(月) 12:38:43.97ID:???
>>833
typeof演算子を使えばよい
typeof演算子を使えばよい
2019/04/15(月) 12:51:39.29ID:???
>>834
attributesから属性ノードを得たなら、nameプロパティで属性名を取得するものでは?
removeNamedItem() で削除では?
削除できない場合の再現コードは?
ttps://dom.spec.whatwg.org/#dom-element-attributes
attributesから属性ノードを得たなら、nameプロパティで属性名を取得するものでは?
removeNamedItem() で削除では?
削除できない場合の再現コードは?
ttps://dom.spec.whatwg.org/#dom-element-attributes
2019/04/15(月) 12:56:54.74ID:???
>>840
よく読んでもらえば書いてあるのですが、それだと、aaa() のように関数を
呼び出す場所を、実際には呼び出さない場合でもコンパイルのために読み込んで
しまい、そこでエラーになってしまうことがあるんです。
その場合、エラーになるだけで、判定ロジックは実行されず、alert()
メッセージは表示できません。
よく読んでもらえば書いてあるのですが、それだと、aaa() のように関数を
呼び出す場所を、実際には呼び出さない場合でもコンパイルのために読み込んで
しまい、そこでエラーになってしまうことがあるんです。
その場合、エラーになるだけで、判定ロジックは実行されず、alert()
メッセージは表示できません。
2019/04/15(月) 12:58:49.15ID:???
2019/04/15(月) 12:59:08.93ID:???
evalでいけんじゃんね?
2019/04/15(月) 13:01:54.04ID:???
数字アレルギーの直し方教えてください
2019/04/15(月) 13:38:35.39ID:???
847Name_Not_Found
2019/04/15(月) 13:56:37.71ID:3HCQ3plR >>842
そりゃコンパイラがおかしいんでね?
そりゃコンパイラがおかしいんでね?
2019/04/15(月) 14:20:49.73ID:???
IEだけでなく、NoxPlayerに最初から入ってるブラウザもエラーが出ませんでした。
2019/04/15(月) 14:21:39.73ID:???
誤:エラーが出ませんでした。
正:判定ロジックによる alert() 表示が出ませんでした。
正:判定ロジックによる alert() 表示が出ませんでした。
2019/04/15(月) 18:21:37.94ID:???
>>834
function removeUnnecessaryAttrs(tagName) {
const tags = document.getElementsByTagName(tagName);
for (let i = 0; i < tags.length; ++i) {
const t = tags[i];
const n = document.createElement(tagName);
n.src = t.src;
n.href = t.href;
t.parentNode.replaceChild(n, t);
}
}
いちいち属性名しらべたりしないで、新しいの作って差し替えるほうがらくじゃね?
function removeUnnecessaryAttrs(tagName) {
const tags = document.getElementsByTagName(tagName);
for (let i = 0; i < tags.length; ++i) {
const t = tags[i];
const n = document.createElement(tagName);
n.src = t.src;
n.href = t.href;
t.parentNode.replaceChild(n, t);
}
}
いちいち属性名しらべたりしないで、新しいの作って差し替えるほうがらくじゃね?
2019/04/15(月) 19:13:32.51ID:???
15パズルやってるんですが、すでに5行目くらいから理解できないのですが、わからない時のアプローチっていうんですか?
なんか、理解を助ける方法みたいなものありますか?
なんか、理解を助ける方法みたいなものありますか?
2019/04/15(月) 19:21:44.68ID:???
五行目ってこれ?
let container = null; // パズル本体
これ分からないなら、無理だと思う。いくら何でも基礎知識が無さすぎる
そもそも、15パズルから入るのは変だと思う
DOM操作か何か、もっと基礎的なところから始めたら?
let container = null; // パズル本体
これ分からないなら、無理だと思う。いくら何でも基礎知識が無さすぎる
そもそも、15パズルから入るのは変だと思う
DOM操作か何か、もっと基礎的なところから始めたら?
2019/04/15(月) 19:43:37.29ID:???
それじゃないです
function slide(elem, dx, dy) {
const x = Math.max(Math.min(3, parseInt(elem.dataset.x) + dx), 0);
}
function()
これです
それはからの変数定義ですよね
最も大きい数字をとってくるのがmath.max、小さい数字がmath.minというのがわかるのですが、これ一行ではデバッグしてもエラーになります
function slide(elem, dx, dy) {
const x = Math.max(Math.min(3, parseInt(elem.dataset.x) + dx), 0);
}
function()
これです
それはからの変数定義ですよね
最も大きい数字をとってくるのがmath.max、小さい数字がmath.minというのがわかるのですが、これ一行ではデバッグしてもエラーになります
2019/04/15(月) 19:58:36.32ID:???
>>853
一行だけ実行してもそりゃエラーが出る
全体を通せばエラーにはならない
https://jsfiddle.net/obscd3ea/
clickにaction()をバインド→actionの中でslide()を呼び出している
そして更にelem、(多分パズルのピースのdivかなんか)を渡している
一行だけ実行してもそりゃエラーが出る
全体を通せばエラーにはならない
https://jsfiddle.net/obscd3ea/
clickにaction()をバインド→actionの中でslide()を呼び出している
そして更にelem、(多分パズルのピースのdivかなんか)を渡している
2019/04/15(月) 19:58:36.78ID:???
>>851
分割統治法
分割統治法
2019/04/15(月) 20:21:11.03ID:???
PlayCanvasは普及するでしょうか?
2019/04/15(月) 20:26:09.81ID:???
するわけないじゃんwww
2019/04/15(月) 22:33:18.05ID:???
こういうのが全く無いのもいけないし、ありすぎてもいけない
誰も使わないと途絶えるし、流行りすぎると弊害がある
今くらいが本当にちょうどいい
誰も使わないと途絶えるし、流行りすぎると弊害がある
今くらいが本当にちょうどいい
2019/04/16(火) 00:06:29.74ID:???
初歩的な質問ですみません。
a:hoverした際に、該当のhtmlページをiframeで表示する機能を実装したいのですが、
何か手頃なソースなどはありますか?
調べても、リンクの側に小さくサムネを表示させるようなものしか出てきません。
htmlの方は既に書き終えているのですが・・・aタグをホバーした時に反映されるようにするところで詰まってます
a:hoverした際に、該当のhtmlページをiframeで表示する機能を実装したいのですが、
何か手頃なソースなどはありますか?
調べても、リンクの側に小さくサムネを表示させるようなものしか出てきません。
htmlの方は既に書き終えているのですが・・・aタグをホバーした時に反映されるようにするところで詰まってます
2019/04/16(火) 01:04:51.28ID:???
2019/04/16(火) 05:09:37.00ID:???
>>838
Quokka.js という拡張機能で、
そのファイル内と端末に、リアルタイムに変数の内容が表示される
ただし、端末からしかコピーはできない。
ファイル内には、Canvas で出力しているのかも?
Ctrl+Shift+P で、Quokka.js new file で使える。
ただし、保存したファイルからは、使えない
Quokka.js という拡張機能で、
そのファイル内と端末に、リアルタイムに変数の内容が表示される
ただし、端末からしかコピーはできない。
ファイル内には、Canvas で出力しているのかも?
Ctrl+Shift+P で、Quokka.js new file で使える。
ただし、保存したファイルからは、使えない
2019/04/16(火) 05:21:46.29ID:???
2019/04/16(火) 05:22:48.22ID:???
>>859-860
「jquery hover」で検索!
$( セレクター ).hover(
function() {
//マウスカーソルが重なった時の処理
},
function() {
//マウスカーソルが離れた時の処理
}
);
「jquery hover」で検索!
$( セレクター ).hover(
function() {
//マウスカーソルが重なった時の処理
},
function() {
//マウスカーソルが離れた時の処理
}
);
2019/04/16(火) 07:01:38.78ID:???
ユーザーが入力したキーワードに当てはまるものを配列の中から選びたいです
これが完全一致とか部分一致の場合は簡単ですが、
似ているようなものを選択できる曖昧な一致を判断したいです
例えば「カエル」と言う言葉に対して「オーエス」よりも「カーネル」が
よりマッチしていると言う感じに判断したいのですが
良いアルゴリズムはありますでしょうか
これが完全一致とか部分一致の場合は簡単ですが、
似ているようなものを選択できる曖昧な一致を判断したいです
例えば「カエル」と言う言葉に対して「オーエス」よりも「カーネル」が
よりマッチしていると言う感じに判断したいのですが
良いアルゴリズムはありますでしょうか
2019/04/16(火) 07:19:46.32ID:???
機械学習・AI は、Python
2019/04/16(火) 08:37:47.05ID:???
2019/04/16(火) 08:39:59.18ID:???
2019/04/16(火) 09:19:37.30ID:???
>>867
聞くときだけ敬語?
聞くときだけ敬語?
2019/04/16(火) 09:23:23.46ID:???
ありがとうございますは敬語だろうが。コチャゴチャ抜かすとブッ飛ばすぞ。
2019/04/16(火) 10:03:14.97ID:???
871Name_Not_Found
2019/04/16(火) 10:36:58.59ID:cywz1gqj >>841
分岐を外してみたところ特定の属性ではなくて、偶数の属性を取りこぼしているようですが原因は何でしょうか?
<div onclick="alert()" title=div style="height:200px"></div>
<a title=test style="display:block" href=# target=blank>
<img alt="img1" src="1.jpg" style="height:100px" width="50%" title=img1>
</a>
<img title=img2 alt="img2" src="2.jpg" height=200 width="1%" data-src="2.png" onclick="alert()">
<script>
var tag = document.getElementsByTagName("*");
for (i=0; i < tag.length; i++)
{
for (j=0; j < tag[i].attributes.length; j++)
{
console.log(tag[i].attributes[j].name,j);
//tag[i].removeAttribute(tag[i].attributes[j].name);
tag[i].attributes.removeNamedItem(tag[i].attributes[j].name);
}
}
</script>
分岐を外してみたところ特定の属性ではなくて、偶数の属性を取りこぼしているようですが原因は何でしょうか?
<div onclick="alert()" title=div style="height:200px"></div>
<a title=test style="display:block" href=# target=blank>
<img alt="img1" src="1.jpg" style="height:100px" width="50%" title=img1>
</a>
<img title=img2 alt="img2" src="2.jpg" height=200 width="1%" data-src="2.png" onclick="alert()">
<script>
var tag = document.getElementsByTagName("*");
for (i=0; i < tag.length; i++)
{
for (j=0; j < tag[i].attributes.length; j++)
{
console.log(tag[i].attributes[j].name,j);
//tag[i].removeAttribute(tag[i].attributes[j].name);
tag[i].attributes.removeNamedItem(tag[i].attributes[j].name);
}
}
</script>
2019/04/16(火) 11:03:09.37ID:???
>>860>>863
https://jsfiddle.net/p6q0bo7g/1/
すみません、追加で質問です。このような形で、2つに分割した状態になってます。
この時、左側のタブのaタグをそれぞれhoverした時、右側のiframeにそれを反映する方法
について調べています。クリック時に表示させるところまではいったのですが、
ホバー時にも同様に表示させるところでつまずいています。
https://jsfiddle.net/p6q0bo7g/1/
すみません、追加で質問です。このような形で、2つに分割した状態になってます。
この時、左側のタブのaタグをそれぞれhoverした時、右側のiframeにそれを反映する方法
について調べています。クリック時に表示させるところまではいったのですが、
ホバー時にも同様に表示させるところでつまずいています。
2019/04/16(火) 11:17:28.18ID:???
配列の全要素に共通する前方一致文字列を置換したいのですが、何かいい方法ってありますか??
置換前
c:¥aaaa¥bbbb¥cccc¥a.txt
c:¥aaaa¥bbbb¥cccc¥b.txt
置換後
/home/a.txt
/home/b.txt
¥でスプリットしてループで回して確認していくしかないでしょうか。
置換前
c:¥aaaa¥bbbb¥cccc¥a.txt
c:¥aaaa¥bbbb¥cccc¥b.txt
置換後
/home/a.txt
/home/b.txt
¥でスプリットしてループで回して確認していくしかないでしょうか。
2019/04/16(火) 11:29:47.02ID:???
2019/04/16(火) 11:40:54.83ID:???
>>874
ご教示ありがとうございました
ご教示ありがとうございました
2019/04/16(火) 11:43:45.56ID:???
877Name_Not_Found
2019/04/16(火) 12:15:33.78ID:99qp+ZVK >>866
類語もある方がより良いとは思うのですが
私が今求めているものは、ユーザーがうろ覚えのキーワードを入力しても欲しかった用語がマッチするようにするための
単語の意味ではなく【文字間の関係性】を計算するアルゴリズムで、
今は「カエル」なら「カ→エ」「カ→ル」「エ→ル」
のような繋がりでチェックしたり、他にも文字数の一致度などから適当にやってまして
より精度を上げるためにローマ字化したりしようかなどと考えたのですが、もうすでにある程度確立された素敵なアルゴリズムや、モデルがあるのではないかと思い質問しました。
類語もある方がより良いとは思うのですが
私が今求めているものは、ユーザーがうろ覚えのキーワードを入力しても欲しかった用語がマッチするようにするための
単語の意味ではなく【文字間の関係性】を計算するアルゴリズムで、
今は「カエル」なら「カ→エ」「カ→ル」「エ→ル」
のような繋がりでチェックしたり、他にも文字数の一致度などから適当にやってまして
より精度を上げるためにローマ字化したりしようかなどと考えたのですが、もうすでにある程度確立された素敵なアルゴリズムや、モデルがあるのではないかと思い質問しました。
2019/04/16(火) 12:32:58.91ID:???
2019/04/16(火) 12:38:57.63ID:???
>>876
ありがとうございます。出来ました
ありがとうございます。出来ました
2019/04/16(火) 12:48:48.88ID:???
2019/04/16(火) 13:04:35.75ID:???
2019/04/16(火) 13:32:39.97ID:???
>>877
レーベンシュタイン距離とか
レーベンシュタイン距離とか
2019/04/16(火) 13:34:45.71ID:???
forやwhileについて勉強しています
全ての配列が対象の場合はmapやforEachのほうが簡便と書かれたサイトがあり、以下の
置き換えを試みたのですが上手くいきません。原因か、そもそも不理解でもあるのでしょうか
const getTag = doc.getElementsByTagName('a');
for (let i = 0; i < getTag.length; i = (i + 1) | 0) {
const node = getTag[i];
node.href = node.href.replace(/ttp/, 'ttps');
}
const getTag = doc.getElementsByTagName('a');
getTag .forEach(function(item, i) {
item[i].href = item[i].href.replace(/ttp/, 'ttps');
});
全ての配列が対象の場合はmapやforEachのほうが簡便と書かれたサイトがあり、以下の
置き換えを試みたのですが上手くいきません。原因か、そもそも不理解でもあるのでしょうか
const getTag = doc.getElementsByTagName('a');
for (let i = 0; i < getTag.length; i = (i + 1) | 0) {
const node = getTag[i];
node.href = node.href.replace(/ttp/, 'ttps');
}
const getTag = doc.getElementsByTagName('a');
getTag .forEach(function(item, i) {
item[i].href = item[i].href.replace(/ttp/, 'ttps');
});
2019/04/16(火) 13:50:51.32ID:???
2019/04/16(火) 13:52:43.45ID:???
2019/04/16(火) 14:33:43.04ID:???
>>883
getElementsByTagName()の返り値はArrayではなくHTMLCollectionだよ
forEach使いたいならHTMLCollectionをArrayに変換すること
Array.prototype.slice.call(docment.getElementsByTagName('a')).forEach(function(node){
node.href = node.href.replace('ttp', 'ttps');
});
あと、無駄に正規表現使うのはバカに見えるからやめたほうがいいぞ
getElementsByTagName()の返り値はArrayではなくHTMLCollectionだよ
forEach使いたいならHTMLCollectionをArrayに変換すること
Array.prototype.slice.call(docment.getElementsByTagName('a')).forEach(function(node){
node.href = node.href.replace('ttp', 'ttps');
});
あと、無駄に正規表現使うのはバカに見えるからやめたほうがいいぞ
2019/04/16(火) 15:10:34.12ID:???
…あまり強い言葉を使うなよ 弱く見えるぞ
2019/04/16(火) 15:14:58.68ID:???
正規表現使ったらバカに見えるのか
2019/04/16(火) 15:17:50.65ID:???
まあ正規表現使ってる意味ない部分だしな
2019/04/16(火) 15:19:54.77ID:???
疲れたら妙に難しい方法でコード書くことあるよね・・・
朝起きて見直すと俺何やってんだって気分になる
朝起きて見直すと俺何やってんだって気分になる
891Name_Not_Found
2019/04/16(火) 15:20:53.80ID:gASaHvq7 これ、もとからhttpsだったらhttpssになっちゃうんじゃなかろか
2019/04/16(火) 15:25:13.56ID:???
2019/04/16(火) 15:34:04.15ID:???
894Name_Not_Found
2019/04/16(火) 15:39:08.53ID:Er1Gv08x2019/04/16(火) 15:46:28.36ID:???
スラッシュ入れなくていいんじゃないか
2019/04/16(火) 15:50:54.02ID:???
2019/04/16(火) 15:57:07.16ID:???
898897
2019/04/16(火) 16:55:54.13ID:???2019/04/16(火) 17:30:35.23ID:???
速度てw
2019/04/16(火) 17:43:34.66ID:???
>>898
この状態で13押したら
https://yabumi.cc/16a254d9f2ba189836444990.png
こうなるぞ
https://yabumi.cc/16a254f2bfd8779cf8101566.png
失格
でなおしてこい
この状態で13押したら
https://yabumi.cc/16a254d9f2ba189836444990.png
こうなるぞ
https://yabumi.cc/16a254f2bfd8779cf8101566.png
失格
でなおしてこい
2019/04/16(火) 17:48:32.30ID:???
https://ics.media/entry/17451/
> WAI-ARIAはHTML要素の属性を動的に書き換えなければならないため、生JSやjQueryで制御しようとすると、正直、骨が折れます。
これ本当?
生JSで大変なのは分かるけど、jQuery使っても簡単にならないの??
> WAI-ARIAはHTML要素の属性を動的に書き換えなければならないため、生JSやjQueryで制御しようとすると、正直、骨が折れます。
これ本当?
生JSで大変なのは分かるけど、jQuery使っても簡単にならないの??
2019/04/16(火) 17:49:41.33ID:???
>>900
映ってねーぞバーカw
映ってねーぞバーカw
2019/04/16(火) 18:08:35.17ID:???
>>901
■ピュアJSの場合
要素.aria = 値;
■jQの場合
要素.attr({ aria : 値 });
ってのを、わざわざJS用意して書くじゃん?
なんならこれやる前に、要素にアクセスする必要もある
vueとかだと、それをHTML側に直に書けるから便利だねっつー話だと思う
まあそれぞれフレームワーク毎に特殊な書き方するわけだけど
■ピュアJSの場合
要素.aria = 値;
■jQの場合
要素.attr({ aria : 値 });
ってのを、わざわざJS用意して書くじゃん?
なんならこれやる前に、要素にアクセスする必要もある
vueとかだと、それをHTML側に直に書けるから便利だねっつー話だと思う
まあそれぞれフレームワーク毎に特殊な書き方するわけだけど
2019/04/16(火) 18:29:51.50ID:???
2019/04/16(火) 18:47:09.71ID:???
906897
2019/04/16(火) 18:48:53.13ID:??? >>900
ワロタw いや失敬失敬。
でもそこは本質的な所じゃないから後よろ!
xとyの情報も持ってるからそれでできるはず!
>>901
相変わらず「脱jQuery」が目的になっちゃってる(感じがする)ダメなタイトルだなw
これ2つの意味がある。
1. ブラウザネイティブのDOM APIを使いましょう。
2. DOM操作(DOM API含む)をするのをやめましょう。
この記事は2みたいだけど、DOM操作をやめる = それが必要ないフレームワークを
使いましょうってことだけど、まあ、そのフレームワークの導入も正直骨が折れるだろうねw
で話を戻すけど、この人、頭がアプリ脳になってるんだと思う。
作り方がね。アプリの作り方。要素にARIA属性をつけようと思ったら、
その要素ごとにいちいちにコードを書かなきゃいけないと思ってる。
要素ごとにいちいち書くよりもフレームワーク使ってパーツを作ったほうが良い。という発想。
でもjQueryは特定のセレクタに対して横断的に処理を追加するもの。
要素ごとじゃなくて、クラスごとに1個書けばいいだけなの。
例えばリンク先のaria-checkedであれば、<button class="checked-button"> みたいに
クラスをつけておけば、jQueryでそのクラスに対して横断的に、aria属性を書き換える
処理を追加する。だから要素ごとにコード書く必要もないし、HTMLはシンプルになる。
ワロタw いや失敬失敬。
でもそこは本質的な所じゃないから後よろ!
xとyの情報も持ってるからそれでできるはず!
>>901
相変わらず「脱jQuery」が目的になっちゃってる(感じがする)ダメなタイトルだなw
これ2つの意味がある。
1. ブラウザネイティブのDOM APIを使いましょう。
2. DOM操作(DOM API含む)をするのをやめましょう。
この記事は2みたいだけど、DOM操作をやめる = それが必要ないフレームワークを
使いましょうってことだけど、まあ、そのフレームワークの導入も正直骨が折れるだろうねw
で話を戻すけど、この人、頭がアプリ脳になってるんだと思う。
作り方がね。アプリの作り方。要素にARIA属性をつけようと思ったら、
その要素ごとにいちいちにコードを書かなきゃいけないと思ってる。
要素ごとにいちいち書くよりもフレームワーク使ってパーツを作ったほうが良い。という発想。
でもjQueryは特定のセレクタに対して横断的に処理を追加するもの。
要素ごとじゃなくて、クラスごとに1個書けばいいだけなの。
例えばリンク先のaria-checkedであれば、<button class="checked-button"> みたいに
クラスをつけておけば、jQueryでそのクラスに対して横断的に、aria属性を書き換える
処理を追加する。だから要素ごとにコード書く必要もないし、HTMLはシンプルになる。
907897
2019/04/16(火) 18:49:58.47ID:??? > 昔のコードはHTMLを組み立てるのに文字列を結合するというストイックなやり方でした。
まあ、こんな事書いてるし、昔のコードがクソすぎるってだけなわけでw
まあ、こんな事書いてるし、昔のコードがクソすぎるってだけなわけでw
2019/04/16(火) 18:51:10.48ID:???
function(d){
// 1から15までのパネル及びブランク(null)の位置関係を調べるための配列
// 長さは4x4の16。座標(x,y)に位置する要素は、配列上ではpannels[x+y*4]に存在する
const pannels = [];
let container = null; // パズル本体
// パネルをスライドさせる処理
// x, y はパネルの座標でそれぞれ0以上4未満の整数
function slide(elem, dx, dy) {
const x = Math.max(Math.min(3, parseInt(elem.dataset.x) + dx), 0);
const y = Math.max(Math.min(3, parseInt(elem.dataset.y) + dy), 0);
elem.style.left = x * 25 + "%";
elem.style.top = y * 25 + "%";
elem.dataset.x = x;
elem.dataset.y = y;
}
助言を受け、スライドパズルのソースのここまでをchromeのデベロッパツールから実行してみたのですが、どういう処理が行われているか確認するには、これをコンソールなどに出力してみるってことでしょうか
// 1から15までのパネル及びブランク(null)の位置関係を調べるための配列
// 長さは4x4の16。座標(x,y)に位置する要素は、配列上ではpannels[x+y*4]に存在する
const pannels = [];
let container = null; // パズル本体
// パネルをスライドさせる処理
// x, y はパネルの座標でそれぞれ0以上4未満の整数
function slide(elem, dx, dy) {
const x = Math.max(Math.min(3, parseInt(elem.dataset.x) + dx), 0);
const y = Math.max(Math.min(3, parseInt(elem.dataset.y) + dy), 0);
elem.style.left = x * 25 + "%";
elem.style.top = y * 25 + "%";
elem.dataset.x = x;
elem.dataset.y = y;
}
助言を受け、スライドパズルのソースのここまでをchromeのデベロッパツールから実行してみたのですが、どういう処理が行われているか確認するには、これをコンソールなどに出力してみるってことでしょうか
2019/04/16(火) 19:03:53.12ID:???
2019/04/16(火) 19:10:22.10ID:???
>>906
間違ってるものをドヤ顔で晒して人様の手を煩わせておいて失敬失敬はないだろ
間違ってるものをドヤ顔で晒して人様の手を煩わせておいて失敬失敬はないだろ
2019/04/16(火) 19:47:00.17ID:???
912897
2019/04/16(火) 19:48:22.28ID:??? >>901
https://ics.media/entry/17451/
> WAI-ARIAはHTML要素の属性を動的に書き換えなければならないため、生JSやjQueryで制御しようとすると、正直、骨が折れます。
って書いてあったから、サンプル作ったよ。リンク先にある。gridLayoutとlistLayoutの切替部分
https://jsfiddle.net/j3k94sz0/
正直、ボタンでラジオボタンのようなものを作るから面倒なことになるんだが、
そのお題で、汎用的なjQueryのコードにした。
「切り替えボタン+関連する要素にボタン情報を伝える」汎用コンポーネント
リンク先には
> JSのロジックにはWAI-ARIAの一切の処理が入っていません。
とか書いてあるが、HTMLにWAI-ARIAの処理(JavaScript)が入っていて
思考の切り替えが必要になる。HTMLに埋め込まれたJavaScriptも「JSのロジック」とみなせば、
「JSのロジック」にWAI-ARIAの処理が入ってるじゃんwってことになる。
俺が書いたコードは「HTMLにはJavaScriptの一切の処理が入っていません」
わずか6行のjQueryのコードで「ボタンによる切り替え」に対応している。
もちろんこれが複数あっても対応できる。別のプロジェクトでも使えるだろう。
っていうか、普通にラジオボタン使って作れば、もう少しわかりやすくできるんだがw
https://ics.media/entry/17451/
> WAI-ARIAはHTML要素の属性を動的に書き換えなければならないため、生JSやjQueryで制御しようとすると、正直、骨が折れます。
って書いてあったから、サンプル作ったよ。リンク先にある。gridLayoutとlistLayoutの切替部分
https://jsfiddle.net/j3k94sz0/
正直、ボタンでラジオボタンのようなものを作るから面倒なことになるんだが、
そのお題で、汎用的なjQueryのコードにした。
「切り替えボタン+関連する要素にボタン情報を伝える」汎用コンポーネント
リンク先には
> JSのロジックにはWAI-ARIAの一切の処理が入っていません。
とか書いてあるが、HTMLにWAI-ARIAの処理(JavaScript)が入っていて
思考の切り替えが必要になる。HTMLに埋め込まれたJavaScriptも「JSのロジック」とみなせば、
「JSのロジック」にWAI-ARIAの処理が入ってるじゃんwってことになる。
俺が書いたコードは「HTMLにはJavaScriptの一切の処理が入っていません」
わずか6行のjQueryのコードで「ボタンによる切り替え」に対応している。
もちろんこれが複数あっても対応できる。別のプロジェクトでも使えるだろう。
っていうか、普通にラジオボタン使って作れば、もう少しわかりやすくできるんだがw
2019/04/16(火) 22:57:40.00ID:???
2019/04/17(水) 00:23:02.46ID:???
unityに匹敵するjavascript用ゲームエンジンを作って欲しい。
2019/04/17(水) 01:51:00.61ID:???
>>914
よし、お前さんが基礎を作って旗を振るんだ
よし、お前さんが基礎を作って旗を振るんだ
2019/04/17(水) 09:03:23.40ID:???
unityは以前、javascriptが使えていたのに…。
残念。
残念。
2019/04/17(水) 09:41:06.61ID:???
誰かつくって
2019/04/17(水) 09:43:00.90ID:???
>>916
結構最近だよね
結構最近だよね
2019/04/17(水) 11:17:14.20ID:???
htmlのonclickを使わず、idの取得だけでクリックイベントを作ることは出来ますか?
2019/04/17(水) 11:31:26.70ID:???
>>919
click()
click()
2019/04/17(水) 12:56:43.36ID:???
>>919
Mouse?Event
Mouse?Event
2019/04/17(水) 14:26:02.60ID:???
ロジック学んでいれば他の言語でも同じようにやれますか?
2019/04/17(水) 14:41:23.59ID:???
じゃバスク版ユニティを作れ。
>>948
>>948
2019/04/17(水) 14:52:17.20ID:???
バスクってmsが発表した言語?jsと何の関係が?
2019/04/17(水) 15:03:30.58ID:???
2019/04/17(水) 15:51:28.39ID:???
>>873
Ruby で作った。単純に、1文字ずつ比べる
filepaths = %w(abcd ab ab abc abcd aby)
index = nil
catch( :exit ) do # 2重ループを、一気に抜ける
filepaths.first.each_char.with_index do | char, idx |
# p [ char, idx ]
filepaths.each do | fp | # 1文字ずつ比較する
throw :exit if char != fp[ idx ]
end
index = idx
end
end
p index #=> 1。つまり、ab まで一致する
Ruby で作った。単純に、1文字ずつ比べる
filepaths = %w(abcd ab ab abc abcd aby)
index = nil
catch( :exit ) do # 2重ループを、一気に抜ける
filepaths.first.each_char.with_index do | char, idx |
# p [ char, idx ]
filepaths.each do | fp | # 1文字ずつ比較する
throw :exit if char != fp[ idx ]
end
index = idx
end
end
p index #=> 1。つまり、ab まで一致する
2019/04/17(水) 16:02:22.62ID:???
>>908
そんな、ややこしいものをやらなくて良い
君がやるべきは、x から、2, 3 には行けるけど、右・下には行けない。
こういうチェック
0 は番兵。行けない部分に、壁を作って、判定を簡単にしている。
プログラミングよりも先に、図を描くのが重要!
0 0 0 0
0 1 2 0
0 3 x 0
0 0 0 0
そんな、ややこしいものをやらなくて良い
君がやるべきは、x から、2, 3 には行けるけど、右・下には行けない。
こういうチェック
0 は番兵。行けない部分に、壁を作って、判定を簡単にしている。
プログラミングよりも先に、図を描くのが重要!
0 0 0 0
0 1 2 0
0 3 x 0
0 0 0 0
2019/04/17(水) 16:10:37.69ID:???
929897
2019/04/17(水) 16:49:19.07ID:??? >>927
問題はそこではなくて、これはデータを1次元配列で持ってるのが面倒くさい原因
2次元配列で持っていれば、別に番兵を作る必要もない。配列の範囲外は必ずundefined。
Rubyと違ってa[-1]が配列の後ろから1番目なんて変な仕様はないから自然な番兵となる。
もしくは直感と反するが
0 0 0 0 0 0
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
0 0 0 0 0 0
から上下の0を取り除いて
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
最初と最後の0を取り除いて(_ に置き換えてる)
_ 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x _
1次元配列にして、連続する0を1個にする。
1 2 3 4 0 5 6 7 8 0 9 A B C 0 D E F x
このデータで、現在のパネルの、左右を+1/-1、上下を+5/-5として扱えば動くぞ。
それを実装たのがこれだ https://jsfiddle.net/gqvn87k5/
>>910 ほれ、なおしたぞ。ドヤ?
問題はそこではなくて、これはデータを1次元配列で持ってるのが面倒くさい原因
2次元配列で持っていれば、別に番兵を作る必要もない。配列の範囲外は必ずundefined。
Rubyと違ってa[-1]が配列の後ろから1番目なんて変な仕様はないから自然な番兵となる。
もしくは直感と反するが
0 0 0 0 0 0
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
0 0 0 0 0 0
から上下の0を取り除いて
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
最初と最後の0を取り除いて(_ に置き換えてる)
_ 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x _
1次元配列にして、連続する0を1個にする。
1 2 3 4 0 5 6 7 8 0 9 A B C 0 D E F x
このデータで、現在のパネルの、左右を+1/-1、上下を+5/-5として扱えば動くぞ。
それを実装たのがこれだ https://jsfiddle.net/gqvn87k5/
>>910 ほれ、なおしたぞ。ドヤ?
2019/04/17(水) 17:12:43.80ID:???
出たよrubyのクソ仕様w
C時代の番兵でいろんなスレでアスペ荒らししてたのはRubyのクソ仕様が原因だったwww
C時代の番兵でいろんなスレでアスペ荒らししてたのはRubyのクソ仕様が原因だったwww
2019/04/17(水) 18:16:37.62ID:???
jsでゲーム作るならどんなのが?
2019/04/17(水) 18:24:55.68ID:???
2019/04/17(水) 18:49:54.62ID:???
nodeでも動きませんでした。
せめて動くjs書けないのww
せめて動くjs書けないのww
2019/04/17(水) 18:57:56.93ID:???
Rubyと書いてあるじゃん
まあJavaScriptのスレでRubyで答える方がおかしいんだけど
まあJavaScriptのスレでRubyで答える方がおかしいんだけど
935897
2019/04/17(水) 19:06:15.77ID:??? しかもこういう用途に例外を使うとかいうクソ発想の持ち主w
2019/04/17(水) 21:18:21.23ID:???
爆釣やな
937926
2019/04/17(水) 21:22:10.36ID:??? スレは、答えを書く所ではない。
Ruby などの擬似コードで、考え方・ヒントを教える所
それをヒントにして考える・コードを書くのは、質問者自身がやるべき!
答えをコピペする奴は、進歩もしないし、どうにもならない
Ruby などの擬似コードで、考え方・ヒントを教える所
それをヒントにして考える・コードを書くのは、質問者自身がやるべき!
答えをコピペする奴は、進歩もしないし、どうにもならない
2019/04/17(水) 21:26:39.17ID:???
939897
2019/04/17(水) 22:13:35.57ID:??? > Ruby などの擬似コードで、考え方・ヒントを教える所
ダメなコードから学べるのは
ダメなコード例です。
ダメなコードから学べるのは
ダメなコード例です。
2019/04/17(水) 22:22:10.95ID:???
2019/04/17(水) 22:47:48.66ID:???
2重ループ脱出には、catch, throw を使うのが定番。
本を読んでないだろ?
配列のインデックスが負数の場合は、配列を後ろから数えるのも定番。
色んな言語を調べてないだろ?
本を読んでないだろ?
配列のインデックスが負数の場合は、配列を後ろから数えるのも定番。
色んな言語を調べてないだろ?
942897
2019/04/17(水) 23:50:48.63ID:??? >>941
そもそも2重ループなんてするものじゃないから(笑)
filepaths = %w(ab abc abc abc abcd abc)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
そもそも2重ループなんてするものじゃないから(笑)
filepaths = %w(ab abc abc abc abcd abc)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
943897
2019/04/17(水) 23:52:46.81ID:??? あ、filepaths の内容戻すの忘れてたw
filepaths = %w(abcd ab ab abc abcd aby)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
これもう少し簡潔にかけそうな気がしてるんだけど、
すぐに思いつかない。
filepaths = %w(abcd ab ab abc abcd aby)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
これもう少し簡潔にかけそうな気がしてるんだけど、
すぐに思いつかない。
944897
2019/04/17(水) 23:54:42.95ID:??? jQueryが得意な人は、いろんなものが得意なんやで?w
2019/04/18(木) 02:12:45.30ID:???
>>939
jQueryばかり勧める人がよくいえたもんだな
jQueryばかり勧める人がよくいえたもんだな
2019/04/18(木) 08:22:16.98ID:???
https://video.fc2.com/content/20090104qC1kSMF2/&tk=TnpnMk5EVXdOalU9
947897
2019/04/18(木) 08:36:37.81ID:???2019/04/18(木) 11:40:31.84ID:???
Ruby, jQuery(JavaScript), Kotlin, Elixir は、関数型言語でもある
でも、Ruby, Kotlinは、オブジェクト指向でもあるから、
その書き方が、jQuery, Elixir からすると、間違いのように言われる
関数型に、オブジェクト指向を混ぜるな、と言われる。
関数型は宣言型だから、手続き型みたいな書き方を嫌がる
関数型でやりすぎると、可読性が悪くなるから、わかりやすい書き方が良い場合もある
でも、Ruby, Kotlinは、オブジェクト指向でもあるから、
その書き方が、jQuery, Elixir からすると、間違いのように言われる
関数型に、オブジェクト指向を混ぜるな、と言われる。
関数型は宣言型だから、手続き型みたいな書き方を嫌がる
関数型でやりすぎると、可読性が悪くなるから、わかりやすい書き方が良い場合もある
2019/04/18(木) 11:57:26.78ID:???
2019/04/18(木) 12:35:37.62ID:???
2019/04/18(木) 12:50:43.01ID:???
クロージャって何がいいの?
http://mevius.5ch.net/test/read.cgi/tech/1415419907/261
261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL
さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、
それについてmatz自身が
> それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。
と語っているね
http://www.atmarkit.co.jp/news/200907/24/ruby.html
http://mevius.5ch.net/test/read.cgi/tech/1415419907/261
261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL
さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、
それについてmatz自身が
> それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。
と語っているね
http://www.atmarkit.co.jp/news/200907/24/ruby.html
2019/04/18(木) 12:54:03.65ID:???
>>951
もうすぐ無くなる言語を引き合いに出してどうするの?
もうすぐ無くなる言語を引き合いに出してどうするの?
2019/04/18(木) 13:09:19.73ID:???
なんだクソ言語がまた「る、るびぃでもできるしっ!」するために考えなしに木に竹を接いだだけかw
954Name_Not_Found
2019/04/18(木) 14:50:50.31ID:q+YWfZ8j2019/04/18(木) 14:52:15.32ID:???
クロージャと無名関数、名前どちらかに統一してほしかった
最初2つが同じものを指すと知らなくて混乱したわ
最初2つが同じものを指すと知らなくて混乱したわ
2019/04/18(木) 14:53:43.68ID:???
>>955
もう少し深くお勉強したほうが良いかも…
もう少し深くお勉強したほうが良いかも…
2019/04/18(木) 14:53:55.42ID:???
クロージャかつ無名関数がよくあるってだけで別。
2019/04/18(木) 15:04:40.55ID:???
単体で使うことほとんどない
2019/04/18(木) 15:05:03.54ID:???
と思ったけどそうでもなっ買った
2019/04/18(木) 15:05:52.76ID:???
無名・匿名関数は、単に名前のない関数。
一方、クロージャは、外のスコープの変数の参照を、つかんでいるもの
Ruby の関数はクロージャではないけど、関数内のブロックがクロージャ。
つまり、2つのスコープを持つ。
ES2015 では、これを真似て、JavaScript にもブロックスコープが出来た
一方、Python は、Rubyの真似をしないから、批判が大きい
一方、クロージャは、外のスコープの変数の参照を、つかんでいるもの
Ruby の関数はクロージャではないけど、関数内のブロックがクロージャ。
つまり、2つのスコープを持つ。
ES2015 では、これを真似て、JavaScript にもブロックスコープが出来た
一方、Python は、Rubyの真似をしないから、批判が大きい
2019/04/18(木) 15:15:08.63ID:???
JavaScriptの関数はクロージャだが、無名とは限らない
2019/04/18(木) 15:31:29.25ID:???
>>960
なるほど、rubyはもうすぐ消えて無くなる言語と
なるほど、rubyはもうすぐ消えて無くなる言語と
2019/04/18(木) 15:53:15.30ID:???
datasetは何のために使うのですか?
2019/04/18(木) 16:00:33.49ID:???
>>960
誰も知らない無名言語のマネはできないなぁw
それとも有名言語のC++やJavaにはブロックスコープが無い、もしくはrupy?とかいう泡沫言語からパクったのかい?w
https://news.ycombinator.com/item?id=5157886
"To me the biggest annoyance about the Ruby community is the belief that they invented everything"
「Rubyコミュニティの連中はヤツラが全てのことを発明したと信じてやがってムカつく」
"People don't hate ruby, people hate the ruby on rails community" "This" "+1 to this"
「Rubyが嫌いなんじゃなくて、Railsコミュニティが嫌いなんだよ」「それな」「ほんこれ」
誰も知らない無名言語のマネはできないなぁw
それとも有名言語のC++やJavaにはブロックスコープが無い、もしくはrupy?とかいう泡沫言語からパクったのかい?w
https://news.ycombinator.com/item?id=5157886
"To me the biggest annoyance about the Ruby community is the belief that they invented everything"
「Rubyコミュニティの連中はヤツラが全てのことを発明したと信じてやがってムカつく」
"People don't hate ruby, people hate the ruby on rails community" "This" "+1 to this"
「Rubyが嫌いなんじゃなくて、Railsコミュニティが嫌いなんだよ」「それな」「ほんこれ」
965Name_Not_Found
2019/04/18(木) 16:42:56.13ID:50TA3Y6O >>963
ある要素になんらかのデータを紐づけたいと思ったら使うのがdataset
・ある要素が処理対象か否かを表すフラグ
・JSライブラリ等に渡すパラメータ
・処理中のデータの一時保存先
なんでも好きなように使うがいい
ある要素になんらかのデータを紐づけたいと思ったら使うのがdataset
・ある要素が処理対象か否かを表すフラグ
・JSライブラリ等に渡すパラメータ
・処理中のデータの一時保存先
なんでも好きなように使うがいい
2019/04/18(木) 17:27:28.90ID:???
2019/04/18(木) 18:15:15.35ID:???
datasetはオレオレ属性作らなくても固有の値持たせられるし、setAttribute/getAttributeを使わなくても直に値を読み書きできるのがメリット
classやidで足りてるなら無理して使わなくてもいいよ
classやidで足りてるなら無理して使わなくてもいいよ
2019/04/18(木) 18:18:55.53ID:???
もらった15パズルのサンプルに含まれていたので、、、
2019/04/19(金) 01:03:15.23ID:???
datasetは単なるdata-*属性の省略記法でしょ
element.dataset.hello = "world";
element.setAttribute("data-hello", "world");
style属性にも同じようなのがある
element.style.bgColor = "#ffffff";
element.setAttribute("style", "background-color:#ffffff;");
element.dataset.hello = "world";
element.setAttribute("data-hello", "world");
style属性にも同じようなのがある
element.style.bgColor = "#ffffff";
element.setAttribute("style", "background-color:#ffffff;");
2019/04/19(金) 03:56:40.90ID:???
>>961
JSの関数はクロージャになり得る能力、ようは要件を備えてるだけで
関数定義が実際クロージャな関数を作ってるのであって
new Function等で定義された関数はクロージャではないし、
デフォの関数のいくつかもクロージャではない
JSの関数はクロージャになり得る能力、ようは要件を備えてるだけで
関数定義が実際クロージャな関数を作ってるのであって
new Function等で定義された関数はクロージャではないし、
デフォの関数のいくつかもクロージャではない
2019/04/19(金) 08:19:53.05ID:???
function hoge() {
return 42;
}
return 42;
}
2019/04/19(金) 08:29:17.99ID:???
PlayCanvasはunityを超えるか?
2019/04/19(金) 12:00:22.33ID:???
vscodeでデバッグしていると時々機能しなくなるのはなぜですか
特定する方法はありますか?
再起動すると治りやんす
特定する方法はありますか?
再起動すると治りやんす
2019/04/19(金) 12:09:16.11ID:???
>>973
今はgodotが勢いあるのでは?
今はgodotが勢いあるのでは?
2019/04/19(金) 13:19:21.72ID:???
>>971
クロージャというのは定義された場所のスコープと関数スコープがチェーンで繋がっているものを言うのであって
定義の仕方が特殊でそれに当てはまらないものはクロージャとは言えない
例えばネイティブ関数はチェーン先を概念的に持っていないし、
new Functionは生成された場所に関わらずglobalThisとリンクされる
クロージャというのは定義された場所のスコープと関数スコープがチェーンで繋がっているものを言うのであって
定義の仕方が特殊でそれに当てはまらないものはクロージャとは言えない
例えばネイティブ関数はチェーン先を概念的に持っていないし、
new Functionは生成された場所に関わらずglobalThisとリンクされる
977Name_Not_Found
2019/04/19(金) 13:25:13.17ID:YQCMjmdd getElementで取り出した要素、例えば
<div class="hoge"〜〜〜 style="xxx">
の中からstyleもしくはxxxの有無を調べたいときはどうやってかけばいいですか?
indexOf("style")やindexOf("xxx")で試しているんですが上手くいきません
hogeを検索する場合、変数名.className.indexOf("hoge")で検索出来るんですがstyleになると上手くいきません
<div class="hoge"〜〜〜 style="xxx">
の中からstyleもしくはxxxの有無を調べたいときはどうやってかけばいいですか?
indexOf("style")やindexOf("xxx")で試しているんですが上手くいきません
hogeを検索する場合、変数名.className.indexOf("hoge")で検索出来るんですがstyleになると上手くいきません
2019/04/19(金) 13:54:13.10ID:???
2019/04/19(金) 14:26:41.04ID:???
classの存在確認もIE9以下案件でないならclassName使わないでclassList.containsを使いましょう
980897
2019/04/19(金) 14:39:51.49ID:??? >>976
> クロージャというのは定義された場所のスコープと関数スコープがチェーンで繋がっているものを言うのであって
> new Functionは生成された場所に関わらずglobalThisとリンクされる
つまりglobalThisが「定義された場所」になるクロージャーですね
> クロージャというのは定義された場所のスコープと関数スコープがチェーンで繋がっているものを言うのであって
> new Functionは生成された場所に関わらずglobalThisとリンクされる
つまりglobalThisが「定義された場所」になるクロージャーですね
2019/04/19(金) 15:03:49.02ID:???
a = window.getComputedStyle(変数,null).getPropertyValue('xxx');
でaを条件分岐に使うことで解決出来ました
もっと簡単にできそうな気がするけど出来たからまぁいいや
でaを条件分岐に使うことで解決出来ました
もっと簡単にできそうな気がするけど出来たからまぁいいや
2019/04/19(金) 16:33:56.23ID:???
2019/04/19(金) 18:49:00.23ID:???
>>980
君にいわせると、すべての関数がクロージャだな
君にいわせると、すべての関数がクロージャだな
984897
2019/04/19(金) 19:00:07.36ID:??? はい。JavaScriptでは関数は全てクロージャーです。
最初からそう言ってるよ
最初からそう言ってるよ
2019/04/19(金) 19:02:48.17ID:???
クロージャではなく、スコープチェーンだろ
本当にこのjQuery君のアホは直らないな
本当にこのjQuery君のアホは直らないな
2019/04/19(金) 19:42:08.58ID:???
JSにおける関数の定義は「[[Call]]内部メソッドを持つオブジェクト」であって
全てクロージャと言うのは横暴だな
全てクロージャと言うのは横暴だな
2019/04/19(金) 19:49:01.93ID:???
もうjqueryでngワード登録でいいんじゃね
2019/04/19(金) 19:54:47.62ID:???
日本は山が多いと言ってあちこちの山を紹介するのは意味があるが
足元の小山まで拾って日本は全て山でできてるなんて言っても何の意味もないのにな
何にも知らない外人に紹介するときは大雑把にそう言っても良いかもしれないが
ここは内輪なんだからあえて山と呼ぶ意味のない山はあえて山と呼ばないほうが適切だろう
足元の小山まで拾って日本は全て山でできてるなんて言っても何の意味もないのにな
何にも知らない外人に紹介するときは大雑把にそう言っても良いかもしれないが
ここは内輪なんだからあえて山と呼ぶ意味のない山はあえて山と呼ばないほうが適切だろう
2019/04/20(土) 01:47:37.29ID:???
わかりやすい
2019/04/20(土) 02:15:19.18ID:???
自演乙。
2019/04/20(土) 06:53:46.46ID:???
可愛そうだけど、自演ではありません
2019/04/20(土) 09:12:23.43ID:???
自演っつーかなりすましがいるな
誰のこととは言わんけどw
誰のこととは言わんけどw
2019/04/20(土) 10:00:50.46ID:???
javascriptのデバッガって何を使うんですか?
vs codeです
vs codeです
2019/04/20(土) 11:44:32.71ID:???
わかりやすい15パズル教えてください
2019/04/20(土) 12:59:37.70ID:???
drawrectを配列で繰り返し表示出来ますかね
アレイみたいな
アレイみたいな
2019/04/20(土) 16:43:25.06ID:???
2019/04/20(土) 17:29:12.53ID:???
>>996
もうちょい簡単なパズルありますかね
もうちょい簡単なパズルありますかね
2019/04/20(土) 17:49:34.93ID:???
3パズル
2019/04/20(土) 17:50:53.90ID:???
3×3 の「〇×」ゲームは?
1000Name_Not_Found
2019/04/20(土) 17:56:20.81ID:??? 次スレ
+ JavaScript の質問用スレッド vol.139 +
http://mevius.5ch.net/test/read.cgi/hp/1555750241/
テンプレは数スレ前のものを持ってきました
足りない場合は適当に追加してください
+ JavaScript の質問用スレッド vol.139 +
http://mevius.5ch.net/test/read.cgi/hp/1555750241/
テンプレは数スレ前のものを持ってきました
足りない場合は適当に追加してください
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 62日 15時間 43分 24秒
新しいスレッドを立ててください。
life time: 62日 15時間 43分 24秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 加速する若者の「献血」離れ [ぐれ★]
- 【埼玉】「山岳部の生徒が滑落した」県立高の女子生徒が約100m滑落…意識不明で救急搬送 秩父市の御岳山で部活動中 [ぐれ★]
- 【自民】小泉氏 物価高対策 “現金給付や減税含む負担軽減策を” [ぐれ★]
- 前澤友作、主催のゴルフ試合で選手のホール間の喫煙問い合わせに「耳を疑った」「試合中に選手がタバコを吸うってどういう感覚?」 [jinjin★]
- 【日本語】「親子丼」を「おやこどん」と読む人は20代と30代に多い…年代・性別・地域でも差が出る身近な食べ物の呼び方 ★3 [おっさん友の会★]
- 【お笑い】『THE SECOND』ファイナル進出8組決定! ザ・ぼんち、金属バット、囲碁将棋、モンスターエンジン、吉田たちら 5月17日決戦 [冬月記者★]
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap88
- 【DAZN】フォーミュラGP【F1 F2F3 SF P】Lap1676
- 巨専
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap89
- やくせん
- 競輪実況★1374
- マンCサポーターの日本人、警備員に「ユニフォームを脱がなければ、スタジアムに入れさせない」と言われ、ブチギレ 抗議文を提出 [594040874]
- 【実況】博衣こよりのえちえちRUST🧪 5
- __河野太郎デジタル庁/マイナンバーと銀行口座の紐付け「自動化」を検討 [827565401]
- 【悲報】安倍昭恵「日本は台湾の為に戦います😤」 [616817505]
- ゴミ箱の先にあるお🏡
- 【訃報】この国のオワコン感えぐいよな [943688309]