[英]Why can't use let to declare a variable using the same name as one function parameter, even the parameter get set default value?
[英]Why can't I declare a let variable with the same name as function body in Chrome
Chrome 67(撰寫本文時為最新版本)使我可以執行此操作
function foo(x, y) {
var x = 5;
console.log(x, y);
}
foo(1,2);
// prints 5 2
但不是這個
function foo(x, y) {
let x = 5;
console.log(x, y);
}
foo(1,2);
// Throws a SyntaxError: Identifier 'x' has already been declared
此行為是標准定義的嗎?
使用舊的var
關鍵字,您可以多次聲明一個變量而沒有問題(嗯...這本身就是一個問題)。
const
和let
關鍵字具有更好的行為。 在您的情況下:您不需要重新聲明x
因為x
已經被聲明為foo
函數的參數,因此您可以直接為其賦值(覆蓋參數不是很干凈,但是很合法)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.