面试题答案
一键面试函数调用表达式基本语法
在JavaScript中,函数调用表达式的基本语法是:函数名(参数列表)
。例如:
function greet(name) {
console.log('Hello, ' + name + '!');
}
greet('John');
这里 greet('John')
就是函数调用表达式,greet
是函数名,'John'
是传递给函数的参数。
传递不同类型参数及函数内部处理
- 基本数据类型
- 示例:
function addNumbers(a, b) {
return a + b;
}
let result = addNumbers(5, 3);
console.log(result);
- 函数内部处理:基本数据类型(如数字、字符串、布尔值等)在函数内部是按值传递的。也就是说,函数接收的是这些值的副本。在函数内部对参数的修改不会影响函数外部的变量。例如,如果在
addNumbers
函数内部修改a
或b
的值,不会影响传递给函数的原始数字。
- 对象
- 示例:
function updatePerson(person) {
person.age++;
return person;
}
let myPerson = {name: 'Alice', age: 30};
let updatedPerson = updatePerson(myPerson);
console.log(updatedPerson);
- 函数内部处理:对象在JavaScript中是按引用传递的。当传递一个对象作为参数时,函数接收的是对象的引用(内存地址)。这意味着在函数内部对对象属性的修改会反映在函数外部的原始对象上。在
updatePerson
函数中,对person
对象的age
属性的修改,也会影响到myPerson
对象。
- 数组
- 示例:
function doubleArray(arr) {
for (let i = 0; i < arr.length; i++) {
arr[i] = arr[i] * 2;
}
return arr;
}
let numbers = [1, 2, 3];
let doubledNumbers = doubleArray(numbers);
console.log(doubledNumbers);
- 函数内部处理:数组在JavaScript中也是对象,所以它们也是按引用传递的。在
doubleArray
函数中,对arr
数组元素的修改会直接反映在传递给函数的原始numbers
数组上。