一道笔试题思考而来的,通常情况下没人会在函数内部修改参数值。这里只是讨论,有三种方式可以修改。
1,直接修改函数声明时的形参
function f1(a) {
alert(a);
a = 1;//修改形参a
alert(1 === a);
alert(1 === arguments[0]);
}
f1(10);
函数f1定义了参数a,调用时传参数10,先弹出10,修改a为1,弹出两次true,a和arguments[0]都为1了。
2,通过函数内部的arguments对象修改
function f2(a) {
alert(a);
arguments[0] = 1;//修改arguments
alert(1 === a);
alert(1 === arguments[0]);
}
效果同f1。
3,函数内部声明的局部变量与形参同名
function f3(a) {
alert(a);
var a = 1;//声明局部变量a且赋值为1
alert(1 === a);
alert(arguments[0]);
}
f3(10);
函数f3定义了形参a,函数内部声明局部变量a同时赋值为1,但这里的a仍然是参数a,从最后弹出的arguments[0]被修改为1可以证明。
如果只是声明局部变量a,却不赋值,情况又不一样了
function f3(a) {
var a;//仅声明,不赋值
alert(a);
alert(arguments[0]);
}
f3(10);
这时候弹出的都是10,而不是undefined。
分享到:
相关推荐
总结起来,JavaScript函数参数的可修改性主要涉及以下几点: 1. 形参在函数内部是可以被重新赋值的,但这不影响调用时实际传入的值。 2. `arguments`对象提供了访问所有参数的途径,即使参数已经被修改。 3. 在函数...
总结而言,JS函数式编程指南为读者提供了一种途径,借助于JavaScript这种广泛使用的编程语言,去理解和掌握函数式编程的核心概念和实践技巧。这本指南不仅涵盖了函数式编程的基础理论,还详细介绍了如何在实际开发中...
不过,由于【标题】中提供了文档的名称——"JavaScript函数式编程.pdf",我可以根据这个名称扩展出关于JavaScript函数式编程的知识点。 JavaScript函数式编程的知识点非常丰富,涉及很多方面的内容,下面将详细介绍...
JavaScript函数式编程是一种编程范式,它强调将计算视为数据处理的过程,并且重视函数作为第一类公民,即函数可以作为变量赋值、作为参数传递、作为返回值返回。这种编程风格在JavaScript中尤其常见,因为它提供了...
全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的编程、类编程。除此之外,附录中还介绍了更多...
在这个“Finereport数据集参数实现动态列报表模板 + 函数JS代码”的资源包中,我们将深入探讨如何利用FineReport的特性来实现动态列报表,并结合JavaScript(JS)代码来优化这一过程。 首先,动态列报表的核心在于...
本文将深入分析JavaScript函数参数传递的原理,探讨同名参数在函数中的表现,并通过实例分析来帮助大家更好地理解和应用这些概念。 首先,我们需要明确JavaScript中参数传递的两种基本类型:值传递和引用传递。当...
通过阅读《JavaScript函数式编程》这本书,读者可以学习如何在实际项目中应用这些概念,提升代码质量,减少出错的可能性,并提高代码的可维护性。无论你是初学者还是经验丰富的开发者,这本书都值得一看,它能帮助你...
在分析“09-函数参数.md”这一文件中,我们可以提炼出多个与函数参数相关的知识点,这些知识点包括但不限于函数参数的传递方式、参数在函数中的使用、以及代码规范在函数参数使用中的作用。以下是对这些知识点的详细...
在JavaScript中,我们可以通过使用`Object.freeze()`冻结对象,或者使用Immutable.js库来实现数据不可变性,这有助于减少副作用并提高代码可预测性。 9. **函数式编程库**:在JavaScript中,有很多库如Ramda、...
函数做参数是这一思想的重要体现,它允许我们传递行为而不是数据,从而提高了代码的灵活性。 2. **高阶函数** 高阶函数是指可以接受一个或多个函数作为输入,并可能返回一个新的函数的函数。这些函数通常用作工具...
JavaScript函数参数的理解是每个JavaScript开发者必须掌握的基础知识。在JavaScript中,函数参数具有以下几个关键特点: 1. **无类型检查**:JavaScript函数不关心传递的参数类型,这意味着你可以将任何类型的值...
JavaScript中的函数参数传递机制一直以来都是开发者讨论的热点。在传统观念中,JavaScript的参数传递常被误解为引用传递,即类似C++或C中的指针传递。然而,JavaScript的实现其实更为复杂,它包含了值传递和引用传递...
通过以上分析,我们了解到JavaScript函数参数的灵活性,它们既可以是任意类型,数量也无需固定。函数的参数机制允许开发者以多种方式传递数据给函数,提供了调用函数时的灵活性和代码的复用性。同时,需要对传值和...
JavaScript函数参数接收Object变量是一个常见的编程操作,尤其是在处理复杂数据结构时。JavaScript是一种动态类型的语言,这意味着你可以在函数参数中传递任何类型的值,包括对象。以下是对这一主题的详细讲解: 1....
- **异步请求**:更推荐使用AJAX等方式进行前后端通信,这样可以更好地分离关注点,提高系统的可维护性和扩展性。 ### 总结 通过上述分析,我们了解了JS调用后台带参数的基本原理和实现方法。需要注意的是,在实际...
通过学习和实践这些JavaScript函数式编程的概念,开发者可以编写出更加优雅、高效和易于维护的代码,同时降低bug出现的可能性。本电子教程将详细解释每一个概念,并提供丰富的示例和练习,帮助读者掌握JavaScript...
但通过使用不可变数据结构(如Immutable.js库提供的数据结构)和函数式编程库(如Ramda或Lodash),开发者可以在JavaScript中实现更接近函数式风格的编程。 总的来说,JavaScript的函数式编程是利用语言固有的函数...