元スレ+ JavaScript の質問用スレッド vol.133 +
JavaScript覧 / PC版 /みんなの評価 :
301 = :
javascriptで今流行りの機械学習勉強したいのですがだめですか?
本が全然みつからない。
もう年だしプログラマーでもないので他の言語やりたくない。
302 = :
ガッツリやりたいならCPUでは限界があるから
どちらにせよWebGLを使うことになるからそれは他言語で書いてるようなもの
まあTensorFlow.jsくらいからやるといいんじゃない
303 = :
>>300
つくりたい数列による
遅延評価とか再帰をつかって数列を作る手法もある。
304 = :
>>303
ありがとうございます
単純な整数値を入れた配列です
305 = :
一定の規則に沿った数列をいくつか作りたいなら
ベースとなる配列作っといてそれをmap()で回すとか?
306 = :
>>304
たとえば3を45個並べた配列aを作るには、
var a = Array(45).fill(3)
だがこういうことではなくて?
307 = :
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発
http://www.amazon.co.jp/dp/toc/4873117836/ref=dp_toc?_encoding=UTF8&n=465392
徹底マスター JavaScriptの教科書 プログラミングの教養から、言語仕様、開発技法までが正しく身につく (Informatics&IDEA)
http://www.amazon.co.jp/dp/toc/4797388641/ref=dp_toc?_encoding=UTF8&n=465392
上の2つならどっちがおすすめ?
一通りの知識はあるけどもうちょっと知識深めたいってレベルです。
308 = :
>>306
ありがとうございます
たしかに配列を作成するのはそれが一番シンプルですね
実際の問題はすでにある配列に同一の要素を任意数追加するというもので
fillやpushを使う以外にもっとシンプルな方法があるんじゃないかと思ったのですが、なさそうですね
ありがとうごさいました
310 = :
>>307
それくらいならMDN眺めたり実装追ってるブログ見りゃいいと思うよ
311 = :
>>308
すでにある配列をaとして、3を45個追加した配列bを作るには、
var b = [...a, ...Array(45).fill(3)]
だがこういうことではなくて?
312 = :
>>たしかに配列を作成するのはそれが一番シンプルですね
>>実際の問題はすでにある配列に同一の要素を任意数追加するというもので
313 = :
あー破壊変更が要件なのか
314 = :
それならpushでいいじゃん。ループは要らないぞ。
何で嫌がるのかサッパリだらっしゃい…
すでにある配列をaに、3を45個追加するには、
a.push(...Array(45).fill(3))
だがこういうことではなくて?
315 = :
>>fillやpushを使う以外にもっとシンプルな方法があるんじゃないかと思ったのですが、なさそうですね
316 = :
use strict宣言してた場合、;セミコロンも書かないのが普通?
つまり、好みの問題じゃなく全部改行使って書いたほうがいい?(結局圧縮するだろうし)
317 = :
use strictはセミコロンの挙動を変えはしないぞ
つまるところ好みの問題だぞ
~の方が良い?的な質問はしないほうが良いぞ
318 = :
>>315
もっとシンプルな方法…?
有りうるのか?どういうAPIになるんだろ?
319 = :
>>308
自分で関数つくればいいだけやろ
しね
320 = :
だからstaticな変数ってなんなの?
誰か教えてよ
321 = :
Int8Array.BYTES_PER_ELEMENT
的なクラスに直接生えてるプロパティのことだろ
ES2019くらいで
class {
static p = hoge
}
と書けるようになるとは思うが、
それまでは代わりに
class {
static get p() { return hoge }
}
とするのが定石だな
prototype下のプロパティでも同じだ
322 = :
>>317
あ、そういう意味ではなくて今後セミコロンが廃止になりますか?
みたいなニュアンスだったのです
調べてみるとuse strictに限らずセミコロンありなし混合はjavascriptのそういうスタイルだったみたいですね
ありがとうございました
323 = :
super()って便利なのにネーミングがダサくない?
324 = :
>>320
参照透過性のある書き換え不能の変数じゃないのか?
325 = :
>>322
そりゃ100年後は分からんが、現時点で非推奨になる理由がないだろう
ある面ではスペースみたいな存在なのだから
ほとんどの普通の言語およびコミュニティに於いてそれが無駄だとしても
言語仕様として過剰なスペースを禁止しようということにはならないだろう
326 = :
例えばデジタル時計を表示するアプリをつくったときに
setIntervalで1秒毎に更新するようにして
スリープ状態になってスリープ解除すると
遅れた時間が表示されます。
①これはどうしてなのでしょうか?
スリープになると、タイマーが止まって処理が実行されずにキューが溜まっていって、
解除されるとタイマーが止まった時点から再開して
溜まったキューが最初の分からひとずつ実行されるのかなとおもってるのですが
この考えは完全に正解でしょうか?1つでもおかしなとこあったら教えて下さい
②どう解消すればいいのでしょうか?
327 = :
①代わりにsetTimeoutで実装することを考えたら分かりやすいだろう
実行されたら次のキューを登録する
したがって実行が遅延するとキューが溜まっていくことはない
②そもそも精度は保証されて無く、色々なことで遅れるので、
JSに限らずだがタイマーで時を進めて行ってはいけない
更新の度に現在時刻を取得すること
もしストップウォッチ的なものなら開始時刻を取っておいて、毎回比較して差分を出す
そしてオマケで更新はrequestAnimationFrameを使うと良い
328 = :
>>302
TensorFlow.jsって
TensorFlowの本に書いてるコード実行すればJSでも動くってことですか?
つまり記法は全く同じ?
329 = :
そのレベルならやめといた方がいい。
pythonでやりな。
あっちはあっちで大変だと思うが。
330 = :
基本的に既にできてるモデルをWebで動かす用であって
学習もできなくはないけどAPIもぜんぜん違うよ
331 = :
>>324
それはないでしょ。
だってそれならクロージャで実現できる。
クロージャに値を閉じ込めればいいだけの話。
クロージャは知ってるって言ってたから
そいうことではないだろ。
332 = :
普通static変数=静的な変数っていったら、呼び出すごとに初期化されず状態が保持される変数のことでいい
言語によって扱いは全然異なる
javascriptではクロージャに閉じ込めればもちろんできるし
そもそもjavascriptにあんまし馴染まない概念といえなくもない
こんなとこで合ってる?(質問)
333 = :
いや、そういう関数の機能としてのstatic変数が存在する言語は少ないので
普通staticな変数と言ったらクラスの何らかを想定するだろう、JSでも
334 = :
classでも基本同じでは
インスタンスごとに独立固有でなくインスタンス間で共有され、
インスタンス生成ごとに初期化されるのではなく、一度だけ初期化される、要するに状態が保持される
静的変数が関係する場合、常に同じ入力に対し同じ結果が返されるとは限らない
なので静的変数の性質として「参照透過性があること」を持ってくるのは間違い
書き換え不能かどうかも静的変数の概念には直接関係しない
335 = :
それを言うとJSの場合はstaticな変数なんて存在しないけどな
staticとして宣言されたものはクラスオブジェクトのプロパティになるだけだから
337 = :
それは定数ですね
338 = :
クラスベースオブジェクト思考に毒されたやつは話を聞かない
唯一絶対の真理と思ってやがる
jsにclass構文なんか導入したせいで拍車がかかった
ちなみに拍車とはカウボーイのブーツのかかとについてるトゲトゲの車輪な
339 = :
「ある要素を、それ以外の要素がクリックされたら閉じる」
のような処理はどう実装するのがベストなのでしょうか?
モーダルウインドウでは半透明の黒幕を表示してそこでイベントを受けるというやり方を見ますが
他のコントロールへのイベントは生かしたままにしたいです
要素にtabindexを付けてフォーカスを持たせて、focusoutを検出したらいいのでは?
と思ってやってみたのですが、ブラウザ以外のアプリにタスク切り替えしても反応してしまいました
あとはdocumentに一時的なclickイベントリスナを付けるくらいしかなさそうですが
これだと他のイベントリスナでstopPropagationされたら反応しなくなると思います
つまり、考えついたどの方法にも何かしら問題があるのです・・
問題のない方法はないでしょうか?
340 = :
>>339の件ですが
stopPropagationされる可能性が少ないイベントリスナを使えばいいんじゃないかとひらめきました
クリックイベントはmousedownやclickで受けるのが普通なので、
これらはstopPropagationされる可能性がありますが
あまり使われることのないmouseupなら殺されることもないのではないかと。
試しにmousedownやclickをstopPropagationするコードを書いてみましたが
mouseupはちゃんとdocumentまで伝わってきました
これはいいのではないでしょうか?
もっと良い方法ありますか?
341 = :
>>340
組み込んだらうまく動きました
今まで、リスナでイベントを捕捉して処理をした時には
大抵の場合、とりあえずstopPropagationとpreventDefaultを両方実行していました
処理はもうしたんだから、他の要素はもうそれを知る必要がないだろう、
その方が負荷が下がっていいだろう、と。
が、イベントは一連の処理を開始するきっかけにもなれば、
一連の処理を終わらせるきっかけにもなるので、
「処理はもうしたから、他の要素はもう知る必要がないやろ」という態度は問題ですね
そうしなければならない理由がない限り、
処理を済ませたからといってイベントの伝播を止めるのは良くないのでしょう
342 = :
>>335
バカ?
343 = :
自己紹介乙。
Javaワールドから出てくるな
345 = :
静的関数じゃなくて静的変数の話だぞ
cにだってあるやつ
346 = :
>>343
名前がにてるんだから仲良くしろやカス
347 = :
electronってどう?
348 = :
>>345
静的変数の話ではないよ
プロトタイプとprototypeが違うように
静的変数とstaticな変数では意味合いが全く違う
349 = :
じゃあ、その「静的」や「プロトタイプ」は英語では何というの?
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.135 + (1002) - [97%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [97%] - 2015/4/27 23:30
- + JavaScript の質問用スレッド vol.130 + (974) - [97%] - 2016/10/26 14:18
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.131 + (1000) - [97%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.130 + (1001) - [97%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.131 + (1004) - [97%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.134 + (1001) - [97%] - 2018/8/3 23:15
- + JavaScript の質問用スレッド vol.123 + (966) - [97%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.136 + (1001) - [97%] - 2019/1/8 11:30
- + JavaScript の質問用スレッド vol.139 + (1001) - [97%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.137 + (1003) - [97%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.138 + (1004) - [97%] - 2019/4/20 23:45
トップメニューへ / →のくす牧場書庫について