JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (766レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
25: デフォルトの名無しさん [sage] 2015/12/19(土) 02:42:15.14 ID:BBkFE1FJ(7/9) AAS
>>17
それはダックタイピングだと思うが、正直俺はその点に関しては気にならない。
期待通り動けば何でもいい。
気になる人は例えばtoString()の解釈について、
・ダックタイピングだ。toString()があるから使えるだけ。
・各型についてtoStringというインタフェースが実装されているのだ。
・toString()はテンプレート関数で、各型についてオーバーライドされているのだ。
と考えることが出来るかもしれないが、俺はどれでもいいと思っている。
JavaScriptはthisを関数側に持たせているため、callを使って他型のprototype等を間借りすることが出来る。
これは便利ではあるが、しかし真面目にインタフェース等で実装すれば済むことが大半だ。
だからこの方式もthisがいちいちはがれてbindしなければならない方が面倒だ。
classシステムのようにインスタンス側にthisを持たせる方が理に適っているように思う。
28(1): デフォルトの名無しさん [sage] 2015/12/19(土) 04:44:14.14 ID:WePRjNql(1) AAS
>>26
問題はArrayが少し変わったオブジェクト程度であること
そしてArrayのメソッドは、ArrayLike(この場合lengthを持つもの)について保証していて最初からそのように作られている
JSにおいて配列の最も基本的な定義はlengthプロパティに要素の長さを記録しているもの程度のことでしかない
当然DOMの配列でも動くし、型付配列でも動く
それなのにわざわざArrayだけでしか動かなくする必要があるのか?
ここがミソで、わざわざArray以外にも対応する、のではなく、わざわざ対応しないようにするのかと考える
Array.isArrayは型付配列すらtrueを返さない
isArrayは配列がどうかのチェックではなく、Arrayかどうかのチェックだ
配列を扱うとする関数でArrayだけに絞るのはJSにおいて必ずしも十分ではないということだ
その関数を作る目的と使われるシチュエーションを考慮しないといけない
>>27
@@toStringTagをお忘れかな?
===の件もそうだな
どうして必要もない制限をわざわざするのか?と思ってしまう
というのは半分ウソで、実際は他の演算子と文字数が違うものを基本で使うのは気持ちが悪いから==を基本で使う
経験上==を基本で使ったからといってバグになるようなことはない
型変換のバグは予想外に同値判定で通ってしまうことよりも、予想外に通らない事のほうが圧倒的に多いのだから
85(1): 76 [sage] 2016/04/26(火) 00:51:40.14 ID:74Un+zc0(2/4) AAS
>>83の続き
// bad
function fn1 (event) {
this.classList.add('hoge');
}
// good
function fn2 (event) {
event.currentTarget.classList.add('hoge');
}
element.addEventListener('click', fn1); // OK
element.addEventListener('click', fn2); // OK
element.addEventListener('click', {handleEvent: fn1}); // NG
element.addEventListener('click', {handleEvent: fn2}); // OK
handleEventを拡張した場合、this値を指定したコードは動作しなくなる
ようするに、this は可変値なので固定値をとりたい場合に使用するべきではないという事だ
---
this が可変値である事を上手く利用した例に Array.prototype.forEach がある
Array.prototype.forEach.call(document.querySelectorAll('.test'), function (element) {
element.classList.add('foo');
});
これが動作するのは Array.prototype.forEach が this 値が配列でなくとも動作するように設計されているからだ
this 値は変動するから Function#call や Function#bind が生きる
だからこそ、this 値が変動する事に価値を見出せる設計にする必要がある
204: デフォルトの名無しさん [sage] 2016/05/19(木) 07:31:01.14 ID:l0qmM6vP(1) AAS
>>203
> 型のアノテーションがどうだとか、型を定義すべきだって話が眉唾と言うか、良い所全部殺すなって思うんよね。
文脈を読めてないんじゃない?
型付き言語にこだわっていた人と>>198は別人
222(1): デフォルトの名無しさん [sage] 2016/06/12(日) 00:33:54.14 ID:npk74fIw(2/6) AAS
npmの所にある3者のうち、(全部読んではないが、videoは全部見た)
1つ目は教条的な理由、
> “They’re required because ASI is unreliable.” Seriously!?
> These rules date back to the early days of JavaScript, in the late 90s.
> They’re not new, and in my opinion there is no excuse for someone calling themselves a professional JavaScripter and not understanding statement termination.
> It is blatantly irresponsible of the thought leaders in the JavaScript community to continue to spread uncertainty rather than understanding.
> http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding
2つ目はどのみち必要だという理由、
> Even if you use semicolons at the end of every statement, some constructs parse in non-obvious ways. Regardless of your preferences in semicolon usage, you must know the rules to write JavaScript professionally.
> http://inimino.org/~inimino/blog/javascript_semicolons
3つ目は「関数には要らなくて関数式には付けろとか『初心者には』分かりにくい」ということだった。
> https://www.youtube.com/watch?v=gsfbh17Ax9I
よく見るとなるほどこのnpmのコーディングルールの作者がferossか。
ならばそれは「GitHubで確立されている」とは言わない。それは君がGitHubを勘違いしているだけだ。
GitHubはただの置き場であって、誰でも何でも置けるんだよ。プログラムである必要すらない。
とはいえnpmではある程度の評価を得ていることは事実だな。ただ明らかに主流ではないが。
セミコロン無しの有名言語はRubyとPythonだと思うが、そっち出身でなければ大人しく付けておいて、それに慣れた方がいい。
Ruby/Pythonとの相互運用なら可能性はありだが、
俺はRubyもPythonも知らないのでどちらがマシかの判断は付かない。
277: デフォルトの名無しさん [sage] 2016/06/27(月) 17:22:50.14 ID:PSQIpa+S(1) AAS
Int64はなんでないのかねえ
395(2): デフォルトの名無しさん [sage] 2016/08/22(月) 21:40:34.14 ID:m1LOPf7I(17/18) AAS
>>392
未来のストレージがどうなるかは別の話だ。
FileSystemAPIはオレオレエクスプローラの再開発をしなくて良いのが利点であって、
それがないのならゴミでしかない。
お前が色々再開発をするのは勝手だけど、大多数の人にとっては、
普段使っている物がそのまま使えるのが一番分かりやすいUIだ。
Webアプリ間での相互アクセスを禁止するのはいいとして、
OSからの透過アクセスを禁止する意味はない。
ブラウザアプリからは常にブラウザ経由になるのだから、
アクセス権限、unixで言う644とか755とかを管理するのが一番簡単。
何でそんな糞仕様にしたのか意味不明。
ていうかChromeではBlobをIndexedDBにいれれないのか。使えねえ。
IndexedDBで両対応という作戦は頓挫した。根本的に練り直しだ。
てかマジでこの辺統一しろよな。
> While Firefox supports blob storage for IndexedDB,
> Chrome currently does not (Chrome is still implementing support for blob storage in IndexedDB).
> If you are targeting Chrome for your app and you want to store blobs,
> the File System API and App Cache are your only choices.
> However, AppCache storage isn't locally mutable,
> and doesn't allow for fine-grained client-side management.
> https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Introduction
426: デフォルトの名無しさん [sage] 2016/08/26(金) 23:31:04.14 ID:LTYwvQxl(1) AAS
バカほど人を見くびるもんだよ。
そして見くびれるからバカで居られる。
会話するメリットなんかいくらでもあるよ。ぬいぐるみは反抗しない「から。
反抗反論されると言うことは、自分の発言は反抗反論される程度の意味があんだ、むしろ相手が理解できない馬鹿なんだ」と思うことすらでき、一人で気持ちよくなれる。
520: デフォルトの名無しさん [sage] 2017/01/01(日) 18:50:49.14 ID:QliWG2cV(4/4) AAS
>>519
二段落目が、表現上意味が繋がらんな。
書き込みが役に立てばスレの役に立たなくて、スレの役に立てば役に立たない書き込み、だな。
596(1): デフォルトの名無しさん [sage] 2020/07/23(木) 00:38:57.14 ID:cGFBf2BV(1) AAS
jQuery, Haxe のthis は、JavaScript/TypeScript のthis とは異なる。
this がwindow を指したり、おかしな部分があるので、それを変えている
それと、JavaScript の質問は、web制作管理板の方へ書き込んでください!
こちらの板は、web制作管理板が荒らしに荒らされた時に、
緊急避難的に立てられたものだから、今は使われていない
635(1): デフォルトの名無しさん [sage] 2020/07/23(木) 23:56:14.14 ID:k24nyzXR(21/21) AAS
まとめ
こいつはイベントデリゲーション(複数の要素に同じイベントハンドラを割り当てるコード)を
jQueryで書いているコードを見たことがない、もしくは見たことあっても気づかないで
jQueryでもDOM APIと同じように書くしかないはずだ!だからjQueryを使う意味がない!と考えていたようだが
そのイベントデリゲーションこそjQueryでシンプルに書けるコードの一つだったという話です。
718: デフォルトの名無しさん [sage] 2021/03/07(日) 23:11:04.14 ID:bNghcsY5(1/2) AAS
ゲームのコアライブラリ書いてるけど
async/await のお世話に頼らないと無茶だと痛感
不定個のPromise配列をパイプライン処理すんの無理だわな
750: デフォルトの名無しさん [sage] 2024/03/19(火) 13:05:44.14 ID:d3TWJjaW(1/2) AAS
>>749
> }の後に;をつける人
C/C++/C#/Java等、セミコロン省略禁止の言語でもそこに付ける奴はいない。
つかお前根本的に勘違いしてるからきちんと確認しろ。
そしてその程度ならどっちでもいいからさっさと次に進め。
セミコロンを打つ打たないに拘り始めたら無駄に足踏みして上達しなくなる。
絵を描くのが目的なのに、鉛筆の削り方に拘りすぎて絵を描かなくなるようなものだ。
コードも同様、書いて動かしての反復で上達するのであって、書かないのではどうにもならない。
(書く前に考えろ、というのはあるが、今のお前はそのレベルに達してない)
通常はリンターの警告を全部無くすようにする。
これはリンター製作者がお前よりJSに詳しいという仮定だ。
少なくとも分かるようになってリンター製作者の思惑も見えてきてウザくなるまではそうするべき。
そもそも警告が出てる箇所を間違ってると思うから、まずお前は全部リンターに従うべきだろうよ。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.038s