登录 主页

JavaScript shadowing

2024-07-03 12:43PM

JavaScript中 Shadowing是指在内部作用域中定义与外部作用域中同名的变量,这会导致内部变量“遮蔽”或“覆盖”外部变量

1.如何使用 shadowing

1)函数作用域:

在函数内部定义与外部同名的变量会发生shadowing效果,外部变量在函数内部不可访问。

let x = 'global';

function myFunction() {
  let x = 'local';
  console.log(x); // 输出 'local'
}

myFunction();
console.log(x); // 输出 'global'

2)块级作用域:

使用let或const在块级作用域内定义的变量会遮蔽外部作用域中的同名的变量

let x = 'global';

if (true) {
  let x = 'local';
  console.log(x); // 输出 'local'
}

console.log(x); // 输出 'global'

3)参数作用域:

函数参数也会遮蔽外部同名变量

let x = 'global';

function myFunction(x) {
  console.log(x); // 输出 'local'
}

myFunction('local');
console.log(x); // 输出 'global'

Shadowing 的使用场景

1)变量重用:

在内部作用域中重新定义同名变量可以方便地操作局部变量,而不会影响外部变量。

2)错误处理:

在捕获异常时,可以在 catch 块中定义与外部同名的变量来处理异常信息,而不会影响外部变量。

3)循环:

在循环体内部定义与外部同名的变量可以方便地操作循环变量,而不会影响外部变量。

 

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论