[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/24 16:40 / Filesize : 290 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2015/04/22(水) 01:35:08.20 ID:TQI/XWNo.net]
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。

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

684 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 21:51:50.78 ID:LCHBmKl2.net]
>>670
atom使ってみます。
>>671
>ブロックの中で関数宣言はとっくに緩和された。
では、
if (false) {
  function func() {
   ...
  }
}
こういう記述は文法的に問題ないですか?

685 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 22:14:23.92 ID:BdMiQKBu.net]
ない
仕様見ろ

686 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 23:10:36.84 ID:92fi2xE/.net]
>>675
書けるからといって書いていいわけじゃない。
そんな消し方をしたら、大抵の人間はキレる。

まあ、一人でプログラム作ってるうちは、どんな無法も通せるから別にいいだろうけど。

687 名前:デフォルトの名無しさん mailto:sage [2016/01/27(水) 23:34:39.52 ID:e8RmjLYi.net]
コメントでその旨を省略せずしっかり細かく書いてあれば許せる派
コメントないと、なんでif(false)で退避してんのかどこの関数なんか全然わからん
常にsvnやgitを使えるわけじゃないし

>>673
文字列に挟まれた画像を画像ごと選択コピペすると画像のところは空文字列か空白類になるように、
ありゃ基本はあくまでテキスト選択。だから

688 名前:素直にDOM構造見て
window.getSelection().getRangeAt(0).startContainerなりinnerHTMLなりfirstElementChildあたりでなんとかするしかないのでは
[]
[ここ壊れてます]

689 名前:デフォルトの名無しさん [2016/01/27(水) 23:51:21.41 ID:1bMWaH5A.net]
コメントにしておけば、サーバーにアップロードする際、
ツールで取り除けるけど、

そういう実行可能なコードにすると、簡単には取り除けない。
また実行時にコンパイルされるかも知れないし、時間のムダ

コンパイラが賢ければ、その部分は絶対に実行されないから、
取り除くかも知れないが、ブラウザではあまりきつい最適化はしないよ

また変数・関数の宣言などにも、影響を与えるし、
バグを生むから、コメントにすべき

690 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 11:32:01.91 ID:0VC4IiZB.net]
>>678
ありがとう御座います!

ただの <img src="xxxxx"> での画像では、まったくもって値が取れないのですが、

<div><img src="xxxxx"></div> で囲んであげると、startContainer にimgタグがそのまま入りました!
これを innerHTML で取り出し置き換え処理等できました。

本当にありがとう御座います、助かりました…

691 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 15:21:12.54 ID:k59Uf2Tm.net]
>>677,678
ソースを読む上で重要なのは、どうしてそんな書き方がしてあるのかではなく、
それがどういう挙動をするかだ。
その点if(false)は読み飛ばせばいいだけだし、仮にどうしてかが気になっても
最低でも内に複数行コメントが用いられてるのを見れば誰にとっても自明である。

こんなことに一々コメントを書いていたらコメントの方が多くなってしまう。

692 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 19:11:29.65 ID:X+Kzth4y.net]
デッドコードの採用を勧めてるやつの気がしれん



693 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 19:15:57.36 ID:vPLu6NB1.net]
>>675
その前に if 文が全く有効に働いてない点を何とかしろ

alert(func); // function func () { }
if (false) {
function func () { }
}

694 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 19:32:32.95 ID:63oiELTt.net]
>>681
えっ?if(false)が許せるの?

695 名前:デフォルトの名無しさん mailto:sage [2016/01/28(木) 22:48:41.45 ID:Ho2+Qj5E.net]
>>683
それはsloppyモード限定の例外動作だ。
strictモードなら起きないし。

>>684
場合による
直ちに許せないとは言わないということだ

696 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 01:45:59.32 ID:i7byzhy6.net]
直ちに許せないとは言わないなんて言わないよ絶対

697 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 01:50:43.91 ID:NW56arbt.net]
使わないコードはコメントアウトする方がはるかに自明だと思うがな
「こんなことに一々コメントを書いていたら」というが、コメントアウトが多くなるのはデッドコードを量産するコーダーの問題
>>681の言葉を借りるならコメントアウトしなければ「デッドコードの方が多くなってしまう」だけだが、そんなことになるならコードの書き方が元からおかしい

698 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 02:00:25.76 ID:PQfy+X+f.net]
>687
話が噛み合ってないよ
コメントアウトの手法の1つとしてif(false)を許容するかどうかで揉めてるんだよ

699 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 07:26:50.53 ID:F3zdOsh5.net]
>>688
>>681の最後の一行を理解しかねるのだが
まさか、行頭に "//" が来る行数が多くなる事を懸念しているのか?
実際、コメントが多いのなら多いと自明である方がいいと思うが

700 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 08:03:17.97 ID:jWh3F8zy.net]
1  質問者は、参考のために残す目的で、if(false){} で古い関数をくくろうと考えた
    理由は/* */範囲コメントが既にある場合に/* */を入れ子にするとエラーになるため
2  元の質問 if(false){ function func(){} } が文法面で問題があるかどうかについては基本的に「問題ない」が回答
3  選択範囲の行全てを // コメントアウトできるエディタを使えば解決、質問者はそれができるエディタを試すと言っている

はいもう終わってる案件です

701 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 08:28:10.97 ID:f9EfU1JG.net]
コメントの後に半角スペース入れる?

702 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 08:32:56.68 ID:6vAZQ0Iu.net]
>>690
質問者が終わっているのはわかっている
文意を読んでくれ



703 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 08:40:43.51 ID:AS58wzCZ.net]
if(false)なんてgrep結果も邪魔するし、
コードメトリクスとるとか、その他ソース解析的な事をしようと思ったら、悪影響を与える可能性が高い。
それに言語によっては到達不能コードが警告やコンパイルエラーになるから、同じプロジェクト内でも言語によって、違う消し方をしなきゃいけなくなる。

こんな消し方は悪でしかないよ(断言)

そもそもプログラム上不要なものを、消すんじゃなくてそれを無力化するための処理を埋め込む、という考え自体がずれてると思う。

704 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 08:57:29.68 ID:G034Tjvl.net]
コメントでコード残すより酷いよねw

コメントはコメントだからまだ使ってないコードだってわかるけど、
if(false)なんてしたら、何のためにこんなコード書いてるの?って
理由を調べることになる。

705 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 09:03:55.02 ID:BRy+Pidl.net]
一時的にコードをON/OFFしたいときに使うデバッグコードだろ

706 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 09:07:52.89 ID:anzRyrfi.net]
>695
じゃあ、それと間違えるからダメだな

707 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 12:22:52.37 ID:v9i1VCfv.net]
if (debug == true)
ならまだ分かるんすよ

708 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 12:43:43.87 ID:7VD60tyB.net]
まぁ、falseでなくて、何らかのfalseが中身の変数ならまだ納得は出来るんだけどね。
賢いエディタなら畳めるって意味くらいで。
最後にプリプロセッサで消して欲しいけど。

709 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 13:09:21.61 ID:yQckpqSo.net]
quick hackなら

710 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 16:36:51.98 ID:lkEDj6wo.net]
(function () { if (false) { function a() {} } a(); })()
これどうなるの?

(function () { 'use strict'; if (true) { function a() {} } a(); })()
これどうなるの?

(function () { 'use strict'; console.log(a); if (false) { var a = 123; } })()
これどうなるの?

711 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 16:51:45.47 ID:F8xSAXci.net]
(function () { if (false) { function a() {} } a(); })()
ReferenceError: a is not defined

(function () { 'use strict'; if (true) { function a() {} } a(); })()
SyntaxError: in strict mode code, functions may be declared only at top level or immediately within another function

(function () { 'use strict'; console.log(a); if (false) { var a = 123; } })()
undefined

712 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 16:53:39.26 ID:F8xSAXci.net]
(function () { if (false) { function a() {} } a(); })()
Object expected

(function () { 'use strict'; if (true) { function a() {} } a(); })()
'a' is undefined

(function () { 'use strict'; console.log(a); if (false) { var a = 123; } })()
undefined
undefined
eval code (4) (1,30)



713 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 16:55:09.66 ID:F8xSAXci.net]
(function () { if (false) { function a() {} } a(); })()
オブジェクトを指定してください。

(function () { 'use strict'; if (true) { function a() {} } a(); })()
'a' は定義されていません。

(function () { 'use strict'; console.log(a); if (false) { var a = 123; } })()
undefined
undefined

714 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 17:29:03.55 ID:lkEDj6wo.net]
>>701-703
ありがとうございます
マクロ風if文コメントアウトはクソの役に立つどころかクソ邪魔なそびえ立つクソのようですので
シングルラインコメントを使います

715 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 19:32:41.27 ID:HboDmfw3.net]
その結果をみてどうしてその判断になったのかは疑問だが、
一つ言えることはシングルラインだろうがなんだろうが、
デッドコードを残すのは良くない。
コメントは文章にだけ使え。

716 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 20:36:41.00 ID:B53lZWqj.net]
chromeのデバッガーで見ると、
グローバル変数名や関数名は
▼Scope
▼Global window
の中のメンバにありますが、
constで宣言した定数は
▼Script
の中にあります。
この定数名をプログラムから取り出したいのですが、方法が有れば教えて下さい。
グローバル変数ならwindowから取り出せたのですが。

717 名前:デフォルトの名無しさん mailto:sage [2016/01/29(金) 20:50:05.86 ID:HboDmfw3.net]
with-proxyでも使って、どうぞ

718 名前:デフォルトの名無しさん [2016/01/30(土) 01:30:26.61 ID:1oljgPJ8.net]
WEB+DB PRESS vol.90 (2016)に、
Electronで、Windows, OS X, Linux用の、
HTML5デスクトップアプリを作る記事が載っている

JSの実行エンジンは、Node.jsで、
HTML5の実行環境は、Chromeのオープンソース版のChromium。
アプリに、これら2つを内蔵して配布する

Electronは、Atomエディタ、Visual Studio Codeで使われている

ローカルファイルにもアクセスでき、
OS内の別のアプリも起動できる・連携できる。
Drag & Drop, Clipboard も使える

Babelを使って、ECMAScript2015(ES6)でも書ける。
ReactのJSXも、Babel, gulp で変換できる。
AngularJSも使える

GUIは、jQuery UI、Reactなら、Material UI などを使って

719 名前:デフォルトの名無しさん mailto:sage [2016/01/30(土) 10:43:58.68 ID:VBvWbxk4.net]
宣伝おめ

720 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 05:07:58.18 ID:003tX3GT.net]
AngularのDatePickerがクソで、勝手に時間帯変換するんだけど
なんか他にお勧め無いすかね

721 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 14:11:05.37 ID:AEa1Mqyg.net]
一つのhtmlファイルから複数のjsファイルを読み込んで実行する場合、グローバル変数はどのjsファイルのどの部分で宣言してもプログラム全体としては同じ動きをしますか?

722 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 14:34:54.46 ID:cx5Rrh1h.net]
ためせ



723 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 19:21:01.85 ID:xLFAyxDw.net]
タイミングによっちゃまだ宣言されてねえってこともあるかもね

724 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 04:22:13.19 ID:Ffe8O4Eb.net]
いや、全部読み込まれた後、全部が順序通り結合された1つのコードとしてパースされてから実行されるのでそれはない。

725 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 14:45:21.63 ID:FYMx+qz7.net]
つまり読むこむ順番を適切に書かないといけないから、答えはNOだ。

726 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 20:54:43.49 ID:kI0Xug8k.net]
いや、宣言は巻き上げされるのでどこで書いても良い。

727 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 22:44:41.59 ID:v8JCH8t3.net]
関数のでその変数を参照するような文を書いてたらダメだよ

728 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 22:48:43.77 ID:fURVaPFx.net]
関数宣言ならともかく、変数宣言は undefined で巻き上げされるのでどこに書いても同じ動作にはなるわけじゃない

729 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 22:51:52.10 ID:kI0Xug8k.net]
いや、宣言だけに限っては同じだろう
代入はまた別の話だし

730 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 22:55:57.07 ID:gPO3j3Rt.net]
>>717
ごめん。関数の外でって書いたつもりでしたw

731 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 22:58:49.36 ID:v+j1QZdW.net]
>>719
だから順番に影響するわけで、何処に書いても同じってわけじゃないよね。
まぁ、これはjsを別ファイルにするとか以前の話になってくるわけだけど。

732 名前:デフォルトの名無しさん mailto:sage [2016/02/01(月) 23:16:56.16 ID:fURVaPFx.net]
>>719
var foo = 1; は「変数宣言と代入演算子の組み合わせ」ではなく「変数宣言」
あと、下位スコープの変数は参照不可能なので「どこに書いても」は成立しない



733 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 00:30:02.56 ID:dbeuEpdb.net]
>>722
いいや、今はそれについては言っていない。ちゃんと話の流れを見るように。
>>713
で分かる通り、タイミングと場所が関係あるかの話であって、一般的な話はしていない。

734 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 00:43:41.20 ID:/HZNIUzX.net]
>>723
私も「タイミングと場所が関係している」という話をしているのだが

foo; // ReferenceError: foo is not defined
function hoge () { var foo = 1; }

console.log(foo); // undefined
var foo = 1;
console.log(foo); // 1

735 名前:724 mailto:sage [2016/02/02(火) 00:46:32.06 ID:/HZNIUzX.net]
グローバル変数なので>>724の前者のコードはこうか
foo; // ReferenceError: foo is not defined
function hoge () { this.foo = 1; }
hoge.call(this);

736 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 01:33:45.90 ID:NUEtrHjv.net]
>>711
変数の宣言箇所と参照箇所の位置関係によっては同じ動きにはならない。
でFAです。
ファイルのロード順に気を付けてくだされ。

737 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 11:53:44.01 ID:H059HmUH.net]
>>724
だからそういう話はしていない。>>721が言っているようにそれは別の話。
自分はタイミングが関係あるかどうかの話だけをしてる。

738 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 13:19:10.18 ID:dh99WtH+.net]
>>727
私は>>716,719の「宣言は巻き上げされるのでどこで書いても良い」に反論しているだけだが、あなたの持論はどこにある?
どこに書いても良い事例となるコードで示してくれ

739 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 14:58:36.94 ID:3ts5bPpY.net]
グローバル変数の話してんじゃないん?

740 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 15:21:14.26 ID:dh99WtH+.net]
私はグローバル変数の話をしているのだが

741 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 16:33:02.97 ID:3ts5bPpY.net]
725のfunction hoge () { this.foo = 1; }は宣言か?

742 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 16:53:37.90 ID:dh99WtH+.net]
>>731
>>711の「宣言」は初心者の誤用だろうから「グローバル変数の初期化文」と勝手に置き換えている
>>725で書いたのはグローバルコードを想定していてグローバルオブジェクトのプロパティへの代入は該当すると思うが、どうか?
「プロパティ代入は宣言じゃない」という指摘なら、「変数文はあっても変数宣言はない。そもそも、>>711のいう宣言が何なのかを質問者に問うべき。」と反論するところだが
ついでに>>722で反論した部分も「13.3.2 Variable Statement」で規定されている
www.ecma-international.org/ecma-262/6.0/#sec-variable-statement



743 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 17:22:31.99 ID:dh99WtH+.net]
もう一つ追加で const, let は巻き上がらないので ReferenceError になるパターンがあるな

'use strict';
/* グローバルコード */
foo; // ReferenceError: foo is not defined
hoge; // ReferenceError: hoge is not defined
const foo = 1;
let hoge = 2;

744 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 19:28:13.95 ID:3N5KmsWz.net]
巻き上がらないのではなく未初期化状態で巻き上がる
それとlet/const宣言ではグローバル変数ではなく、
その直下の仮想ブロックスコープとして定義される
つまりグローバルオブジェクトのプロパティにはならない

745 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 19:46:52.83 ID:dh99WtH+.net]
>>734
巻き上げについては私の認識と一致してる
だからこそ「どこに書いても同じ処理にはならない」と思うが
const, let については不勉強だった
確かにグローバルオブジェクトのプロパティにはならないな…

746 名前:デフォルトの名無しさん [2016/02/02(火) 20:29:26.53 ID:3N5KmsWz.net]
>>723
ようやく君が何が言いたいのかは分かった
>>721>>714へのレスだと早とちりしてたみたいだ
しかし残念ながら>>716,719は別人だ

747 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 20:42:53.08 ID:dh99WtH+.net]
>>726
あなたは満足したようだが、私はあなたが誰かわかっていない
私の発言は>>718,722,724-725,728とID:dh99WtH+
>>716,719がおかしいと思うので>>723の「今はそれについては言っていない。ちゃんと話の流れを見るように。 」の反論の意味が分からなかった

748 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 21:01:38.63 ID:ju/2Ysiz.net]
いつまでどうでもいいこと続けるの?
これ以上質問者を置き去りにして言葉尻を取り合う喧嘩をしてもしょうがない。
仕様の宗教のような話なら別スレでどうぞ。

749 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 21:46:00.10 ID:N/tRsSuY.net]
名前欄に自分の元レスの番号付けるとかしないと、横レスだってあるんだし会話が成り立たないだろ。
お前らは誰と闘ってるだよw

750 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 21:50:59.18 ID:dh99WtH+.net]
誰と戦っているか分からない相手に明後日の方向に反論された気分
「そんな話はしていない」しか返さない相手と話すのが不毛だとは思ってるよ

751 名前:デフォルトの名無しさん mailto:sage [2016/02/02(火) 23:58:02.10 ID:q1EzF9s6.net]
いつまで根に持ってるんだよw

752 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 02:33:05.91 ID:WMsKvupE.net]
会話しようとしている人が会話がどうでもいいと思っている人(自分の意見を出さずに相手から情報を引き出せればいい)に怒っている感じだな
会話が成立しないわけだ



753 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 07:34:25.05 ID:fNUqVTnf.net]
そもそも回答者同士が議論する場ではないよね

754 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 09:27:12.84 ID:ToDOcZiy.net]
結局はグローバル変数は宣言するファイルや場所が変わるとプログラムの挙動は変わる場合があるという結論でいいのですか?

755 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 09:39:11.07 ID:RqicRRsW.net]
意味が分からん。
どんな場合にも絶対こうなる、ってことは殆ど無いぞ。
もっと具体的で限定的な部分部分の話をした方がいい。

756 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 09:41:00.56 ID:RqicRRsW.net]
それともあれか
a=1
alert(a)

alert(a)
a=1
は同じかとかそういうレベルのことを聞いてるのか?

757 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 10:03:28.21 ID:KkuXsvhB.net]
例えば

var a; //   No. 1
a = 1; //   No. 2
alert(a);//  No. 3

これを1行ずつ全部別のファイルに書き出して
あるHTMLで <script type="text/javascript" src="./1.js"></script> などと書いて順番に読むとき、読む順番全6パターンはそれぞれこうなる

num| 出力    | エラー
123 | 1      |
132 | undefined |
213 | 1      |
231 | 1      |
312 | n/a     | a is not defined
321 | n/a     | a is not defined

312と321に違和感を覚える人がいるかもしれないけどこうなる

758 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 13:07:58.91 ID:FRjmjuum.net]
>>744
結論は勿論そうなんだけど、そりゃ当たり前の話。

上でもちょっと出てるが、ファイルを分離するとか以前に、変数宣言の前後や代入の前後等、各所でその変数を参照した場合、結果が変わるのは自明だろ?
つまりjsが外部か内部か以前の問題として、参照箇所によって挙動が変わる可能性は既にあるわけだ。

更に、外部jsにした場合、ファイルの読み込む順番により、参照と宣言の前後関係が変わる可能性がある。
それは挙動を変える要因が増えるというだけの事なんだよ。

759 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 14:09:01.34 ID:+1Rylgj+.net]
analogic.jp/external-js-execute-timing/

760 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 19:01:51.64 ID:4vp1LVJQ.net]
いや、外部JSにしてもasyncやdefer属性つけて無ければ、書いた順序での評価が守られる。

761 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 21:34:04.11 ID:FRjmjuum.net]
また出た…

762 名前:デフォルトの名無しさん mailto:sage [2016/02/03(水) 22:04:19.79 ID:zYHyrw+/.net]
本当は理解出来てるのか出来てないのかはわからんが
今回は>>748の書き方が悪いな



763 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 00:23:06.24 ID:bE5bgH6f.net]
ID:FRjmjuum はいつもの人じゃないか
また出た、はこっちの台詞だわ

764 名前:デフォルトの名無しさん mailto:sage [2016/02/04(木) 01:00:45.86 ID:ND6Ylogh.net]
質問者に本当に必要なものはjavascriptの処理フロー全容だろ
ECMAの仕様としてあるいはUAごとで、そういうのが存在するかどうか知らんけど

765 名前:デフォルトの名無しさん [2016/02/04(木) 11:28:50.84 ID:EYZx+gFX.net]
その答えはもう散々出てるだろ
嘘も真実も混じって
後はそのどれを信じるかは質問者の問題

766 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 12:20:56.32 ID:uAQYy5Bg.net]
回答が割れてるように思えるが、質問の捉え方の違いっぽいな。

767 名前:デフォルトの名無しさん [2016/02/08(月) 13:08:23.67 ID:9AywMO4K.net]
またお聞きしますが
Javascriptをはじめて学習するのにベストな本はなんですか?
他言語で高度なプログラミング知識はすでにあるので幼稚園児に語りかけるような本はイヤです。

768 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 13:18:28.03 ID:e87P5enc.net]
>>757
とほほで十分だと思う
あれで断片的になら問題なく学習できる

ある程度断片的な知識が貯まったところで
Effective JavaScriptを買ってくればいい

769 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 13:20:41.15 ID:e87P5enc.net]
おライリーのサイ本持ってるのは大前提な

770 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 13:53:33.09 ID:REXLJUev.net]
他のサイト例えば
www.yahoo.co.jp
のhtmlを文字列か何かに読み取るなどは可能ですか?

771 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 14:13:45.58 ID:kVh66luE.net]
環境による
他のサイトって言い方をするならブラウザだろうから>>278かな

772 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 18:30:14.93 ID:oTIfYznp.net]
質問失礼します。MAX/MSPという音楽ソフトで、javascriptを使う必要がどうしても出てきて慣れないプログラミングをしてるのですが、本当に初心者で申し訳ないのですが、どなたか教えてください。
【環境】OS,:Win8.1、MAX/MSP6.0
【期待する結果】2つの別々の配列を作り、1〜12までのランダムな数値を重複なくそれそれの配列に格納したい。1つめの配列については成功したが(ので省略しました)、2つ目の配列で、1つ目の配列と重複する要素がどうしても出てしまう。
【サンプルコード】
var generated = new Array();
var generated2 = new Array();
var count2 = 6;

function generate_randomx2(count2){
if(arguments.length){
var generatedCountb = generated2.length;
for(var i = 0 ; i < count; i++){
var candidate2 = Math.floor(Math.random() * 12);
for(var k = 0; k < generatedCountb; k++) {
for(var j = 0; j < generated.length; j++){
if(generated[j] == generated2[k] || candidate2 == generated2[k]){
candidate2 = Math.floor(Math.random() * 12);
j= -1; k= -1;
}}}
generated2[i] = candidate2;
generatedCountb++;
}
return generated2;
}
}

function bang(){
for (var i = 0; i < 6; i++){
outlet(2,i);
outlet(3,generated2[i]);
}
}



773 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 18:41:00.79 ID:E+wItWi7.net]
bangとかoutletとかMAX/MSP特有のものが含まれるならMAX/MSPスレにいくべき

math.randomで乱数得るんじゃなくって
0から11までの配列作ってこれをfisher-yatesか何かで並び替えて使うんじゃダメなのか?>重複回避

774 名前:762 mailto:sage [2016/02/08(月) 18:52:05.67 ID:oTIfYznp.net]
>>763

回答ありがとうございます。
MAX/MSPスレで質問したいところなのですが、
そのスレでjavascriptを使う方がそもそも少ないという事情があります。

また、bang関数以下は無視してくださって大丈夫です。

>math.randomで乱数得るんじゃなくって
0から11までの配列作ってこれをfisher-yatesか何かで並び替えて使うんじゃダメなのか?>重複回避

なるほど、そういう手がありましたか、さっそく検索して調べてみます。
ご回答有難うございました。

775 名前:762 mailto:sage [2016/02/08(月) 19:50:39.92 ID:oTIfYznp.net]
>>763

fisher-yatesを使って驚くほど簡易に実現できました。
本当に有難うございました。

776 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 19:53:14.61 ID:hJZZUY1h.net]
>>765
そのアルゴリズムの関数を提供しているライブラリがありまして。
このように簡単に使うことが出来ます。
https://lodash.com/docs#shuffle

Creates an array of shuffled values, using a version of the Fisher-Yates shuffle.

Arguments
collection (Array|Object): The collection to shuffle.
Returns
(Array): Returns the new shuffled array.

Example
_.shuffle([1, 2, 3, 4]);
// → [4, 1, 3, 2]

777 名前:762 mailto:sage [2016/02/08(月) 20:05:40.31 ID:oTIfYznp.net]
>>766

わざわざ有難うございます!
ありがたく活用させて

778 名前:クきます。 []
[ここ壊れてます]

779 名前:デフォルトの名無しさん mailto:sage [2016/02/08(月) 22:01:16.55 ID:REXLJUev.net]
>>761
ありがとうございました

780 名前:デフォルトの名無しさん mailto:sage [2016/02/09(火) 03:56:18.72 ID:1o3XeJIl.net]
shuffleは、Underscore.js, lodash ライブラリにある

781 名前:デフォルトの名無しさん mailto:sage [2016/02/09(火) 08:50:00.82 ID:B5xk/vUm.net]
ttp://naopr.hatenablog.com/entry/20140401/1396341503
このサンプル実行するとhoge.txtは
/Users/USERNAME/Library/Application Support/Google/Chrome/Default/File System/
に保存されますと書いてあるのですが、これはMacOSの場合のようですが、Window7の場合どこに出ますか?

782 名前:デフォルトの名無しさん mailto:sage [2016/02/09(火) 22:41:36.97 ID:uq6Q+Hm9.net]
>>770
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\File System



783 名前:デフォルトの名無しさん [2016/02/09(火) 22:43:33.85 ID:kyiA5+yG.net]
EclipseでJavascriptを開発するにはどうすればいいですか?

784 名前:デフォルトの名無しさん [2016/02/09(火) 22:48:09.47 ID:3JUZFTfy.net]
ゲーム特化型クラウドファンディングサービスCrowdrive(クラウドライブ)
https://www.crowdrive.com/






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<290KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef