?PLT(34337)
JavaScriptの参照の仕組み、あなたはきちんと説明できますか?
結論を言えば、JavaScriptにはポインターがなく、参照の方式は私たちが知っているほかの主要なプログラミング言語とは異なります。JavaScriptでは、ある変数が別の変数を参照すること(参照渡し)には対応していません。そしてオブジェクトや配列のような複合型のものだけが「参照渡し」を使います。
この記事では以下の用語を使用します。
・スカラー(基本型):1つの値もしくはデータ型(整数、論理値、文字列など)
・複合型:複数の値から成るもの(配列、オブジェクトなど)
・プリミティブ:ほかの場所の値を参照しているだけのもの(参照型)と区別するため、実際に値を保有しているものをプリミティブとする
JavaScriptのスカラーはプリミティブですが、Rubyなどほかの言語では参照型のスカラーになっています。JavaScriptではプリミティブなスカラーはイミュータブル(immutable)ですが、複合型データはミュータブル(mutable)です。
(以下ソース)
https://www.webprofessional.jp/how-javascript-references-work/
2 : フランケンシュタイナー(catv?)@\(^o^)/ [JP]:2017/04/17(月) 23:30:23.03 ID:F4dY4OVs0.net >>1
参照言いたいだけやろ!
3 : TEKKAMAKI(青森県)@\(^o^)/ [BH]:2017/04/17(月) 23:30:39.23 ID:TFXvOcpv0.net ばあちゃんが言ってたのは本当だったんだな
4 : ボマイェ(北海道)@\(^o^)/ [US]:2017/04/17(月) 23:31:25.36 ID:u01wQ50X0.net アクティブスクリプトの激重な思いでIE4ちゃんが固まったゃったよ〜
5 : バーニングハンマー(庭)@\(^o^)/ [US]:2017/04/17(月) 23:32:42.91 ID:yt1KQTMA0.net 言語仕様がクソなだけ
6 : 閃光妖術(SB-iPhone)@\(^o^)/ [ニダ]:2017/04/17(月) 23:35:55.74 ID:CjYpa5Id0.net jQuery「えっ?」
7 : フロントネックロック(神奈川県)@\(^o^)/ [ニダ]:2017/04/17(月) 23:51:27.59 ID:bDz0YIFp0.net >>4
はよ捨てろやそんなガラクタ。古いPCは使ってるだけで会社の生産性を低下させるぞ。
8 : クロスヒールホールド(静岡県)@\(^o^)/ [US]:2017/04/17(月) 23:55:20.56 ID:JpYqXWEd0.net 10年後くらいにはJavaScruipt直下記禁止になってるわ
今からTypeScript勉強しとけ
9 : ファイナルカット(庭)@\(^o^)/ [US]:2017/04/17(月) 23:59:57.46 ID:cGH7rj/E0.net C言語は参照渡しが出来ない。
その代わりポインタというのがあるよ。
10 : トペ スイシーダ(catv?)@\(^o^)/ [US]:2017/04/18(火) 00:00:06.45 ID:ngmwRRTX0.net いっときは死んでた言語だよね
ajaxで急に復活した
11 : ジャンピングパワーボム(関西地方)@\(^o^)/ [US]:2017/04/18(火) 00:00:42.51 ID:ZJU6vTxF0.net WSHのスクリプト書くときVBSはどーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーしても嫌だったので
ずっとJScriptで作っていました
ありがとうJScript、VBは死んでください
12 : ファイヤーボールスプラッシュ(東京都)@\(^o^)/ [US]:2017/04/18(火) 00:08:31.70 ID:U8agEyho0.net C++のトラウマから生まれた言語の大半は
参照型と現物を(わざと)混乱させる仕様にしていると思う
13 : ニールキック(東京都)@\(^o^)/ [US]:2017/04/18(火) 00:20:06.46 ID:MZC4jN0j0.net 参照渡しとかポインタがどうのとか言ってるやつはただのアホ
純粋に変数は値とアドレスのペアと覚えるだけですべて解決する
14 : フルネルソンスープレックス(catv?)@\(^o^)/ [JP]:2017/04/18(火) 00:26:16.03 ID:x4en/nQq0.net >>13
それは普通わかってるだろ
その上で言語の仕様というか設計思想としてどういう渡し方をするのかって話でしょ
15 : 閃光妖術(東京都)@\(^o^)/ [IT]:2017/04/18(火) 00:33:37.72 ID:CtHV3Vdi0.net jqueryで適当に書くだけの簡単なお仕事
16 : エルボーバット(中部地方)@\(^o^)/ [US]:2017/04/18(火) 00:35:07.51 ID:cRsLQb8o0.net 配列はコピーして使う
a=[1,2,3]
b=a.slice()
難しく書いて誰向けに説明しているのかw
17 : 目潰し(熊本県)@\(^o^)/ [US]:2017/04/18(火) 00:54:49.08 ID:WzPfjTXI0.net ナルポインターエクセプション
18 : ブラディサンデー(東京都)@\(^o^)/ [IN]:2017/04/18(火) 00:58:25.58 ID:B+paKImj0.net 画像置くのはHTML、サイズや位置はCSSとかクソ面倒。
全部javascriptで書ける用にしてほしい。
_x=0みたいな指定ができないってホント欠陥言語よ
19 : 足4の字固め(やわらか銀行)@\(^o^)/ [KR]:2017/04/18(火) 01:00:11.03 ID:J9CI939T0.net >>15
その職場紹介してくれ
20 : マシンガンチョップ(北海道)@\(^o^)/ [US]:2017/04/18(火) 01:27:20.72 ID:mgBtP2/E0.net >>16
A[0]++;
21 : チキンウィングフェースロック(catv?)@\(^o^)/ [US]:2017/04/18(火) 01:42:20.79 ID:nIajtqXD0.net >>17
ガッ
22 : タイガースープレックス(千葉県)@\(^o^)/ [EU]:2017/04/18(火) 01:45:29.36 ID:yquKl16T0.net netscapeが実装しなければこんな惨状にはならなかった
23 : 中年'sリフト(catv?)@\(^o^)/ [US]:2017/04/18(火) 01:48:57.76 ID:3AJJAv/c0.net 参照はピリリと辛い
24 : ラダームーンサルト(大阪府)@\(^o^)/ [US]:2017/04/18(火) 01:53:56.82 ID:1hQo0MOd0.net なにを言っているのかサッパリわかんねえ
25 : 閃光妖術(秋田県)@\(^o^)/ [US]:2017/04/18(火) 02:53:01.93 ID:KGstnAu20.net あきた
26 : ダイビングエルボードロップ(家)@\(^o^)/ [DE]:2017/04/18(火) 03:47:55.67 ID:C9IOIL9i0.net まさかjavascriptが今の地位に返り咲くとは思わなかった
27 : 河津落とし(家)@\(^o^)/ [PL]:2017/04/18(火) 04:41:48.88 ID:Hi3Dy6GJ0.net >>18
innerHTMLやcanvasみたいな実装があるんだからなんだってできるじゃん。
28 : アイアンクロー(広西チワン族自治区)@\(^o^)/ [US]:2017/04/18(火) 04:46:09.95 ID:aB9Y6d28O.net 馬鹿なりのサーチ
29 : クロスヒールホールド(やわらか銀行)@\(^o^)/ [DK]:2017/04/18(火) 05:30:17.63 ID:I9G19Rv90.net 一周回って結構好き。Rubyは一周回って結構嫌い
30 : 閃光妖術(秋田県)@\(^o^)/ [US]:2017/04/18(火) 06:30:02.83 ID:KGstnAu20.net そうだね
31 : 閃光妖術(秋田県)@\(^o^)/ [US]:2017/04/18(火) 07:30:02.75 ID:KGstnAu20.net まだ終わらんよ
32 : オリンピック予選スラム(秋田県)@\(^o^)/ [US]:2017/04/18(火) 08:30:02.08 ID:of0xwyqz0.net 何それ
33 : ファルコンアロー(新疆ウイグル自治区)@\(^o^)/ [CN]:2017/04/18(火) 09:17:49.77 ID:0TL0cxzl0.net このレス
$Main->{hayabusa8}->{news}->[1492439341]->[32]
でいーじゃん、いーじゃん
34 : オリンピック予選スラム(秋田県)@\(^o^)/ [US]:2017/04/18(火) 10:17:17.40 ID:of0xwyqz0.net だめ
35 : ボマイェ(茸)@\(^o^)/ [US]:2017/04/18(火) 11:07:24.17 ID:doZ8TSUp0.net prototypeが諸悪の根元
36 : フランケンシュタイナー(秋田県)@\(^o^)/ [GB]:2017/04/18(火) 12:07:01.65 ID:1AcGoggC0.net ぬくぬく
37 : オリンピック予選スラム(秋田県)@\(^o^)/ [US]:2017/04/18(火) 13:07:02.77 ID:of0xwyqz0.net 語ろうよ
38 : マシンガンチョップ(庭)@\(^o^)/ [GB]:2017/04/18(火) 14:01:09.87 ID:Y8yAjFjL0.net いまやポインタあるほうが珍しい部類だろ
39 : フランケンシュタイナー(秋田県)@\(^o^)/ [GB]:2017/04/18(火) 15:01:02.17 ID:1AcGoggC0.net そうか
40 : ニールキック(秋田県)@\(^o^)/ [ニダ]:2017/04/18(火) 16:01:01.83 ID:4Xa1m9Ws0.net しらんがな
41 : メンマ(福岡県)@\(^o^)/ [US]:2017/04/18(火) 16:18:38.17 ID:fA7I2fyg0.net >>39
顕正会乙
42 : ニーリフト(新疆ウイグル自治区)@\(^o^)/ [US]:2017/04/18(火) 16:21:04.56 ID:c3frzVtP0.net メモリリーク起こしやすいよね
43 : 河津掛け(チベット自治区)@\(^o^)/ [ニダ]:2017/04/18(火) 16:24:14.88 ID:7AodG2Lm0.net 知ってどうなる
44 : ランサルセ(東京都)@\(^o^)/ [AU]:2017/04/18(火) 16:32:59.62 ID:UehKhOE00.net ポインタと言えなくなった人の代償行動
45 : メンマ(福岡県)@\(^o^)/ [US]:2017/04/18(火) 16:46:28.92 ID:fA7I2fyg0.net ぬるぽ
46 : 足4の字固め(dion軍)@\(^o^)/ [ニダ]:2017/04/18(火) 16:47:47.03 ID:4s7hltzy0.net 欠陥言語ですね
47 : 河津掛け(関東・甲信越)@\(^o^)/ [FR]:2017/04/18(火) 16:49:33.34 ID:GUK3iVu+O.net ぱっと見Cと区別が付かない
48 : 16文キック(東京都)@\(^o^)/ [US]:2017/04/18(火) 17:18:45.38 ID:O9WzT7V00.net ポインタってどう使ったらいいのか全然分からん
BASICの参照している変数のアドレス返すVARPTR関数というのがあって、マシン語とのデータ橋渡しで使った程度だ
49 : ストレッチプラム(庭)@\(^o^)/ [PL]:2017/04/18(火) 17:55:13.90 ID:6DaETiqH0.net varからlet、constに移行してすっきりした
50 : 男色ドライバー(神奈川県)@\(^o^)/ [US]:2017/04/18(火) 18:11:38.62 ID:WIzU3lop0.net 型がないのが糞すぎる
51 : フロントネックロック(空)@\(^o^)/ [ニダ]:2017/04/18(火) 21:38:22.75 ID:vKnAFSca0.net >>49
まだ対応してないブラウザがあって断念したわ
数ヶ月前ダメだったけど今は行けるのかな
52 : バックドロップホールド(catv?)@\(^o^)/ [US]:2017/04/18(火) 21:41:17.97 ID:77aVdZOx0.net JavaScriptは言語仕様がクソ
53 : 河津掛け(家)@\(^o^)/ [US]:2017/04/18(火) 21:43:57.10 ID:WBNWvGrr0.net GOTO
54 : トラースキック(滋賀県)@\(^o^)/ [CN]:2017/04/18(火) 21:45:42.18 ID:rA/OEm3M0.net 知らないでソースコードコピペしてやっているやつがおるw
55 : チェーン攻撃(catv?)@\(^o^)/ [FR]:2017/04/19(水) 06:32:07.93 ID:V1AK5HX10.net すべてのブラウザでVBScriptが動けば解決
56 : ナガタロックII(山口県)@\(^o^)/ [US]:2017/04/19(水) 09:58:53.39 ID:6ZUgcPrl0.net >>1
その記事は大間違い
JSはすべて参照の値渡し、もしくは共有渡し、もしくは名付けの連鎖
そもそも「渡され方」は「渡し方」によって変わるもので、
「渡される物」によって変わるわけがない
JSでは「渡し方」は一通り、よって「渡され方」も一通り
57 : バーニングハンマー(茸)@\(^o^)/ [ZA]:2017/04/19(水) 10:34:26.00 ID:wfECzJQI0.net いま作ってる機能が参照私ばかりしててさーせん
総レス数 57
12 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★