function - 使用更高范围的变量和使用在函数中显式传递的变量之间的区别
问题描述
我主要用 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);
解决方案
如果函数使用范围内的变量可能会导致副作用(函数修改外部变量),这被认为是不好的做法,因为会使函数不纯。
全局变量被认为是不好的做法,只有在变量为常量时才应使用。如果变量是常量,那没关系,因为现在函数不能修改范围。
推荐阅读
- php - 如何创建一个会话,当一个人使用电子邮件和密码登录时显示用户的用户名
- java - Java 对象获取方法等待对象定期刷新自身
- swift4 - 如何在swift 4中实现这个设计所有数据都可以水平和垂直滚动
- sas - SAS DO Loop 似乎跳过了记录
- c - C中的冒泡排序显示分段错误
- java - ImageIO PSD 库插件在 jar 中不起作用
- html - CSS 中@media 查询的标准断点是什么?
- python-3.x - 从没有管理员或 cmd 的记忆棒安装 python 模块
- sql-server - 如何在 vb.net 的 cmd.Parameters.AddWithValue("@" & Variable & "" , "") 中指定一个变量
- javascript - 是否可以将对象初始化为具有属性的函数?