Javascript中函数参数的传递方式分为两种:值传递和引用传递。这两种传递方式的区别在于,值传递将参数的值复制给函数的形参,函数中对形参的修改不会影响原始的参数值;引用传递将参数的引用传递给函数,函数中对形参的修改会影响原始的参数值。
值传递的例子:
function myFunction(x) {x = 5;console.log(x);}var y = 3;myFunction(y); // 5console.log(y); // 3在这个例子中,我们定义了一个接受一个参数x的函数myFunction。在函数中,我们将x的值设为5,并在控制台中打印x的值。我们将变量y的值设为3,并将y作为参数传递给myFunction函数。在myFunction函数中,我们将参数x的值设为5,然后打印出来。但是,当我们在控制台中打印y的值时,它仍然为3。这是因为参数y的值被复制到参数x中,而不是直接传递引用。
引用传递的例子:
function myFunction(x) {x[0] = 5;console.log(x);}var y = [0, 1, 2];myFunction(y); // [5, 1, 2]console.log(y); // [5, 1, 2]在这个例子中,我们定义了一个接受一个参数x的函数myFunction。在函数中,我们将参数x的第一个元素设为5,并在控制台中打印x的值。我们将一个包含三个元素的数组y作为参数传递给myFunction函数。在myFunction函数中,我们将参数x的第一个元素设为5。但是,当我们在控制台中打印y的值时,它变为了[5, 1, 2]。这是因为在Javascript中,对于对象和数组等引用类型的参数,函数实际上是将参数的引用传递给函数的。
在Javascript中,函数参数也可以有默认值,并且可以使用剩余参数的语法来传递任意数量的参数。假设我们有一个函数,接受两个参数x和y,并将它们相加:
function add(x, y) {return x + y;}add(2, 3); // 5现在我们想要使y有一个默认值,那么我们可以这样做:
function add(x, y=1) {return x + y;}add(2); // 3在这个例子中,我们将y的默认值设为1。如果我们只传递一个参数给add函数,那么y会被设置为默认值。我们也可以使用剩余参数来传递任意数量的参数:
function sum(...args) {return args.reduce((acc, val) => acc + val);}sum(1, 2, 3, 4); // 10在这个例子中,我们定义了一个函数sum,使用剩余参数的语法来捕获任意数量的参数。我们使用reduce函数将所有参数在一起相加,并返回结果。
总结:在Javascript中,函数参数的传递可以是值传递或引用传递。函数参数还可以有默认值,也可以使用剩余参数的语法来传递任意数量的参数。这些灵活的参数传递方式使得我们可以更好地使用函数来满足不同的需求。
上一篇:javascript中三级下拉框
下一篇:css按钮为灰色边框









