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

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

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

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

HTML

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

Q&A

解決済

3回答

3869閲覧

JavascriptでのBMI判定が上手くいきません!よろしくお願いします!

miramikan

総合スコア26

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2017/06/15 07:02

編集2017/06/15 07:13

###前提・実現したいこと
javascriptを使って、
BMIの数値と、数値による判定結果(瘦せ型、標準,肥満の3種類)
を出したいです。

###発生している問題・エラーメッセージ

if分なしでBMIの数値だけを出すことはできたのですが、 if文を下に追加して、数値による判定結果(瘦せ型、標準,肥満の3種類)を出そうとしたら、計算ボタンを押しても、計算ができなくなってしまいました。 Google chromeのJavascriptコンソールでエラーを確認したところ、 Uncaught ReferenceError: calc is not defined at HTMLInputElement.onclick (ex07-10.html:13) と出てしまいます。 関数calcは定義したつもりなのですが、、 どこが間違っているのか、どこを変えたらいいのか教えて頂きたいです。 よろしくお願いします。

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

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>BMI</title> <script src="ex07-10.js"></script> </head> <body> <p>身長(cm): <input type="number" id="height"></p> <p>体重(kg): <input type="number" id="weight"></p> <p><input type="button" value="BMIを計算" onclick="calc();"></p> </body> </html> ↓これがJavascriptです。 function calc(){ var h = Number(document.getElementById("height").value); var w = Number(document.getElementById("weight").value); alert( w / ( (h / 100) * (h / 100) ) ); var bmi = w / ( (h / 100) * (h / 100); if (bmi < 18.5){ alert('瘦せ型です'); } else if(bmi >=18.5 && bmi < 25){ alert('標準体型です'); } else{ alert('肥満です'); } }

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

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

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

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

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

guest

回答3

0

ベストアンサー

パット見は問題なさそうなのになんでかなと思ってよく見てみると・・・

1、閉じられていない括弧がある

var bmi = w / ( (h / 100) * (h / 100);

こちらは

javascript

1var bmi = w / (h / 100) * (h / 100);

2、ひだりのかっこが大文字です

alert('肥満です');

javascript

1alert('肥満です');

シンタックスハイライトの機能がないエディタをお使いだとこういうのに気づきづらいので、専用のテキストエディタをお勧めします

投稿2017/06/15 07:13

chocodoughnut

総合スコア54

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

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

miramikan

2017/06/15 07:22

おかげさまで解決しました。ありがとうございます。自分では気づけませんでした汗 アドバイスありがとうございます。現在Atomを使っているのですが、オススメのエディタはありますか?
chocodoughnut

2017/06/15 07:52

よかったです。私もAtomを使っていて気に入っています。(シンタックスハイライトももちろん機能しています!) テーマによって色は違いますが、エディタで見た時に下記は違うように色付けされていたと思います。 自分はmiramikanさんの投稿内容をエディタにコピペしてそれで気づきました◎ alert('肥満です'); タイポ alert('肥満です'); 問題なし
sakapun

2017/06/15 07:57

Atomならハイライトは問題ないので、今回のような閉じ忘れがあったりコードの間違いを見つけてくれる「lint」のプラグインを入れたほうがいいと思いますよ。 http://loumo.jp/wp/archive/20150905000005/
miramikan

2017/06/15 14:07

貴重なアドバイスありがとうございます!早速やってみます!
guest

0

jsファイルとして読み込むか、typeをjavascriptにするか。
ちなみに、スクリプト側にも構文エラーがありますが、そちらはまた別のお話かと。

html

1<script src="ex07-10"></script> 2 3<script src="ex07-10" type="application/javascript"></script> 4<script src="ex07-10.js"></script>

投稿2017/06/15 07:09

kanimaru

総合スコア1013

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

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

miramikan

2017/06/15 07:15

ご指摘ありがとうございます。その部分は修正いたしました。
guest

0

外部ファイルを読み込んでるんですよね。

<script src="ex07-10"></script>

ファイル名間違ってませんか?

追記:
ただし、これを修正したからといって思ったとおり動くかは別問題なので、そこは調整してください。

投稿2017/06/15 07:05

編集2017/06/15 07:07
m.ts10806

総合スコア80765

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

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

m.ts10806

2017/06/15 07:07

すみません。途中で投稿してしまいました。 編集しましたので再度回答を読んでください。
miramikan

2017/06/15 07:09

あー!本当ですね!! ご指摘ありがとうございます! でも、まだ動きません汗
m.ts10806

2017/06/15 07:10

どう修正したのか分かりませんが・・。 修正したのであれば質問を修正し、最新を保ってください。
m.ts10806

2017/06/15 07:11 編集

あと動かないということで質問するのはいいのですが、コードのロジック部分を追いかけすぎて本来見るべきところを見落としているケースが非常に多く思えます。要はケアレスミスというもの。 自分が書いたコードをHTMLも含めて1行1行間違いないか指差し確認する癖をつけてください。
miramikan

2017/06/15 07:14

大変失礼いたしました。わかりにくくて申し訳ありません。拡張子jsを付け加えました。
miramikan

2017/06/15 07:14

アドバイスありがとうございます。もっと忍耐深くミスチェックをするように心がけます。
m.ts10806

2017/06/15 07:20

あとは他の方が指摘されていることを参考に。 また、chocodoughnutさんが提案してくださっているようにシンタックスハイライト機能がついたものを導入すると良いと思いますよ。 Atomでしたっけ。シンタックスハイライトありそうですね。テーマも参考にすると良いです。 http://niisi.hatenablog.jp/entry/2016/08/21/183000
miramikan

2017/06/15 07:51

わざわざURLを貼ってくださってありがとうございます m(__)m 早速取り入れてみます! 未熟者で申し訳ありません汗
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問