[解決済み】JavaScript "Uncaught TypeError: object is not a function" 連想性の質問
2022-01-24 14:51:02
質問内容
コードは以下の通りです。
<body>
<a href="javascript:;" id="test">hello</a>
</body>
<script type="text/javascript">
document.getElementById("test").addEventListener("click", function () {
test()
}, false)
function test() {
var postTypes = new Array('hello', 'there')
(function() { alert('hello there') })()
}
</script>
を投げることになります。
"Uncaught TypeError: object is not a function"
無名関数呼び出し/呼び出しを別の括弧で囲むと、警告は実行されますが、まだエラーが出ます。 var postTypes"の定義の後にセミコロンを置くと、全く問題なく実行されます。
JavaScriptはセミコロンを必要としないと信じていたので、私が十分に理解していない関数の適用に関する奇妙な連想規則があるのではと推測しているのです。なぜこのエラーが出るのでしょうか?
どうすればいいですか?
JavaScriptではセミコロンが必要です。ただ、インタプリタが可能な限り改行で挿入してくれるからです。 * .
残念ながら、このコード
var a = new B(args)(stuff)()
が行います。
ない
は構文エラーにならないので
;
が挿入されます。(実行可能な例としては
var answer = new Function("x", "return x")(function(){return 42;})();
このような驚きを避けるために、常にステートメントを次のように終わらせるように訓練してください。
;
.
* これはあくまで経験則であり、必ずそうなるとは限りません。挿入のルールはもっと複雑です。これは ブログページ セミコロン挿入について、より詳しく説明しています。
関連
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み】JavaScriptのオブジェクトの長さ
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み】JavaScript "Uncaught TypeError: object is not a function" 連想性の質問
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】WebpackとBabelで「このファイルタイプを扱うには適切なローダーが必要な場合があります。
-
[解決済み】Reactのeslintエラーはpropsの検証で見つからない
-
[解決済み】エラー:リスン EACCES 0.0.0.0:80 OSx Node.js
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み】 \u003C とは何ですか?
-
[解決済み] JavaScriptのセミコロン自動挿入(ASI)のルールとは?