X



+ JavaScript の質問用スレッド vol.130 + [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2017/07/31(月) 21:10:56.03ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

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

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)
・回答者同士のレスは原則禁止(>>6を参照)
・ライブラリの話題の投稿(>>6を参照)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
0451Name_Not_Found
垢版 |
2017/10/10(火) 21:48:06.42ID:SL8zOk23
>>450
>button.addEventListener( "click", function(){ this.bar( this ); }, false );

おちつけw
そのthis.barのthisは第二引数に渡した無名関数のスコープで
無名関数の外、つまりHogeのものじゃない

んでお手軽に解決するなら、Hogeのthisをいっぺん保存してこう
var A = this;
button.addEventListener( "click", function(){ A.bar( this ); }, false );

もっと根本的に解決するなら
Function.prototype.bind()
Function.prototype.call()
Function.prototype.apply()
あたりをググると良いよ
0452437
垢版 |
2017/10/10(火) 22:13:47.52ID:VzD+hjux
>>451
その後色んなパターンを実践していましたが
最終的には、まさに一度thisを保存する方法に落ち着きました
(関数先でクラスのプロパティを参照する必要があるので)
スコープとbind()について落ち着いて調べてみたいと思います
みなさんありがとうございました
0453Name_Not_Found
垢版 |
2017/10/11(水) 00:12:29.66ID:???
JavaScript の、this は、コロコロ変わるから難しい。
bind を使わないと、拘束できない

jQuery を使えば、悩むこともない
0454Name_Not_Found
垢版 |
2017/10/11(水) 01:05:45.44ID:???
>>453
jQueryを使ってもそこは一緒
だけどjQueryだとクロージャーを使っても循環参照になりづらいのと
DOM要素のリストとして扱うという設計思想によって扱いやすいってだけ

でさ、お前ら何やってんの?
>>437の話だろ? なんでthisを保存とかいう話になってんの?

addEventListenerの第二引数にクロージャーなんか渡すから
話ややこしくなってるじゃん。 >>437のコードでだいたいあってるだろ

https://jsfiddle.net/rdeuvep2/

function Hoge(elementId) {
 this.div = document.getElementById(elementId)
}

Hoge.prototype.foo = function() {
 var button = document.createElement( "input" );
 button.type = "button";
 button.value = "テスト";
 button.addEventListener( "click", this.bar, false );
 this.div.appendChild( button );
}

Hoge.prototype.bar = function() {
 alert( "click" );
};

var hoge = new Hoge("buttons");
hoge.foo();
0455Name_Not_Found
垢版 |
2017/10/11(水) 01:05:49.61ID:???
ここまで
アロー関数
無し
0456Name_Not_Found
垢版 |
2017/10/11(水) 01:26:52.82ID:???
んで、恒例のjQuery化w

なるべく元の形を保ったバージョン
https://jsfiddle.net/rdeuvep2/1/

function Hoge(elementId) {
 this.elementId = elementId
}
Hoge.prototype.foo = function(){
 $("<input>", {type: "button", value: "テスト"}).click(this.bar).appendTo(this.elementId)
}
Hoge.prototype.bar = function(){
 alert( "click" );
};
var hoge = new Hoge("#buttons");
hoge.foo()


俺はHogeクラスなんか作らずこんなんでいいと思ってる
https://jsfiddle.net/rdeuvep2/2/

var attrs = [{value: "テスト1"}, {value: "テスト2"}];
var buttons = attrs.map(attr => $("<input>", attr).attr({type: 'button'}));
$("#buttons").append(buttons).on('click', 'input[type="button"]', function() {
  alert( "click " + this.value);
});


>>455
アロー関数使ってやったぜ?w
0458Name_Not_Found
垢版 |
2017/10/11(水) 01:55:18.33ID:???
補足

「今回は」アロー関数もクロージャーもいらない
今回の要件にthisがどうなるかってのが書かれていないから

this.barは今回は動くがthisは違っていると念の為に言っておく
いろんなサンプル追加
https://jsfiddle.net/rdeuvep2/6/
0459Name_Not_Found
垢版 |
2017/10/11(水) 11:15:54.27ID:???
qiitaで記事うpしても叩かれない知識を身に着けたいんですが
JavaScriptという言語を学ぶための良書を教えてください
0460Name_Not_Found
垢版 |
2017/10/11(水) 11:30:31.56ID:???
その考え方は大間違い
人に意見を発信する以上は文句を付けられて当たり前
そしてそれは良いこと
お互い内外から叩き合ってきれいな球に近づくのだから
それを防ごうと言うのはトゲトゲボールか、スライムになってしまうのがオチ
0461Name_Not_Found
垢版 |
2017/10/11(水) 13:29:50.02ID:pDOfqRkM
>>453
えええ…
0462Name_Not_Found
垢版 |
2017/10/11(水) 13:33:31.58ID:pDOfqRkM
>>459
とりあえずサイ本

現段階のおまえさんのレベルも
おまえさんが書いた記事にツッコミを入れる奴のレベルもわからんから
それを数冊の本でなんとかするのは難しかろう
0463Name_Not_Found
垢版 |
2017/10/11(水) 21:27:55.35ID:???
JavaScript 第6版、2012、David Flanagan

Google などのプロの机に、必ず置いてある本
0464Name_Not_Found
垢版 |
2017/10/12(木) 02:50:11.63ID:???
プロのJSerやWEBエンジニアならオンライン仕様書以外は必要ない
そういうのはJSの常識を知らない非JSネイティブプログラマ向けに用意されてる
それもES2015以降の今の時代に於いては、JSを歴史から学んでJS仙人を目指したい人以外には過去の有名な本という飾りでしかない
0465Name_Not_Found
垢版 |
2017/10/12(木) 10:20:16.44ID:???
仕様書ってどこ見たらいいのか教えてください
0467Name_Not_Found
垢版 |
2017/10/12(木) 14:33:35.31ID:???
初心者はまずはMDN 「MDN ○○」でググる
そしてより詳しく知りたければMDNの各記事の下に仕様へのリンクが張ってある
徐々にそっちに移行していく
0468Name_Not_Found
垢版 |
2017/10/13(金) 05:38:27.50ID:???
let lastTimeSignal;
setInterval(fuction(){
let now = moment();
let nowMinutes = now.format('YYYYMMDDHHmm');
if (now.minutes()==0 && lastTimeSignal !== nowMinutes){
lastTimeSignal = nowMinutes;
/*処理*/

},1000);

みたいなコードがあります
moment()はmoment.jsです
現在時刻の分数が0の時に一度だけ実行する、ようは時報です
ですが、ごくまれに連続して複数回時報が実行されてしまうことがあります
lastTimeSignalが設定されるので排他的に処理されるはずなのに
何故複数回実行されてしまうのか分かりません
現象はchromeで確認しています
lastTimeSignal とnowMinutesをログに出力するようにしましたが
連続実行された時の値は全く同一でした
lastTimeSignalが設定されないまま
複数のインターバルが呼び出されている、としか思えません
処理は、何かと不安定なSpeechSynthesisUtteranceを使っているので
それが原因なのかとも思いますが
処理の前にlastTimeSignal = nowMinutesとすぐに代入しているので、
たとえSpeechSynthesisUtteranceに問題があっても排他処理まで失敗するのは奇妙です
関数の外の変数(lastTimeSignal)への変更が
すぐに反映しない、なんてことあり得ますか?
0469Name_Not_Found
垢版 |
2017/10/13(金) 05:49:09.33ID:???
>>468
あらためてログを確認すると
10/13 05:00:00.97
10/13 05:00:00.98
と、0.01秒差で連続実行されていました
1秒ごとに実行されるはずのインターバル処理が、
ほぼ同時に2回呼び出されていることになります
一体何故・・?
いま、ふと思い付いたのですが
不安定なSpeechSynthesisUtteranceの実行に更にsetTimeoutを挟めば
変数の変更まで不安定になることは防げるかもしれません
0470Name_Not_Found
垢版 |
2017/10/13(金) 08:14:29.32ID:???
とにかく問題が再現できる最小限のコードを貼りなさい
できればライブラリも除いた状態で
まずそうやって削ぎ落としていくのがデバッグの基本でもある
0471Name_Not_Found
垢版 |
2017/10/13(金) 08:45:04.05ID:???
ここに質問するくらいならteratail使えや。コード見づらい。
0472Name_Not_Found
垢版 |
2017/10/13(金) 08:55:34.75ID:???
明確な根拠もなく実行系を疑うのはプログラマ憲法でタブーとされていること
0473Name_Not_Found
垢版 |
2017/10/13(金) 10:07:02.56ID:???
プログラマーが権力機構で処理系が労働者なのか
0474468
垢版 |
2017/10/13(金) 11:59:42.51ID:???
恥ずかしいことに、インターバルタイマーを複数回設定していたのが原因でした
ライブラリの中の、
起動時にしか実行されないと思っていたハンドラの中で設定していたのですが
そのハンドラはその後の操作によっては複数回呼び出されるものだったのです
プログラマー憲法を心に銘じます
ありがとうございました
0475Name_Not_Found
垢版 |
2017/10/13(金) 12:55:11.16ID:???
思った通りの原因だった
0476Name_Not_Found
垢版 |
2017/10/13(金) 14:57:43.69ID:???
まあでも非同期が絡むとデバッグが一段と難しくなるのは事実
ただコールバックで闇雲に投げて闇雲に呼ばれるのではなく
Promise,async-await,async generator辺りを適切に使って
シーケンシャルに管理すれば軽減できはする
0477Name_Not_Found
垢版 |
2017/10/13(金) 21:36:52.40ID:???
jsだと無名関数にしてしまう分、普通に何回も呼び出してしまうよな
アクセス解析の値がぶっとんでた時はあせったわ
0478Name_Not_Found
垢版 |
2017/10/13(金) 22:36:21.13ID:???
無名関数だからって理由でそんなことすることはないな。
だって名前つけても同じ話だもの
0479Name_Not_Found
垢版 |
2017/10/13(金) 22:53:31.34ID:???
無名関数ならそこでしか使わないんだから
逆に予定外に何度も呼び出すことなんて少ないと思うが
0480Name_Not_Found
垢版 |
2017/10/15(日) 05:37:52.44ID:???
ES2015でforEachがオブジェクトに追加されなかったのは何故ですか?
最近のJSはイケてると思っていましたが
いまだにオブジェクトをforEachできないのは違和感があります
もうかなり以前からunderscoreやlodashがforEachの有用性を証明してますよね
0481Name_Not_Found
垢版 |
2017/10/15(日) 08:34:02.97ID:???
そういうことするならmapって話なんじゃね
0482Name_Not_Found
垢版 |
2017/10/15(日) 09:32:29.63ID:???
>>480
だからlodashを使えばいいだけだろう?
0483Name_Not_Found
垢版 |
2017/10/15(日) 10:54:03.53ID:???
mapは新しい配列を作るためのものなので用途が違います
ライブラリは言語にあるべき未来を見せるのが役割の一つなので
それを何年も前に見せられてなおかつ放置してるのは怠慢と言わざるを得ません
0484Name_Not_Found
垢版 |
2017/10/15(日) 10:58:56.24ID:???
いや、ライブラリは言語仕様をシンプルにするのが目的だよ。
どんな言語でも言語自体に色んな機能を含めず
多くの機能はライブラリで提供されてるはずだ。
0485Name_Not_Found
垢版 |
2017/10/15(日) 11:01:57.27ID:???
>>483
Mapと書くべきだったか
まあ意図は違うんだろうけど
0486Name_Not_Found
垢版 |
2017/10/15(日) 11:46:59.23ID:???
Mapじゃなくて地図と書くべき。
でないと、SMAPと勘違いされる可能性がある。
0487Name_Not_Found
垢版 |
2017/10/15(日) 12:07:56.25ID:???
あの文脈ならMapで通じると思うけど
つーかもうオブジェクトからイテレーター作れるじゃん
0488Name_Not_Found
垢版 |
2017/10/15(日) 12:32:13.73ID:???
mapメソッドとは別にMapオブジェクトというのがあったのですね
イテラブルではない普通のオブジェクトを回すのはあまり行儀が良くない、
という判断が根底にあるのでしょうか?
でも

(new Map([['taro','name'],[15,'age']])).forEach((key,value)=>{
});

こんな書き方がイケてるとはあまり思えないのですが・・
newを書かずにMapオブジェクトを生成する
シンタックスシュガーを用意して欲しいところです
0489Name_Not_Found
垢版 |
2017/10/15(日) 13:54:43.41ID:???
>>488
シンタックスシュガーはいらないですね。
関数を用意すればいいだけですよ。
0491Name_Not_Found
垢版 |
2017/10/16(月) 02:27:09.92ID:???
>>490
これはなかなかいいですね
オブジェクトのインスタンスメソッドで出来て欲しいですが、
keyとvalueだけでなくindexも取れるところもイケてると思います
0492Name_Not_Found
垢版 |
2017/10/16(月) 04:26:51.39ID:???
>>491
そのやり方は列挙順を保証出来ないから、順序がランダムで良いときしか使えない
もともと、オブジェクトのキーは列挙する事を想定したものでもないし、連祖配列的なものを望むなら、足りない機能が多くて苦労すると思うよ
0494Name_Not_Found
垢版 |
2017/10/16(月) 11:42:32.24ID:???
たしかにオブジェクトのメンバに順序は期待出来ないですが
ループの中でループカウンタが欲しくなることはわりとあるので、
そういう意味です
0495Name_Not_Found
垢版 |
2017/10/16(月) 16:38:35.98ID:???
未だにES5脳な奴がいるんだな
列挙の順序が保証されてないのはfor-in文とES5のObject.keys()
ES2015以降のObject.{keys,values.entries}()は保証されている
こんなんJSerなら誰でも知ってる常識だろう
0496Name_Not_Found
垢版 |
2017/10/16(月) 23:03:35.08ID:???
>>495
矛盾してるぞ

> こんなんJSerなら誰でも知ってる常識だろう

ES5脳なJSerは知らないだろ?
0497Name_Not_Found
垢版 |
2017/10/17(火) 00:58:39.12ID:???
JSは日進月歩なんだから
未だにES5脳な奴がJSerなわけ無いだろ
0498Name_Not_Found
垢版 |
2017/10/17(火) 01:08:17.62ID:???
JSerの定義でもめるぐらいなら、ES5erとES2015erに分けろ
JavaScript===ECMAScript2015ではないんだぞ
0499Name_Not_Found
垢版 |
2017/10/17(火) 08:24:06.23ID:???
async-awaitで逐次処理書いてる時に比較的長いタスクをやらせると
裏で動いているのかどうか分かんなくなるんですが。
定期的にconsole.logとかでログ出力していれば分かるんですが、
そうでない場合、逐次処理が実行中だってどうやって把握すればいいんですかね?
0500Name_Not_Found
垢版 |
2017/10/17(火) 10:53:45.44ID:???
そりゃconsole.logを適切な個数置くしか無いよ

それかメイン関数以外にあちこち置くのが嫌なら
await longTimeTask()
をpromiseが解決するまで一秒ごとにログを出すperiodicLogingを用意して
await periodicLoging( 'タスクA', longTimeTask() )
と書くとか、同様にしてタイムアウトさせたりするとか
0502Name_Not_Found
垢版 |
2017/10/17(火) 11:44:57.69ID:???
結局時間かかるのはIOかEvent待ちのネイティブの部分だからステップ処理は意味ない。
0503Name_Not_Found
垢版 |
2017/10/17(火) 11:44:57.97ID:???
結局時間かかるのはIOかEvent待ちのネイティブの部分だからステップ処理は意味ない。
0504Name_Not_Found
垢版 |
2017/10/17(火) 12:14:43.92ID:???
>>502
>>499の目的である「動作確認」は可能だと思うが、どういう理屈で意味がない?
0505Name_Not_Found
垢版 |
2017/10/17(火) 12:56:43.77ID:aQueuU1T
継続して動いてるか確認したいんじゃないの?
0506Name_Not_Found
垢版 |
2017/10/17(火) 13:39:59.38ID:???
そもそも確認したい動機が分からん
エラーハンドリングをあえてすっぽかしてない限り
棄却が伝わってこないと言うことは正常動作中ということで心配する必要ないだろう

パッチ処理とかで本当に10分とかかかるものなら
大本にProgressイベントが用意されていないのなら>>500のような感じになるだろうな
0507Name_Not_Found
垢版 |
2017/10/17(火) 19:45:01.86ID:/ojPgncR
str='黄と黄緑と緑'
.replace(/黄緑/g, '<span style="color:greenyellow">$&<\/span>')
.replace(/黄/g, '<span style="color:yellow">$&<\/span>')
.replace(/緑/g, '<span style="color:green">$&<\/span>')

黄緑にも色を付ける方法を教えて下さい
0508Name_Not_Found
垢版 |
2017/10/17(火) 22:11:32.36ID:???
>>507
その種の複数置換は結局
replace(/[黄緑]+/g, function(match){ … })
が簡単
0511Name_Not_Found
垢版 |
2017/10/17(火) 22:24:13.19ID:???
>>508 でmatchで条件分岐がおすすめだけど超簡単にするなら「黄緑」を一旦「青」とかにしてから最後に戻すとかでもいいよ
ほほえましくてよきよき
0512Name_Not_Found
垢版 |
2017/10/17(火) 22:26:20.78ID:ayamnkyL
>>507

str='黄と黄緑と緑'
.replace(/黄緑/g, '<span style="color:greenyellow">$&<\/span>')
.replace(/黄[^緑]/g, '<span style="color:yellow">$&<\/span>')
.replace(/[^黄]緑/g, '<span style="color:green">$&<\/span>')

>>508-510
正規表現ぐらいもうちょい頑張れwwwww
ぐぐりながらやってみたけど30分でできたぞwwwww

>>511
最悪の回答wwwwww
0514Name_Not_Found
垢版 |
2017/10/17(火) 22:50:06.29ID:???
>>511は思いついても考え直さないもんなのか
0516Name_Not_Found
垢版 |
2017/10/17(火) 22:51:56.76ID:???
>>514
だからほほえましくていいって書いたんだけどw
0517Name_Not_Found
垢版 |
2017/10/17(火) 22:54:21.53ID:???
>>514
あ、一旦「青」にするってのが、よくわからずやってた頃を思い出してほほえましくていいって意味です
0519Name_Not_Found
垢版 |
2017/10/17(火) 23:50:17.19ID:???
及ばないどころか間違えてるからね
0520Name_Not_Found
垢版 |
2017/10/18(水) 07:14:47.67ID:???
間違えてるのか?正常に動いてるように見える
正規表現ほとんど使わないからわからんわ
0521Name_Not_Found
垢版 |
2017/10/18(水) 09:17:27.29ID:???
[^緑] は「緑以外の1文字」だから /黄[^緑]/ だと「黄と」がヒットする
/[^黄]緑/ も同じ
なので結果は
<span style="color:yellow">黄と</span><span style="color:greenyellow">黄緑</span><span style="color:green">と緑</span>
ってなるはず
0522Name_Not_Found
垢版 |
2017/10/18(水) 09:24:18.76ID:???
jqueryでは
セレクタに要素を複数並べて要素の子孫の要素を選択することが出来ますが
このように要素を選択する方法は何というのでしょうか?
0523Name_Not_Found
垢版 |
2017/10/18(水) 09:45:20.65ID:???
セレクタ検索
それ以上でもそれ以下でもない
0524Name_Not_Found
垢版 |
2017/10/18(水) 11:21:24.13ID:???
>>521
しかも文頭の緑と文末の黄にはマッチしないしな
ECMAScriptだと後読み出来たっけか
0525Name_Not_Found
垢版 |
2017/10/18(水) 13:12:20.54ID:???
>>506
おー。ありがとうございます
Progressイベントなんてあるんですね。
独自の処理にもそう言うの用意できるんですかね。
0526Name_Not_Found
垢版 |
2017/10/18(水) 13:13:56.51ID:???
自前でonProgressプロパティに関数があれば呼び出してもいいし
EventEmitterみたいなモジュール使ってもいいし
DOMのカスタムイベント使ってもいいし
0527Name_Not_Found
垢版 |
2017/10/18(水) 13:45:25.52ID:???
>>524
後読みはES2018になりそう
現在モダンブラウザは要フラグ

>>525
async-awaitと組み合わせるのは工夫がいるよ
できればasync-generatorを使ってトランスパイルする
0528Name_Not_Found
垢版 |
2017/10/18(水) 15:18:12.29ID:???
>>508
ありがとうございます
その方法で出来ました
0529Name_Not_Found
垢版 |
2017/10/18(水) 15:52:59.55ID:???
ド素人ですみません
膨大なデータをJSONで書き出す処理をしようとしてます

大体1MBくらいで一区切りして、fs.writeFileで書き出して、for構文で繰り返す…
というような方法を取っています。

例えば10回繰り返すような設定をすると、処理が終わる度に1ファイル追加されるのですが
10回すべての処理が終わるまでファイルに何も書き込まれず、空っぽのままになります。
すべての処理が終わって初めて全てのファイルにデータが書き込まれる感じです

これが10ファイルくらいならいいのですが、大量に処理するときに困るので
毎処理ごとにデータが書き込まれるようにしたいです。

なにか方法があれば、お教えいただけると助かります
0531Name_Not_Found
垢版 |
2017/10/18(水) 16:12:44.08ID:???
書き込み終わるの待ってから次の処理始めれば?
0532Name_Not_Found
垢版 |
2017/10/18(水) 17:28:33.27ID:???
>>529
fs.writeFile に渡す callback の中で
書き込みの続きを継続するようにすれば期待する動作が得られるかも?
0533Name_Not_Found
垢版 |
2017/10/18(水) 18:52:49.70ID:???
みんなありがとう
ファイルへの書き込みが完了するまでループを一時停止する・・・と言う処理は可能でしょうか?
今はこんな感じです

  var ループ回数 = 10;
  for(var i=0 ; i > ループ回数; i++){
     var データ = 膨大なデータを生成する関数();
     fs.writeFile(ループ回数 + '.json', JSON.stringify(データ,'',' ') , function (err) {});
  }
0534Name_Not_Found
垢版 |
2017/10/18(水) 19:09:13.90ID:???
>>521
トンクス
上手く行ってるように見えてたわ
0535Name_Not_Found
垢版 |
2017/10/18(水) 19:17:44.67ID:???
>>533
同期版のfs.writeFileSyncを使うかasync/await使うか
0536Name_Not_Found
垢版 |
2017/10/18(水) 21:32:50.86ID:???
fs-extraがpromise返すようになったから使っとけ
0537Name_Not_Found
垢版 |
2017/10/18(水) 21:40:29.84ID:???
IOは内部で並列度が抽象化され、タイミングが最適化されてるから完全な制御は無理
0538Name_Not_Found
垢版 |
2017/10/18(水) 23:05:14.43ID:???
ファイルの読み込みでも、4つのファイルを、並列に読み込む
0540Name_Not_Found
垢版 |
2017/10/20(金) 20:50:24.54ID:???
for in使うとeslintに怒られるんですがなんか理由があるんですか?
0541Name_Not_Found
垢版 |
2017/10/20(金) 23:05:29.50ID:???
そういうのは積極的に調べていって言語に詳しくなるチャンスにすべきだと思うよ
結論から言うとfor of Object.keys()を使う
0542Name_Not_Found
垢版 |
2017/10/21(土) 12:36:49.64ID:???
>>511
元々の文字列に「青」があったら破綻するのでは
バックスラッシュのエスケープシーケンスのように、構文規則を作っておかないと破綻する

>>540
配列に for-in を使っているのでは
0544Name_Not_Found
垢版 |
2017/10/21(土) 12:55:52.81ID:???
>>507>>511
自分もこれでやるけど、翫とか見たことないような漢字にしとけばいいよ
正規表現だとノット条件がないから[^翫]で近いことが出来るようになるし、これが早くて楽だった
0545Name_Not_Found
垢版 |
2017/10/21(土) 13:20:57.67ID:???
バッドノウハウからは早く卒業しよう
0546Name_Not_Found
垢版 |
2017/10/21(土) 13:21:43.46ID:???
asyc-awaitつかってると使いたいところで使えないのが凄くもどかしい。
たとえばclassのコンストラクタで非同期処理を入れる方法ないかな。
0548Name_Not_Found
垢版 |
2017/10/21(土) 15:17:35.06ID:???
プログラミングを初めて、

配列を知った人は、これ便利と配列ばっかり使いだします。
連想配列を知った人は、これ便利と連想配列をばっかり使いだします。
クラスを知った人は、これ便利とクラスばっかり使いだします。

asyc-awaitを知った人は、これ便利とasyc-awaitばっかり使いだします。
0549Name_Not_Found
垢版 |
2017/10/21(土) 15:36:34.65ID:???
朝起きたら顔を洗って歯を磨きます。
0550Name_Not_Found
垢版 |
2017/10/21(土) 15:46:30.58ID:???
>>546
async関数はpromiseを返す関数だから
クラスのインスタンスを返すコンストラクタとは相容れない
まあ色々方法はあるけど、newして非同期にそれを改変するasync関数を用意するのが良いと思う

>>548
async-awaitばかりというのは悪くないと思うよ
ある特定の関数が開発していく途中でasyncにする必要が出てきたり必要が無くなったりもするしさ
そういうときawaitで受けてれば問題ないからね
■ このスレッドは過去ログ倉庫に格納されています

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