[解決済み] TypeError: console.log(...) は関数ではありません。
質問
1091行目のconsole.logが関数でないことをどうすれば理解できるのか、とても困っています。以下のクロージャを削除すると、1091行目でこのようなエラーは出ません。Chrome バージョン 43.0.2357.130 (64ビット).
以下はそのコードです。
$scope.columnNameChanged = function (tableColumn) {
setDirtyColumn(tableColumn);
//propagate changes to the key fields
for (var i = 0; i < $scope.tableIndexes.length; ++i) {
for (var j = 0; j < $scope.tableIndexes[i].columnName.length; ++j) {
if ($scope.tableIndexes[i].columnName[j] === tableColumn.previousName) {
console.log('xxx', $scope.tableIndexes[i].columnName[j])
(function (i, j) {
$timeout(function () {
console.log($scope.tableIndexes[i].columnName[j])
$scope.tableIndexes[i].columnName[j] = tableColumn.name.toUpperCase();
console.log($scope.tableIndexes[i].columnName[j])
});
})(i, j);
}
}
}
};
解決方法は?
解決方法
単純にセミコロン(
;
の後に
console.log(
...
)
.
説明
このように簡単にエラーを再現することができます。
console.log()
(function(){})
を渡そうとしています。
function(){}
を引数として
戻り値
の
console.log()
であり、それ自体は関数ではなく、実際には
undefined
(チェック
typeof console.log();
). これは、JavaScriptがこれを
console.log()(function(){})
.
console.log
しかし
は
関数です。
がなかったら
console
オブジェクトが表示されます。
ReferenceError: console is not defined
もし、あなたが
console
オブジェクトは存在するが
log
メソッドが表示されます。
TypeError: console.log は関数ではありません。
しかし、あなたが持っているのは
TypeError: console.log(...) is not a function.
注意
(...)
を関数名の後に追加してください。これらは、関数の戻り値を参照しています。
改行の は、この二つの式を分離しません。 を別のステートメントとして使用することはできません。 セミコロン自動挿入(ASI)の規則 .
を尊重します。
;
これらのコード・スニペットはすべて、セミコロンが存在しない場合、あらゆる種類の予期しないエラーになります。
console.log() // As covered before
() // TypeError: console.log(...) is not a function
console.log() // Accessing property 0 of property 1 of the return value…
[1][0] // TypeError: console.log(...) is undefined
console.log() // Like undefined-3
-3 // NaN
let a, b;
const array = Array.from({ length: 2 })
// Now, let’s use destructuring:
[a, b] = array; // ReferenceError: can't access lexical declaration 'array' before initialization
let a, b;
const array = Array.from({ length: 2 }).fill(1),
array2 = Array.from({ length: 2 })
// Now, let’s use destructuring. Attempt to get the two 1’s from `array` as `a` and `b`:
[a, b] = array;
console.log(a, b); // undefined undefined
もう一つの例
をご覧ください。
(...)
しばしば、連鎖したメソッドや連鎖したプロパティアクセサが使用されます。
string.match(/someRegEx/)[0]
その RegEx が見つからない場合、このメソッドは
null
のプロパティアクセサは
null
を実行すると
TypeError: string.match(...) is null
- は
戻り値
は
null
. の場合は
console.log(...)
は
戻り値
は
undefined
.
関連
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] URLを新しいタブで開く(新しいウィンドウではない)
-
[解決済み] 関数が実行されるまでの時間を測定する方法
-
[解決済み] Node.js の console.log() で '[Object]' ではなく、完全なオブジェクトを取得するにはどうすればよいですか?
-
[解決済み] JSON.stringifyでErrorを文字列化することはできないのでしょうか?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】node.js TypeError: path must be absolute or specify root to res.sendFile [JSONのパースに失敗しました]。
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】FirefoxでGoogle Maps V3をリモートで使用すると「googleが定義されていません」と表示される。
-
[解決済み】リソースはドキュメントと解釈されるが、MIMEタイプはapplication/zipで転送される
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み] JavaScriptのセミコロン自動挿入(ASI)のルールとは?
-
[解決済み] Uncaught TypeError: (中間値)(...)は関数ではありません。