JS传递参数、按值传递绝版路线图

316 阅读1分钟

面试基本功-1,求输出

const arr = [1, 2, 3]
const obj = {}

function fun(arrTemp, objTemp) {
  arrTemp = []
  objTemp.a = 1
  objTemp = { b: 2 }
}

fun(arr, obj)

console.log('arr=', arr, 'obj=', obj)

讲解: image.png

答案: arr= (3) [1, 2, 3] obj= {a: 1}

面试基本功-2,求输出



var arr = [1, 2, 3, 4]
var str = '1234'

function guangboticao9 (input) {
  input = '2234'
  return [input].concat([5, 6, 7, 8])
}

console.log('第九套广播体操', guangboticao9(arr), arr)

讲解:

image.png

答案:第九套广播体操  ['2234', 5, 6, 7, 8] [1, 2, 3, 4]

面试基本功-3,求输出

var liLei = { name: 'Li Lei'}
var hanMeimei = { name: 'Han Meimei'}
var jim = {name: 'Jim' }

var students = [ liLei, hanMeimei ]

function change (s) {
  s[0] = jim;
  s[1].name = 'Lucy'
}

change(students);

console.log(students)
console.log(liLei)
console.log(hanMeimei)
console.log(jim)

image.png

答案: [{name: 'Jim'} {name: 'Lucy'}] {name: 'Li Lei'} {name: 'Lucy'} {name: 'Jim'}

面试基本功-4,求输出

let a = [1, 2, 3]

let foo = (obj) => {
    obj[1] = 999
    obj = [1, 1, 1]
    obj[0] = 111
}

foo(a)
console.log(a);

image.png

答案:[1, 999, 3]