JavaScript の質問用スレッド vol.123 [無断転載禁止]©2ch.net

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 73c8-oPzN)
垢版 |
2017/04/03(月) 00:31:25.68ID:82yaJsi70
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
※前スレ
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/07/05(水) 03:01:17.21ID:Pz4DebRH0
alertは視覚的にわかりやすい
開発ツールはブラウザやOSによって操作がちがい、スマホのように存在しない環境もある。開発者ツールの使い方をやる前のサンプルにはalertのほうが説明が少なくて楽

そして、同等に近いものは権限的にポリフィルでは書けない

・DOM構築前でも使える
・クロスオリジンのフレームでも出力可能
・Webサイト上から読み取られない
・DOM操作に影響しない
 
中途半端に再現したものを使うのは特に入門編では混乱のもとなので良くない。alertにつなぐのはライブラリとか拡張機能による出力があるのでどう考えても変

また、今後セキュリティの問題とかが出ればconsole.logが書き換えできなくなる可能性を否定できない。
2017/07/05(水) 07:19:35.73ID:tax8J9ZO0
大昔は間違って連続alert出しちまったら大事だったが
今は普通にそのタブだけ閉じれるからな
まあアラートでも何でもええと思うよ

別にalertとconsole.logは包括関係でもなんでもない
全く別の機能だし
2017/07/05(水) 07:29:54.56ID:zFb2YRep0
説明が面倒だったとか、スマホ考慮したとか、全部正解なんですけど、
やっぱ視覚的にわかりやすいってところが一番ですかね。
console.logは地味で初心者の反応が悪いんですよ。
興味を持ってもらうにはalertのほうが効果的だと思います。
2017/07/05(水) 08:03:34.95ID:7CZ44oFla
プログラムに手加えるのめんどいしブレークポイントで済ませちゃうことが多いかも
2017/07/05(水) 11:48:12.35ID:KD2VFbty0
SPAの場合に
urlが実際のコンテンツ配信のエンドポイントになっているのかそれともjsによる擬似的なurl?
か区別つかないよね。
これってjsから検出する方法ありますかね?
locationオブジェクトを参照する範囲では区別つかないんですが
2017/07/05(水) 12:10:27.92ID:W7p06HKZ0
console 系は、本番のソースコード中に放置していると、

メモリリークするので、ツールで消すべし
2017/07/05(水) 19:47:23.76ID:tax8J9ZO0
それは昔の話
今はしない
https://1000ch.github.io/memory-leak/console/
2017/07/05(水) 20:26:52.96ID:uevhplVm0
>>812
ルーターに指定のURIが登録されてるかどうかチェックできたりしない?
フレームワークによるかもしれんけど
2017/07/05(水) 20:39:38.81ID:tax8J9ZO0
performance.getEntries()[0].name == location
で分かる
2017/07/06(木) 00:17:33.48ID:/WGPUMaU0
>>807
姦流プログラミングではalertを使ってデバッグをする、まで読んだ
つかそれマジで言ってるんだろうし、かなりやばいぞお前

韓国人死ね


>>811
それは正解。

ハロワってのはCに対するリスペクトを示したものなのだが、
お前らもMDN執筆者もCを知らず、結果的に面従腹背になってる。
あれは「最も基本的な出力」としてprintfを使っているのであって、
それはprintfデバッグという最も汎用的なデバッグ方法に繋がっている。
標準がどうのこうの言い出したらCの方が酷くて、
画面なんてつながっていないのも多く、シリアルに出せればマシな方だ。
それでも「最も基本的な出力」としてのprintfというインタフェースは決まっていて、
とりあえずまずはそこを目指す、ということになっている。

だから最初のハロワはconsole.logでないと話にならず、
お前らは駄目な教科書を使っているから無駄なところで引っかかり上達してない。
blind leading the blindを地で行ってる。
お前らは被害者でもあるが、加害者にもなっている。
ただまあ、JavaScript界隈ではこれもよく見かける光景ではあるのだが。

ちなみにMDNのこちらのガイドはハロワはDOMでやっている。
https://developer.mozilla.org/ja/docs/Learn/Getting_started_with_the_web/JavaScript_basics
俺はこれはありだと思うよ。オレオレ実装console.logにつながるし。
見た目派手なのが欲しいのならこっちで行くべきだろう。
2017/07/06(木) 00:18:33.64ID:/WGPUMaU0
つかマジでお前らもうちょっと自粛しろ。馬鹿が馬鹿を再生産してる。ソースはお前ら。
「alertはデバッグに使える(キリッ」ではなくて、
「alertという効率が悪いデバッグ方法を使わざるを得ない事態に追い込まれている」
事自体が駄目なんだよ。それはお前らが目指す生産性ガーに明確に反するだろ。
お前らはファッションで生産性ガーを言っているだけであって、お前らの実際の生産性は低いよ。
少し考えれば分かるだろ。

似たような実例は福一の時バ菅首相がヘリで放水したことだよ。
見た目は派手だが全く意味ないというのは最初から分かってた。
あの采配の酷さはいまだに言われてるだろ。
お前らはそれをやってるんだよ。それで馬鹿が再生産されていることに気づけアホ共。

韓国人死ね
2017/07/06(木) 00:45:38.20ID:DNqxUdzY0
「alertは効率が悪いデバッグ方法である」が
そもそも間違いなので話にならない
2017/07/06(木) 01:08:50.89ID:/WGPUMaU0
ん?揚げ足取り乙。が、まあ、言い直しておこう。

・alertが一番マシなデバッグ方法だという状況でデバッグをする事態に追い込まれている

これでいいか?
俺個人はデバッグでalertを使うこと自体は否定しない。それが最適であれば使えばいい。
ただな、そういう状況自体がありえないように努力するべきであって、
console.logとalertを使い分けしてデバッグする(キリッってのは間違った方向の努力だ。
お前らはここらへんがまるで分かってない。関数型()な奴も割りとそうなんだけどさ。
向いている方向がまるであさってと言うか。

理由は多分、大規模なコードを扱ったことがないのと、マトモにデバッグしたことがないからだ。
だから俺の言い分が正しいと思う奴がいたら、上記を試してみろ。多分、上達する。

韓国人死ね
2017/07/06(木) 01:51:06.50ID:ohfPQcDZ0
XSSの例示とかのサンプルはalertが基本になってるな
試行錯誤する際にも成立が視覚的にわかりやすいし、console.logと違って押し流されたり何らかのページ移動なんかで消えることもない
2017/07/06(木) 03:48:07.95ID:KVA+3wQ7M
>>817
必死に考えたごまかしがそれか?ん?
おまえは本当にあたまがわるいんだなぁ

アラートデバッグはスマホ実機での簡易確認に便利
アラートは動作をそこで一時停止させて各種確認が可能
要するにconsole.logとは使い分けなんだよ
バカがconsole.logが上位互換とかおもって↓あんなこと書いちゃってたけどさ

「 現実的にalertなんて使うことないだろ? 」


これ、どう落とし前つけんの?ん?
823デフォルトの名無しさん (ワッチョイ b723-BL37)
垢版 |
2017/07/06(木) 04:45:34.54ID:9sJW4q9K0
すみません、HTTPリクエストやレスポンスって
文字列なのかファイルなのかオブジェクトなのかよくわからなくなりました
プログラム上ではオブジェクト化されているけど
chrome devtoolではレスポンスはファイルとして認識されている。
(ローカルストレージにはファイルシステムとしては現れない)
「ファイル」でいいのかなあ、バイナリ画像もあるわけだし、
それを各言語で「オブジェクト化」しているの?
2017/07/06(木) 09:46:58.98ID:DNqxUdzY0
>>820
> ・alertが一番マシなデバッグ方法だという状況でデバッグをする事態に追い込まれている

全然理解してないじゃないかw

場合によってconsole.logを使ったほうが良いかalertを使ったほうが良いかは変わるんだよ。
ほんと融通がきかないやつだな。

なんでも同じ方法でやろうとすんなや
2017/07/06(木) 15:02:19.08ID:9E7JeyR60
alertはデバッグのためのものじゃない
デバッグという言葉を知って、意識する段階になったのならやっぱりブレークポイント置いたりすべき
ただ入門段階の練習、ましてや試し実行に『デバッグ』もクソもない

別に一番最初からデバッガを使っていく必要もない
その頃は取っ付き易いalert確認でもいいということ
2017/07/06(木) 17:31:23.84ID:iKy+SoTP0
Javascript初心者です。以下のドキュメントを参考に、zaifのAPIからビットコインの価格を取得するだけのプログラムを作ったのですが、実行しても何も表示されず困っております
どこが間違っているのかご教授願えればと思います

ws
http://kaworu.jpn.org/javascript/ws

Zaif Exchange APIドキュメント
https://corp.zaif.jp/api-docs/


////////test.js/////////
var WebSocket = require('ws');
var wss = new WebSocket('wss://ws.zaif.jp:8888/stream?currency_pair=btc_jpy');
wss.on('connection', function(ws) {
ws.on('message', function(message) {
console.log('received: %s', message);
});
});


実行
$ node test.js
2017/07/06(木) 20:43:47.23ID:Lp3AWG+i0
>>815
>>816

ありがとうございます。
> performance.getEntries()[0].name == location
これで行けそうです。
chromeExtensionをつかって不特定多数のコンテンツの解析に使いたいんで特定のフレームワークに依存するコードは使えないんスよ。
助かります。
2017/07/06(木) 20:45:50.81ID:Lp3AWG+i0
>>826
これ確かzaif側のwebsocketのプロトコルバージョンが古かった気がします。
提供されてるclientライブラリ使ったほうがいい気がする
2017/07/06(木) 20:50:04.38ID:eiBibCfNd
>>827
拡張機能ならもっとスマートな方法があったかもしれない
コンテントスクリプトならその方法が一番楽だろうが
2017/07/06(木) 23:21:48.35ID:L8j5rxy60
var wss = new WebSocket('wss://ws.zaif.jp:8888/stream?currency_pair=btc_jpy');

console.log(wss);

これで、戻り値・エラー番号などを、見れるのでは?

戻り値が不適切なら、new WebSocket に失敗してるから、
エラー番号・エラーメッセージで検索すれば?

エラー番号・エラーメッセージも無いのに、漏れらにわかる訳ないだろ。
F12開発者ツールを起動して、デバッグすれば?
2017/07/07(金) 02:01:29.47ID:yB6Iql440
漏れってカキコ見たの何年ぶりだろう
2017/07/07(金) 08:58:45.03ID:s4A4ltyS0
var wssってなんだよw
するならvar wsだろ
xhrのrはRequestだからxhrでいいが
wssの最後のsはSecure→Encryptedだぞ
Secureであることの区別を表す必要が本当にあるのか?
あったとしてもスキームとしてのwssをそのまま使うのはおかしい
せめてswsとかewsだろ
2017/07/07(金) 15:00:36.62ID:COa0Ed5+0
質問お願いします。
画像データををCSSにBASE64形式で置いたのですが、それを使用するボックス要素に合わせてサイズ変更したいのですが
どのようにすればいいでしょうか?よろしくお願いいたします。
2017/07/07(金) 17:08:23.64ID:X45WHCT+d
>>832
WebSocketSessionとか?
いずれにせよ自転車置き場の屋根にガチャガチャ言わんでも。
2017/07/07(金) 19:47:42.14ID:a0p8X5TA0
>>831
一週間前の書き込みすら記憶に残らない、これが韓国人クオリティ

マジで韓国人死ね
836デフォルトの名無しさん (ワッチョイ b723-BL37)
垢版 |
2017/07/07(金) 20:10:39.66ID:8UX+Q+HA0
>>833
https://i.stack.imgur.com/dIfIp.png
2017/07/08(土) 01:39:40.00ID:AHa+5Wfk0
数日前回答を頂いた者です。
ideoneのJavaScriptを選択して、教えて頂いたように
<script>
alert("Hello\nWorld");
</script>
と入力してもエラーになってしまいます。
なにかアドバイスを頂けますでしょうか?
2017/07/08(土) 05:38:53.92ID:5BjTXb8r0
アドバイスもなにもな
JavaScriptとはどういうものかとかHTMLのこととか微塵も分かっていない状態で
そんな身の丈にあっていないサイト使おうとするからそうなる

『餡』は『餡』でもこし餡、粒あんいろいろあるように、君がやってるのは
ideoneは『白餡』を欲しているのに君は『黒餡の饅頭』を与えてるような、論外ものなんだよ

そこは最悪でも饅頭と餡の違い、そして白餡黒餡の違いが分かる人が利用するとこなんだよ
産まれて初めて餡(しかもWeb上の黒餡)を知った人が一人で使うようなところではない
JS実行サイトなら他にもたくさんあるが、君くらいならメモ帳で書いていくので十分なんだよ
2017/07/08(土) 12:06:03.27ID:+tVxWBzW0
>>837
>>789をちゃんと読んで
ideoneじゃなくてhtml書いてブラウザーで動かすんだよ
2017/07/08(土) 12:20:32.49ID:If7Rv9IA0
>>837
サービスは目的に応じて選ぼう
https://jsfiddle.net/sz76xxw3/
2017/07/08(土) 12:44:49.69ID:v/CZ5FQl0
ideone使いにくいよな。
JavaScript以外なら仕方ないのかもしれないけど、
そうでないなら使いたくないわw
2017/07/08(土) 14:30:09.61ID:J5RuKAu7d
何かのアルゴリズムとかECMAScripを試したいときは便利だよ
そうじゃないときは使いにくいというより、使おうと考えるべきじゃない
2017/07/08(土) 16:00:56.38ID:Fv/VLC2ua
>>837
35歳の発達か
2017/07/08(土) 18:57:51.60ID:AHa+5Wfk0
答えて頂いた方、ありがとうございました。

>>838
はい、bracketsで書いていこうと思います。

>>839
すいません、htmlを書くの段階から分かりません…。
少し調べてみます。

>>840
改めてありがとうございます。利用したいと思います。

>>843
そうかもね。
2017/07/08(土) 19:52:07.55ID:VUw5dhen0
paiza.ioでよくね?
何か問題あるか?
2017/07/08(土) 20:00:40.34ID:5BjTXb8r0
一番いいのはね、Webサイトい興味をもってブログとかし始めて、
もっと自由な表現がしたくてHTMLとCSSをかじり、
やがてJSにたどり着くコースなのよ

そうするとね、JSの能力が低くてもHTMLとCSSの能力でカバーして十分に
作りたい物表現できるのよ、
そこから楽しみながら徐々にJSに重点置いていくのも容易

でもね、そういう基盤が全くないというのは、無理とは言わないけど
少なくともここで文字だけで教えるのは容易では無いわ
仮に教えるとしても結局、HTMLやCSS、
もしかするともっと基礎的な知識を身に着けろという話に終始するだけだろうし

JSって確かに簡単な言語だけどね、それはJSを始めようとする人は
HTMLやCSSの知識があるということが半前提でのことなのよ
そして、ブラウザの操作やその他のリテラシーもそれと同じくらい重要
君はまず地道にそういう知識をためていかないと無理があるよ
2017/07/08(土) 20:27:31.78ID:fIuXTSpk0
3日でマスター HTML5 & CSS3、鳥羽薫、2013

この本で簡単に、30ほどのHTML5・CSS3の主要タグが学べる
2017/07/08(土) 21:15:27.92ID:VUw5dhen0
JavaScriptもHTMLもCSSも何も知らないまま入社2日目からWebサイトの改修を先輩への質問なしでさせられて泣きそうでした
849デフォルトの名無しさん (ワッチョイ b723-BL37)
垢版 |
2017/07/08(土) 23:46:11.44ID:EDp/ROlD0
API用のURL編集ツールとか
URLの解析ツールってあるの?
クエリストリングを作るのが難易度高すぎる。
配列や関数、JSONや コールバック、トークンとか絡んでくるとわけわからん
最終的にはエンコードされて汚ったなくなるし。
2017/07/09(日) 00:11:17.72ID:ODdY4A4c0
クエリストリングを作る?
そんなもんjQueryとかに任せればいいだろ?

> 配列や関数、JSONや コールバック、トークンとか絡んでくるとわけわからん
クエリストリングとは全く関係ない話だ
851デフォルトの名無しさん (ワッチョイ b723-BL37)
垢版 |
2017/07/09(日) 00:14:11.12ID:LPmXeDzw0
>>850
なんで?

$.ajax({ type: 'GET', url: 'http://', data{}, });
このurl: にクエリストリング引数を指定しないと行けないじゃん。
2017/07/09(日) 00:22:07.43ID:ODdY4A4c0
>>851
ちゃんとexampleみな
https://api.jquery.com/jquery.get/

$.get( "test.php", { name: "John", time: "2pm" } );

こういうふうに書くんだよ。
2017/07/09(日) 05:46:42.70ID:sX6v1jPj0
var url = "http://何々"

// 全体の設定
$.ajaxSetup({
data: {format: 'xml'},
timeout: 60 * 1000
});

$.ajax( url )
.done(function( data, textStatus, jqXHR ) { 処理 })
.fail(function( jqXHR, textStatus, errorThrown ) { 処理 });

こんな感じでも、書ける
2017/07/09(日) 11:35:11.72ID:6p7UXVr5a
>>849
new URLSearchParams を使う方法も有る。
https://developer.mozilla.org/ja/docs/Web/API/URLSearchParams

var params = new URLSearchParams;
params.append('q', 'URLSearchParams');
params.append('ie', 'UTF-8');
console.log('https://www.google.co.jp/search?' + params.toString()); // https://www.google.co.jp/search?q=URLSearchParams&;ie=UTF-8
2017/07/09(日) 11:38:32.00ID:6p7UXVr5a
URLコンストラクタを使った方がいいか。
var url = new URL('https://www.google.co.jp/search');
url.searchParams.append('q', 'URLSearchParams');
url.searchParams.append('ie', 'UTF-8');
console.log(url.toString()); // https://www.google.co.jp/search?q=URLSearchParams&;ie=UTF-8
2017/07/09(日) 13:20:33.93ID:zx3kMPLK0
いや違うんだよ。>>854-855みたいに
クエリストリングを作る必要がないって話。

フォーム使うって手もあるしJavaScriptであれば
普通にパラメータをハッシュまたは配列で渡すだけで
組み立ててくれる。
2017/07/09(日) 14:37:35.20ID:9yQC/vv/0
それはそうするためのライブラリを使えばの話だろ
標準APIのxhrやfetchで使えるのは
Blob,BufferSource,FormData,URLSearchParams,USVString,ReadableStream
だけ
2017/07/09(日) 14:58:54.59ID:zx3kMPLK0
>>857
でもそこに書いてあるのって、特定のブラウザでしか使えないから
結局Polyfillライブラリいれることになるじゃん?
2017/07/09(日) 15:02:30.29ID:zx3kMPLK0
それに>>851の段階でjQuery使うってのは明らかだよね?
2017/07/09(日) 17:11:29.14ID:7vHFYENhM
Polyfillは将来的に外せるものだし、性能差もあるからjQueryと同列に語るのは違和感があるな

ところで、>>851は一例じゃなかったのか
質問者はすべてのコードでjQueryを使って、ajax以外(a要素とか)でURLを組み立てる事がないなら、そうなんだろうな
2017/07/09(日) 17:12:12.99ID:9yQC/vv/0
jQueryの話だったのにJavaScriptであればって話を広げたのは他の誰でもなく君じゃんよ
jQueryならちゃんとjQueryであればって書いてよ
2017/07/09(日) 17:36:25.69ID:7vHFYENhM
「広げた」とは何の話だ?
>>851ではjQueryのコードが出たが、元々の質問はjQueryに限定された問題ではないと思っただけだが
別解が出るだけで取り立てて騒ぎ立てる事でもあるまい
2017/07/09(日) 17:40:04.34ID:7vHFYENhM
ごめん、よく読んだら>>861は俺宛ではなかったな
>862は忘れてくれ...
864デフォルトの名無しさん (ワッチョイ b723-BL37)
垢版 |
2017/07/09(日) 17:56:45.96ID:LPmXeDzw0
URLSerchParamsや URLコンストラクタなんてのがあるのか。

クエリストリング構築関係って統一した手法が確立されて、
どうしてもフレームワーク依存になってやり方は人によってバラバラ
な感じが否めない。
結局「xx使えばいい」以上のことはいかんとも言い難いことって結構
あるよな、特にJavaScriptはそればっかだ。
865デフォルトの名無しさん (ワッチョイ b723-BL37)
垢版 |
2017/07/10(月) 02:21:11.80ID:CdB4JEYo0
APIのURLとAPIじゃないURLの違いって何ですか?
2017/07/10(月) 02:35:48.89ID:ahk65wH50
れすぽのちがい
2017/07/10(月) 06:57:20.29ID:bg+Uigm+0
JapaScriptのthisって今でも使われてんの?
それとももう使うのは非推奨になっている?
2017/07/10(月) 10:08:34.12ID:pPp/QbwmM
>>867
つかわなかったら何もできないでしよ?
どうやってクラス内からメンバにアクセスするつもり?
2017/07/10(月) 10:27:44.46ID:eOXntHhA0
余裕で使われてる
2017/07/10(月) 11:14:35.24ID:1OG9NP+7d
何もできない事は無いな
手続き型で書くか、プロトタイプベース駆使してクラスシステム作り直せばね
2017/07/10(月) 14:27:33.65ID:bg+Uigm+0
thisって使いやすい?
thisと言う文法だけで何通りもの解釈がでてきたから
それぞれ新しい文法が新たらに出てこないのかな?
アロー関数が追加されたりasys/awaitが出てきたみたいに
2017/07/10(月) 16:22:07.96ID:x/tMl3Ao0
使いにくい点はあるよ、
個人的な一番は
this.hoge this.fuga this.piyo
とくどく書かないといけないこと
勿論今なら分割代入あたりで展開したり、Object.assignでまとめて代入したりもできるが、
それでも昔っからあるプロポーザルのように
::hoge ::fuga ::piyo
などと書ければなとよく思う

あと直接はthisとは関係ないけど、
プライベート関係で新しい構文は入るだろうね
873デフォルトの名無しさん (ワッチョイ b723-BL37)
垢版 |
2017/07/10(月) 16:41:07.30ID:CdB4JEYo0
そういやJSにはスタティックの概念がないな。
2017/07/10(月) 18:36:42.76ID:gqDySAuG0
Math.random().toString(34).slice(2)
このコードってどういう意味だと思う?
34ってなんなんや。
2017/07/10(月) 19:29:28.19ID:2duUxTIUa
基数
ググりなさいよ
2017/07/10(月) 20:25:31.79ID:gqDySAuG0
>>875
基数なのはわかるよ。でもその場合は
0-9a-zで36が基数じゃないの?
2017/07/10(月) 20:32:31.99ID:x/tMl3Ao0
間違いか、34*34通りあれば十分だったんじゃないの?
2017/07/10(月) 21:44:19.17ID:pPp/QbwmM
他人のコードなのに奇数なら36のはずだと勝手に決めつけ思い込む脳神経ってどうなってるんだろうね
2017/07/11(火) 00:08:12.63ID:DtGvVlsG0
質問です。
変数を宣言する際に記述するvarは省略することが出来るのでしょうか?
私の買った本だと、書かれていたり、省略されていたりして
混乱気味なのですが…。
2017/07/11(火) 00:10:33.39ID:i4eD5D7P0
出来るけどグローバル変数になるのでよっぽどの場合以外は使わないようにしましょう
2017/07/11(火) 00:27:18.10ID:DtGvVlsG0
>>880
ありがとうございます。一応出来るのですね。

っていうかあの本ダメだぁ。そういう必要な説明も端折ってる…。
2017/07/11(火) 01:10:06.11ID:OLy+oHXE0
>>881
クロージャ内変数を掴みに行っているのが見えてないだけだろ。

韓国人死ね

てかマジで他もいろいろ酷いがデタラメ答えるな。
スレのレベルが下がっているのはお前らにも分かるだろアホ共。
もう既に間違いも大量に放置されている。こういうのはお互いに利益無いと知れ。
馬鹿な韓国人には何度言っても通じないようだが。マジで死ね。
2017/07/11(火) 01:56:20.34ID:DtGvVlsG0
>>882
ありがとうございます。

ところでなんでそんなに韓国人が嫌いなんですか?
イボミとか良い人もいるじゃないですか?
884デフォルトの名無しさん (ワッチョイ b723-BL37)
垢版 |
2017/07/11(火) 02:20:56.58ID:kTultHtx0
XMLHttpRequestとクロスドメイン参照と
JSONPとcallbackを
郵便屋さんで例えてください。
2017/07/11(火) 03:14:02.76ID:jfrWcBvE0
郵便屋でーす
2017/07/11(火) 04:47:03.01ID:DVbjq/Wb0
>>879
この両者には僅かな違いがあります。
varを使って宣言する(var a = 10)とその変数はグローバル変数となり
varを使わずに宣言(a = 10)するとまずスコープチェーンを
辿ってaを検索し、aが存在すればaに代入を試みて、
aが存在しなければ、グローバルスコープにaプロパティを追加します。
(グローバルプロパティの生成)

開眼!Javascript
p81
https://jsfiddle.net/jseja/6Xyh3/
2017/07/11(火) 04:54:08.93ID:DVbjq/Wb0
>>881
悪書は追放するから
タイトルと筆者を書いて欲しい。
2017/07/11(火) 08:43:35.93ID:Yw0oNP1jd
>>876
yとzは制御文字として使いたいとか。
2017/07/11(火) 11:27:38.46ID:xvQ/lQkn0
WebでのJSの実行環境は
with(window){}
で囲まれているようなものだからね

でも今からはModuleの時代だしそういう癖つけないほうが良いよ
2017/07/11(火) 23:25:29.24ID:DtGvVlsG0
>>886
ありがとうございます。基本的には付けた方がいいんですよね?。

>>887
筆者が気の毒なので一応伏せておきます。
悪書まではいってない気がするので。
2017/07/12(水) 01:07:25.34ID:VV5TEq59M
>>890
情報共有するきがないなら参加するなよ
おまえと同様にその本を買ってしまって混乱する犠牲者ふやしたいのか?
2017/07/12(水) 03:02:30.48ID:JRRJcnxl0
>>890
そういう体質が悪い方向に向かわせているんだが
これが親切のつもりらしいから呆れる。
2017/07/12(水) 03:04:27.14ID:JRRJcnxl0
こっちは有料の本の中身の情報を
タイトル名、ページ番号
その中身の一部引用までして
書き込んでいるのに
こちらの要望は軽く無視された・・悲しいわぁ・・・
894デフォルトの名無しさん (ワッチョイ ffaa-PX3H)
垢版 |
2017/07/12(水) 06:38:54.28ID:HQm2gXhD0
>>886
var 無しだと、グローバルプロパティだから、
スコープチェーンをたどるから、ややこしい

チェーンをたどって見つからなければ、最終的にグローバルプロパティで、
グローバル変数とは別のもの

こんなややこしい仕様を作った、JSの作者は、頭おかしい
2017/07/12(水) 07:28:39.75ID:46U9BX050
varはもう使うな。
constかlet使え
2017/07/12(水) 07:46:53.52ID:m006016La
letが使えないブラウザ向けに作ってる人もいるんです!
2017/07/12(水) 08:57:04.34ID:Xbh+81Re0
>>894
グローバルプロパティとグローバル変数は同じものだよ
グローバルオブジェクトがグローバルスコープになってるわけだからね
with文を使ったときと同じ
2017/07/12(水) 09:46:28.42ID:JRRJcnxl0
>>897
残念ながら少し違います。
普通の人は違いを意識する必要はありませんが。
>>886
2017/07/12(水) 10:33:07.51ID:Xbh+81Re0
いや、var付きかどうかには違いがあるけど、
グローバルオブジェクトのプロパティとグローバル変数は同じものだよ
スコープにはオブジェクト型ってあって、with文のスコープとグローバルスコープはそうなってるから
2017/07/12(水) 11:12:26.90ID:JRRJcnxl0
>>899
>>886って書いたじゃん
微妙に違うんだよ。
https://jsfiddle.net/jseja/6Xyh3/
で違いを見てみ?

実際に使う時には意識する必要のない違いだけどさ。
2017/07/12(水) 12:40:32.42ID:MU+9qUhDd
だからそれはvarの効果であって、グローバルスコープは
グローバルオブジェクトのオブジェクト型スコープだから
そこに対する参照は全てグローバルオブジェクトへの参照へリダイレクトされるんだよ
つまりグローバル変数とグローバルオブジェクトのプロパティは同じもの
varで宣言すれば属性が変わるが存在するのは同じ場所
2017/07/12(水) 13:31:19.76ID:JRRJcnxl0
じゃあ他人のコードをレビューする時、
deleteは無視しても挙動は変わらないんだな?
2017/07/12(水) 13:52:48.55ID:JRRJcnxl0
やめたやめた、絡むだけ時間の損だわ。
904デフォルトの名無しさん (ワッチョイ 57d8-hKQV)
垢版 |
2017/07/12(水) 14:42:40.12ID:JRRJcnxl0
なぜイライラしたかわかった
多少の挙動など気にしない>>879この本の作者と同じ考えのやつだからだ
質問者が細かい違いを気にしてたのに
>>901はそんな細かいことを気にせずテキトーでいいんだよと返してたんだからな。
こっちはきっちりしただけだっちゅーねん。
2017/07/12(水) 15:11:57.05ID:LVxqEvY9H
お前の書き込みが俺をイライラさせる件についてはどう思うんだ
2017/07/12(水) 15:53:52.86ID:Xbh+81Re0
>>904
おれがいつそんな細かいことを気にせずテキトーでいいと言った?
俺はここの住人の中でもっとも細かいことが気になる人間だぞ?

だからむしろ、お前はスコープと変数の扱いの仕様レベルのことが分かっていないんだから、
言い回しに気をつけろと超細かいことを言ってるんだよ

いいか、グローバル変数とグローバルプロパティに差なんてない、両者は同じもの
ただvarで宣言するとconfigurableがfalseになるからdeleteできない、それだけなんだよ
2017/07/12(水) 16:13:36.51ID:HQm2gXhD0
グローバルオブジェクトは、唯一無二のシングルトン

グローバル変数は、グローバルな変数

グローバルプロパティは、グローバルなプロパティだから、delete で削除できる

これら、3つは別のもの
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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