首页 > 解决方案 > 使用更高范围的变量和使用在函数中显式传递的变量之间的区别

问题描述

我主要用 JS 编写代码,但我想这适用于许多语言。

函数中的全局/更高范围变量与使用传递给函数的变量之间的有效区别是什么,反之亦然?

let somevariable = 5 ;

function somefuntion() {
  let scopedvariable = 10;
  return scopedvariable*myvariable
}

somefunction();

// OR

let myvariable = 5 ;

function somefuntion(somevariable ) {
  let scopedvariable = 10;
  return scopedvariable *somevariable
}
somefunction(myvariable);

标签: functionscopeglobal-variables

解决方案


如果函数使用范围内的变量可能会导致副作用(函数修改外部变量),这被认为是不好的做法,因为会使函数不纯

全局变量被认为是不好的做法,只有在变量为常量时才应使用。如果变量是常量,那没关系,因为现在函数不能修改范围。


推荐阅读