函数参数
题目
运行以下代码,会输出什么
js
function changeArg(x) { x = 200 }
let num = 100
changeArg(num)
console.log('changeArg num', num)
let obj = { name: '锋哥' }
changeArg(obj)
console.log('changeArg obj', obj)
function changeArgProp(x) {
x.name = '张三'
}
changeArgProp(obj)
console.log('changeArgProp obj', obj)
分析
调用函数,传递参数 —— 赋值传递
js
function fn(x, y) {
// 继续操作 x y
}
const num = 100
const obj = { name: '锋哥' }
fn(num, obj)
以上代码相当于
js
const num = 100
const obj = { name: '锋哥' }
let x = num
let y = obj
// 继续操作 x y
解题
执行题目代码分别输出 100 {name: '锋哥'} {name: '张三'}
扩展:
eslint 规则建议:函数参数当作一个 const
常量,不要修改函数参数 —— 这样代码更易读