Rumah > Soal Jawab > teks badan
Contoh:
let x = 99;
function foo(p = x + 1) {
console.log(p);
}
foo() // 100
x = 100;
foo() // 101
Namun, jika saya menukar sedikit parameter kepada:
let x = 99;
function foo(x = x + 1) {
console.log(x);
}
foo() // NaN
x = 100;
foo() // NaN
Mengapa ia dipaparkan sebagai NaN Apakah perubahan yang tidak kelihatan yang berlaku di bahagian tengah?
漂亮男人2017-05-19 10:46:17
let x = 99;
function foo(p = x + 1) {
console.log(p);
}
// 相当于
let x = 99;
function foo () {
let p;
p = x + 1;
console.log(p); // -> 100
}
Kod berikut bersamaan dengan
let x = 99;
function foo(x = x + 1) {
console.log(x);
}
// 相当于
let x = 99;
function foo() {
let x; // 此时x = undefined;
x = undefined + 1;
console.log(x); // -> NaN
}
Maksudnya, x dalam foo(x = x + 1) tiada kaitan dengan x di luar Ia ditakrifkan di dalam fungsi oleh anda.