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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

Q&A

解決済

4回答

2039閲覧

変数、関数をアルファベット1文字で書くjsのソースコードの目的は?

sanset

総合スコア186

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

0グッド

0クリップ

投稿2018/09/06 06:31

お世話になっております。

他サイトのJavaScriptの動きが気になった時などに、ソースを見て動作を確認することを度々行うのですが、一部サイトでのjsファイルのソースコードの書き方が気になっています。

多くのサイト(特に大手のサイト)のjsのソースコードは、変数や関数を動作を表す名称をほぼ使わず、アルファベット一文字でネーミングされています。(以下例:Yahoo)

JavaScript

1 function r(e, t) { 2 for (var n in e) 3 if (G.hasOwn(e, n)) { 4 var i = K.ywa_cf_override[n]; 5 i && (t[i] = e[n]) 6 } 7 }

もちろん命名規則は各企業毎に決まっていると思うのですが、このようなソースが多いように感じます。

これは、解析されないようあえて可読性を下げるために行っているものなのでしょうか。
それとも文字数を短くして容量を減らすためのものなのでしょうか。

ソースコード自体をこのまま書いているのか、一度はjsファイルを完成させて、その後にアルファベット一文字になるよう変換したりするツールがあるのかも気になっています。

なにしろ、このようなソースコードを書く現場を経験したことがないので分かりません。

何か情報をお持ちの方は是非教えて頂けると助かります。

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

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

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

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

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

guest

回答4

0

ベストアンサー

それとも文字数を短くして容量を減らすためのものなのでしょうか。

この理由です。難読化にもなりますが、ソースコードの構造はそのまま残るので、気休め程度の効果しかありません。

ソースコード自体をこのまま書いているのか、一度はjsファイルを完成させて、その後にアルファベット一文字になるよう変換したりするツールがあるのかも気になっています。

UglifyJSなど、こういう形に変換するツールも多くあります。

投稿2018/09/06 06:36

編集2018/09/06 06:42
maisumakun

総合スコア145123

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

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

sanset

2018/09/06 13:50

ありがとうございます。大手は細部にまでパフォーマンスに拘っていることがよく分かりました。
guest

0

ミニファイで検索すればいいかと。圧縮が主目的と思います。
【CSS/JS】ファイルを圧縮する三大手法

投稿2018/09/06 06:35

x_x

総合スコア13749

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

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

sanset

2018/09/06 13:46

ありがとうございます。.min.cssなどは改行を省略して圧縮しているものと思いましたが、ローカル変数のリネームも行っているのですね。
guest

0

私見ですが

文字数を短くして容量を減らすためのものなのでしょうか

これかなと。

付け加えると、JavaScriptのコードは誰でも参照可能なため、あまり意図が読めるようになっているのは良くありません。
あえて読みづらくすることで解析させづらくする意図もあるように思います。jQueryなどにminfyされたコードがよくありますが、軽量化以外にもそのような目的もあるのではないでしょうか。

まあそのコードを保守メンテナンスする方は大変ですが、一定のルールで運用されているはずなので(単語にアルファベットや記号を割り当てる、など)
トラブルなくきちんと回ってると思います。

投稿2018/09/06 06:41

m.ts10806

総合スコア80765

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

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

sanset

2018/09/06 13:59

ありがとうございます。自分はローカル変数でも具体的な名称をつけてしまうので、かなり目から鱗でした。
guest

0

全体的に変数を1文字でやるのは可読性をさげるためとくにグループで作業するときには
あまりおすすめできないのはご理解の通りだと思います
逆に変数を長くしすぎたり意味をもたせすぎるのもキャストしたり再利用したりする際に
課題が残る場合もあります。

一般にある程度シンボリックな一文字変数はi,j,k
ループとくにforでまわすカウンタはiから始めるのが慣習化しています
これは諸説ありますが「Fortranでiからnまでは型宣言しないと自動的にint型変数になるから」
と30年位前に習いました。
あとはイベントをeとするなどはどの言語でも定番化されてますね

適当な変数にはa,b,cとかx,y,zをつかうと一定の法則性が認識できて
人間の思考としてイメージしやすいとか
ノードや数値=n、フォーム=f、値=v、キー=kなどなどなんとなく寄せた感じも
サラッと書くときはよくある手法です。
とくにここのような質問回答をするようなサイトでは、ごちゃっとかかれるより
すっきりするので視認性はたかくなると思います。

またある意味$をjQueryオブジェクトして処理するのも見やすくわかりやすくする
手法の一つですよね

投稿2018/09/06 07:21

yambejp

総合スコア114583

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

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

maisumakun

2018/09/06 07:26

1文字変数を使う場面として、例外(exception)のeも慣例化している気がします。あとは、全く使わない引数を_1文字で受ける、こともあります。
yambejp

2018/09/06 07:33

私も悪いのですが、自分のソースはある程度意味合いをつけて管理している割に 他人に回答するときは一文字変数を多用してますからね 当然質問者さんのように疑問を持たれる方も多いかと思います
sanset

2018/09/06 14:02

ありがとうございます。forのカウンターはiなどは理解していましたが、挙げていただいた例も意識してみるとコードが読みやすくなりそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問