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

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

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

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

HTML

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

Q&A

解決済

1回答

1034閲覧

イコール = を押すとエラーが出る

atushi0625

総合スコア1

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2020/08/11 22:18

ご質問失礼します。
今、サイトをみながら簡易電卓アプリを作っています。
1+2を押して=を押すと計算されるはずなのですがエラーが出ます。
Uncaught ReferenceError: return1 is not defined
at eval (eval at calc (Calc.html:15), <anonymous>:3:1)
at calc (Calc.html:26)
at HTMLButtonElement.onclick (Calc.html:35)

こんな感じです。

コードはこんな感じです。

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>電卓</title> </head> <body> <div>Hello webcalc!</div> <input/> <script> function update(_v) { document.querySelector('input').value = _v }
function append(_v) { document.querySelector('input').value += _v } function calc() { const v = document.querySelector('input').value const f = new Function('return' + v ) update(f().toString() ) }
</script> <button onclick="append('1')" >1</button> <button onclick="append('2')" >2</button> <button onclick="append('3')" >3</button> <button onclick="append('+')" >+</button> <button onclick="append('-')" >-</button>

<button onclick="calc()" >=</button>

<button onclick="update('') " >CLR</button>

</body> </html>

もし分かる方がいらっしゃればご回答よろしくお願いします。

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

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

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

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

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

maisumakun

2020/08/11 22:21

「const f = new Function('return' + v )」は何を意図したコードなのでしょうか。
m.ts10806

2020/08/11 22:48

コードはマークダウンのcode機能を利用してご提示ください。 あと、このコードは自身でどの程度理解されているのでしょうか?あまり理解度が低い状態でアドバイスを受けても理解できない部分が増えるだけで作業依頼と変わらないようになると思うのですけど
guest

回答1

0

ベストアンサー

calc()の文字列連結時にreturnのあとにスペースがないのが原因では?

javascript

1function calc() 2{ 3const v = document.querySelector('input').value 4// 以下1+2と入力した場合 5//const f = new Function('return' + v ) // --> これだと"return1+2"という文字列になる 6const f = new Function('return ' + v ) // --> "return 1+2" 7update(f().toString() ) 8}

投稿2020/08/11 23:24

nekoniki

総合スコア2409

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

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

atushi0625

2020/08/12 13:10

回答ありがとうございます!無事解決することができました。お恥ずかしながらプログラミング初心者なのでもう少し基礎からやり直したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問