質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

178閲覧

Javascript グローバル変数について

OOO_777

総合スコア50

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2017/08/11 03:47

###前提・実現したいこと
htmlからJsに値を渡したい場合、
ソースコード1,2どちらの方が良いのか教えて頂きたいです。
個人的には1の方が安全な気がします。

エラーメッセージ

###該当のソースコード 1

html

1<script type="text/javascript"> 2 var TESTDATE = { 3 title : 'タイトルタイトル', 4 text : 'テキストテキスト' 5 } 6</script> 7<script src="./test.js"></script>

###該当のソースコード 2

html

1<script type="text/javascript"> 2 var TestTitle = "タイトルタイトル"; 3 var TestText = 'テキストテキスト'; 4</script> 5<script src="./test.js"></script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ockeghem

2017/08/11 03:59

HTMLからJSにデータを渡すとのことですが、そのHTMLは固定なのでしょうか? それとも変化するのでしょうか? 固定ならば、どちらでも「安全」性には変わりないと思いますが…
OOO_777

2017/08/11 04:07

HTMLは使う人によってタイトルなどのデータを使い分けたいので変化するイメージでお願いします。
ockeghem

2017/08/11 04:14

それでは、値を外部の人が勝手に書き換えられる状況ではないのですね
think49

2017/08/11 08:08

test.js の内部コードを教えて下さい。
OOO_777

2017/08/11 09:52

ockeghemさん はい、そうなります。
OOO_777

2017/08/11 09:54

think49さん コメントありがとうございます。今回zohnamさんの回答をベストアンサーにさせて頂きました。
guest

回答1

0

ベストアンサー

安全性という意味では違いはありませんが、開発上の利便性という意味では、前者のほうが優れています。
おそらく複数のページからこのデータを与えたいとう意図のはずですが、開発中に渡す項目が増えたり、特定のページのみに変数を設定したりという状況がうまれてくるものです。
そのとき、

javascript

1 var TESTDATE = { 2 title : 'タイトルタイトル', 3 text : 'テキストテキスト' 4 code : 123// 特定のページのみ設定される 5 }

のように与えられていれば、test.js内では

javascript

1if (TESTDATE.code){ 2}

のようにシンプルに判定できます(codeに0が入ってちゃダメですけど)。

ひとつの変数の場合は、

javascript

1 if (typeof TestCode !== undefined){ 2 }

こういう感じで、やや面倒になります。

また、あるページから与えられる変数群は、デバッグする時、だいだい全部まるごと把握したくなるものです。
そのとき、オブジェクトになっていれば

javascript

1console.log(TESTDATE)

で一括で確認できます。

ただ、TESTDATEという名前だと、使うときに冗長で面倒になってきます。
web data という意味で、変数名はwdのように短くしておくのをおすすめします。

投稿2017/08/11 04:36

zohnam

総合スコア1441

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

OOO_777

2017/08/11 09:52

ご回答ありがとうございます。 そういう利点があったのですね、 勉強になりました。ありがとうございます。 変数名の件もありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問