のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,432,533人
昨日:no data人
今日:
最近の注目
人気の最安値情報

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

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

351 = :

吾輩は猫である
名前はまだない

352 = :

そもそも概念的には一般的に物体というものが名前を保持しているのではない
名前が物体を参照しているのだ

354 = :

function EventHandler(event) {
var e = event || window.event;
}

イベントオブジェクトの取得で↑が例としてのってたのですが
またはの記号って左辺が優先されるとかありますか?
event がなければ window.event から取得するみたいな

356 = :

>>354
短絡評価だろ

左が真なら、右を評価しないで、左を戻す。
左が偽なら、右を評価して戻す

let e = 1 || "a" //=> 1

e = null || "あ" //=> あ

357 = :

>>354
>>3のリファレンスぐらい読め
http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_Operators

361 = :

配列じゃないけどね。
本当に配列が欲しいならArray.from( )か [... ]で囲みなよ。

363 = :

>>361
配列だろArrayじゃないと言うだけで

364 = :

JavaScriptにおいて、Arrayの一般的な訳語が配列ではないと言うのなら、そうですね。

365 = :

>>363
コレクションだ

366 = :

NodeListは「配列メソッドが使えない!」という誤認が初心者でよく見かけるな

367 = :

間違いじゃないよ。今は改善されて配列メソッドと互換性があるメソッドがNodeListに追加されたってだけ
だから古いブラウザだと動かないことがある。

368 = :

鳥は飛べますが、
猫が飛べるようになったら鳥でしょうか?

369 = :

存在しないものを例に挙げるのは詭弁のガイドラインに抵触しますが、
あえて言うならば猫メソッドに鳥メソッドを追加しても個別の飛べる猫です
人間が琵琶湖で飛んでも鳥ではなく鳥人間と呼ばれます

370 = :

ダックタイピングとは、Rubyなどの動的型付けオブジェクト指向プログラミング言語で行われる、
型付けのやり方です。 次の文章が基になっている考え方となっています。
「もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルである。」
つまりドナルドダックはアヒルです。

371 :

>>365
結局配列みたいにインデックスで呼び出せるんだから同じでしょその意味では

372 = :

>>367
> 今は改善されて配列メソッドと互換性があるメソッドがNodeListに追加されたってだけ

これは本当ですか?
NodeListにはforEachだけでなく、pushやconcatもあるのですか?

373 = :

>>371
JSでは配列は特殊なオブジェクトと言うことができるが、これをもってオブジェクトは配列であるというのがお前の意見。
それでいいならいいんじゃねメンドくせえ。
リアルでもガンガンそう主張していけよw

374 = :

>>372
ないならないんじゃねw
知らんよ。俺はNodeListは配列だと思ってないし。

そういったブラウザ間の違いとか、本質的でない部分で
無駄に疲れるのがいやだからjQueryを使うわけで

375 = :

>>374
>>367の「間違いじゃないよ」は>>366の「配列メソッドが使えない!」にかかってたんじゃなかったのか?
主張に一貫性がないな

376 = :

>>371
たとえば
const NL = document.querySelectorAll('div');

これはイケるけど
NL.forEach((item) => { console.log(item) });

これは駄目、配列じゃないから
const hoge = NL.map((item) => { return item.innerHTML; });

20年以上前のgetElementsByTagName時代から
「配列と同じでしょ」っていう人は一定数いて
どこかで配列として扱おうとしてコケる、っていうのを繰り返して今に至ってる

だから、今まだこのスレで質問する側なら、あんまり意固地にならず
ノードリスト、コレクションは配列とは似て非なるもの、って認識を持ったほうが良いよ

というのが答えてる人の総意だと思う

377 = :

>>365
それは違う
querySelectorとquerySelectorAllが返すのはNodeList
getElementsByTagNameや、要素.childrenが返すのがCollection

NodeListは静的で、取得後にDOM内で要素が増減しても変わらない
Collectionは動的で、取得後でもDOM内で要素が増減すると変わる

getElementsByホゲホゲを使うことはもう無いだろうけど
childrenはまだ使う機会があるだろうから、覚えておこう

378 = :

なんでこんなばらばらの仕様にしたの?
それを吸収するjQueryは素晴らしいね!

379 = :

NodeListは静的で、取得後にDOM内で要素が増減しても変わらない
だけでDOMの内容自体は変わることに注意

Collectionは動的で、取得後でもDOM内で要素が増減すると変わる
のでインデックス番号とかで扱ってるとバグることがあるので注意

380 = :

>>364
頭大丈夫か?
Arrayの一般的な訳語が配列あったとしても、
その逆も同じとはならないだろ
「配列」はより一般的な用語だ

381 = :

>>364
「配列」をArrayと1:1関係と決めつけるほうがおかしいでしょ
>>371は多分用語の「配列」のことを言ってるんでしょ

そもそも大大大前提としてJSのArrayはただのオブジェクトでしょ
別に数字キーで管理されているわけでもなく、普通の文字列と値の組み合わせのオブジェクトでしょ
ただほんのちょっとプロキシ的にlengthと数字キーを扱ってArrayらしさが出てるだけの
「呼ぶことができるオブジェクト」である関数と同じように
他のビルトインオブジェクトと比べても異色ではない存在でしょ

その点実際にJSと絡むときはレイヤー挟んでるとは言えListと名が付いてて
仕様の表現的にはNodeListのほうがよほど配列らしいでしょ
それなのにArrayだけを配列と呼ぶことに拘る論理的な必然性と意味があるのか?
あまりにもナンセンスでしょ

あと>>365もおかしい
NodeListもコレクションだから
liveなコレクションがHTMLCollectionでstaticなコレクションがNodeListってだけだから

382 = :

最後のおかしいのは>>377だった

383 = :

>>381
> そもそも大大大前提としてJSのArrayはただのオブジェクトでしょ
> 別に数字キーで管理されているわけでもなく、普通の文字列と値の組み合わせのオブジェクトでしょ

はあ、そうですか
つまり、あなたの中では {0:0 ,1:1, length:2} も "" も配列なんですね
曖昧な世界に生きてますね

384 = :

>>381は曖昧であった… 虎眼先生かな?w

385 = :

373 Name_Not_Found sage 2020/03/06(金) 19:22:12.14 ID:???
>>371
JSでは配列は特殊なオブジェクトと言うことができるが、これをもってオブジェクトは配列であるというのがお前の意見。
それでいいならいいんじゃねメンドくせえ。
リアルでもガンガンそう主張していけよw

386 :

>>248

>>249
ライブラリを使わずにオフラインで3Dゲームを作ることが出来ました。
仕組みを1から理解出来て良かったです

387 = :

>>356->>357
遅ればせながらありがとうございます。

短絡評価というのですね。
if文で何の気なしに使ってるだけで、左辺から処理されているとか考えたことなかったです。
どうも!

388 :

オフライン環境でファイルの書き込み&保存をする方法はありますか?
読み込みなら出来てるんですけど…

389 = :

>>381
配列に限らず
全てのオブジェクトはObjectオブジェクトの子孫だよ

390 = :

>>388
出来たら何をしたいんだこの犯罪者め!

392 = :

>>383
そうではない
Arrayを配列たらしめてるのは[[DefineOwnProperty]]内部メソッドの効果であって
逆に言えばArrayは[[DefineOwnProperty]]トラップがあるだけの普通のオブジェクトだと言うことだ

>>389
プロトタイプ的に子孫であるかどうかの話をしているのではなく、
形態と効果について話してる

393 = :

要するに話を戻すと、
Arrayというのはその存在がそのものがJSの中で特殊なものではなく、
オブジェクトがトラップによって配列たらしめられているからArrayは配列なのであって、
他の配列たらしめられているオブジェクトも同じく配列と呼ばないというのはナンセンスだという話

395 = :

いやいや、Arrayも配列だが、配列はArrayだけではないでしょ
例えばTypedArrayは型付配列だけど、型付配列は配列じゃないか
そのように配列っていうのは広い概念でしょ
何を理由のない変なこだわりをしてるんだか

397 = :

JSでなんちゃらオブジェクトっていうのは、
どんな修飾がされたオブジェクトかっていう括りであって
プロトタイプはオマケであって本質とは関係ないでしょ?

ArrayはArrayたらしめる修飾がされたオブジェクトであって
その修飾の方向性を配列と呼ぶんでしょ
その中でも具体的に大きい特徴は、
lengthプロパティが実際の配列としての要素数とリンクしているということでしょ
その点例えば{0:'a',length:1}は用意に世界観が壊れるが
ある種似ているかもしれないTypedArrayは要素数固定のおかげで
Arrayのように個性的なトラップメソッドを付与されていない、
内部スロットがある薄い特殊オブジェクトだけど、配列と呼べるんでしょ

ならばNodeListとかも配列と呼ばないのは不自然でナンセンスだとは思わないかい?

398 = :

これって1人でずっと会話してるの?

399 = :

だからID無しはキモいんだよな

400 = :

キモいというのは幼少期から言われ慣れてるから
多分今日も昨日も職場で言われたし

ただ俺は人間よりもJS、Web大好き人間なだけであって
エンジニアとして技術的な話がしたいし
プログラミングの世界に余計な雑念を持ち込まれたくないだけであって、
入門者が曲がった価値観を植え付けられるのを見ていられないだけだからね


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について