MST

星途 面试题库

面试题:JavaScript主表达式之函数调用表达式

在JavaScript中,函数调用表达式是主表达式的一种。请举例说明函数调用表达式的基本语法,并且阐述如何在函数调用时传递不同类型的参数(如基本数据类型、对象、数组),以及它们在函数内部是如何被处理的。
42.5万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

函数调用表达式基本语法

在JavaScript中,函数调用表达式的基本语法是:函数名(参数列表)。例如:

function greet(name) {
    console.log('Hello, ' + name + '!');
}
greet('John'); 

这里 greet('John') 就是函数调用表达式,greet 是函数名,'John' 是传递给函数的参数。

传递不同类型参数及函数内部处理

  1. 基本数据类型
    • 示例
function addNumbers(a, b) {
    return a + b;
}
let result = addNumbers(5, 3); 
console.log(result); 
  • 函数内部处理:基本数据类型(如数字、字符串、布尔值等)在函数内部是按值传递的。也就是说,函数接收的是这些值的副本。在函数内部对参数的修改不会影响函数外部的变量。例如,如果在 addNumbers 函数内部修改 ab 的值,不会影响传递给函数的原始数字。
  1. 对象
    • 示例
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 对象。
  1. 数组
    • 示例
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 数组上。