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

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

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

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

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

jQuery

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

HTML

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

Q&A

1回答

945閲覧

<jQuery>smoothscroll実装について

decteckaaaaaaaa

総合スコア18

JavaScript

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

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

jQuery

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

HTML

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

0グッド

0クリップ

投稿2019/08/24 08:25

編集2019/08/26 02:41

質問

smoothscrollの実装方法でネット検索した際、
以下のコードが記載されていることがほとんどですが、
コードの品質的に改善点(もっと短くかける・より汎用的に・より厳密にする)などがあれば
教えていただきたいです。

$(function() { $('a[href^="#"]').click(function() { var speed = 400;    href= $(this).attr("href"),    target = $(href == "#" || href == "" ? 'html' : href),    position = target.offset().top, $('body,html').animate({scrollTop:position}, speed, 'swing'); return false; }); });

例えば

①var target = $(href == "#" || href == "" ? 'html' : href);
は === で厳密等価演算子にした方が良い。
②href、targetなどのプロパティなのか変数名なのか、分かりづらいものは先頭に_をつける。
③ $('a[href^="#"]').click(function()の、.clickは汎用性が低いので、.on('click'
にするなど
※上記、1・2・3の判断が正しいかもご回答いただけると幸いです。

よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

①var target = $(href == "#" || href == "" ? 'html' : href);

は === で厳密等価演算子にした方が良い。

文字列「#」が別の文字列として解釈されることはほぼないので、どちらでも構いません
ただ、文字列の比較はつねに「===」を意識づけておいたほうがよいのは確かです。

②href、targetなどのプロパティなのか変数名なのか、分かりづらいものは先頭に_をつける。

グループで管理しているならそのグループの方針にあわせてください
先頭に_のついた変数事自体めずらしくはないですが、
暗に特別の意味合いをつけると別の現場では通用しませんので
適切な命名方法を検討ください

③ $('a[href^="#"]').click(function()の、.clickは汎用性が低いので、.on('click'

にするなど

onは汎用性が高く、便利なので積極的に利用した方がいいと思います。

投稿2019/08/26 04:07

yambejp

総合スコア114839

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

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

decteckaaaaaaaa

2019/08/26 06:07

ご回答いただきありがとうございます! ②についてですが、業界のスタンダードとしてはどうかなと思いの質問でした..! 適切な命名方法は、targetなどは避けて「hogeTarget」等のユニークな命名にした方が良い ということでしょうか??
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問