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

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

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

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

Q&A

解決済

2回答

1429閲覧

whileがうまくいかない

suzunox

総合スコア80

JavaScript

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

0グッド

0クリップ

投稿2019/02/18 07:59

###実現したいこと
税込価格を計算するものをつくりたいです。
###コード

javascript

1var tax = 0.1; //税率の初期設定 2var price; //対象の価格 3var repeat = true; //繰り返すかの選択 4 5//税率設定 6if(window.confirm('税込価格を計算します。税率は' + tax * 100 +'%に設定してあります。税率を変えますか?')) { 7 tax = parseInt(window.prompt('税率を変更します。何%ですか?')) / 100; 8 while(tax < 0 || Number.isNaN(tax)) { 9 tax = parseInt(window.prompt('税率は0以上の数字のみにしてください。何%ですか?')) / 100; 10 } 11} 12 13//対象の価格設定 14while(repeat) { 15 price = parseInt(window.prompt('価格を入力してください。')); 16 while(price < 0 || Number.isNaN(price)) { 17 price = parseInt(window.prompt('価格は0以上の数字のみにしてください。それを踏まえて価格を入力してください。')); 18 } 19 repeat = window.confilm('税込価格は"' + price + price * tax + '円"です。もう一度計算しますか?'); 20}

###問題点
対象の価格設定のところの、window.prompt[価格は0以上の数字のみにしてください。それを踏まえて価格を入力してください。]のところまではいきますが、そのあとの、税込価格を表示するところまではいかず、メッセージが消えてしまいます。
コンソールログを見てみたら、TypeError: window.confilm is not a functionと出ました。
###環境
FireFoxでみました。VScodeを使用しました。

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

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

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

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

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

guest

回答2

0

ベストアンサー

TypeError: window.confilm is not a function

window.confirm です。スペルをよーく確認してください。

投稿2019/02/18 08:00

mather

総合スコア6753

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

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

0

TypeError: window.confilm is not a function

JavaScriptでは関数以外のお尻に括弧()を付けて実行しようとした場合、
このようなエラーが出ます。

JavaScript

1(null)() 2// TypeError: null is not a function 3// 意訳: Null値は関数じゃないよ!

今回はタイプミスでconfilmというプロパティ名になっていますね。
その結果window.confilmという存在しないキーを探しに行き、
存在しないという意味のundefind値を持ち帰って来ています。
これを関数実行すると上記のようなエラーが出ます。

JavaScriptでプログラミングすると、
親の顔よりこの形式のエラー文を見ることになるのでしっかり覚えて帰ってくださいね。


余談ですが、これと同じ位の多いのはnull値からプロパティを取り出そうとした時のエラーです。

JavaScript

1(null).hoge 2// TypeError: Cannot read property 'hoge' of null 3// 意訳: Nullはhogeプロパティを所持してないので読み込めません 4 5// こんな時に出やすい 6var user = {name: 'taro'}; 7console.log(user.name.toUpperCase()); // "TARO" 8console.log(user.nomo.toUpperCase()); 9// TypeError: Cannot read property 'toUpperCase' of undefined

投稿2019/02/18 08:09

編集2019/02/18 08:16
miyabi-sun

総合スコア21158

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

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

suzunox

2019/02/18 08:12

丁寧な回答ありがとうございます。エラーについてはしっかりと覚えます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問