JavaScript中有一个隐藏属性可以访问参数,甚至改变参数。那就是arguments。
arguments也分不同情况下的执行情况,比如一般模式,严格模式。下面我们就几种不同举例说明。(本篇实质也算上一篇的延续)
一.通过arguments改变形参
!function(a){ arguments[0]=100; //改变了形参1的值 console.log(a); // 100 }(1);
arguments是个伪数组,即通过下标访问参数。
注:上代码使用了立即调用执行函数
!function(){}();
这只是其中之一的写法,立即调用执行函数有其他很多种写法。
二.不传参时,在use strict下修改形参
!function(a){ 'use strict'; arguments[0]=100; console.log(a); // undefined }(); //未传参
上述代码中,我们可看,并未传参。
此处有两个要点:
1.当参数不传时默认是undefined,即使通过arguments手动修改依然是undefined。
2.当在严格模式下 arguments 已成为参数的静态副本,无论传不传都不会给参数造成影响。
三.参数为对象,在use strict下修改形参
!function(a){ 'use strict'; arguments[0].x =100; console.log(a.x); //100 }({x:1});
参数为对象(共享传递)时通过arguments,即使在use strict中改变依然会生效。
相关推荐
本学习笔记旨在帮助初学者快速掌握JavaScript的核心概念和技术,实现从入门到精通的过渡。 1. **基础语法** - 变量声明:JavaScript支持var、let和const关键字声明变量,理解它们的作用域和提升特性至关重要。 - ...
JavaScript是一种广泛应用于Web开发的脚本语言,由Netscape公司的Brendan Eich在1995年创造。...通过不断地练习和挑战,你将逐步掌握JavaScript这门强大的语言,并为成为专业的前端开发者打下坚实基础。
- **调试**:现代浏览器普遍支持开发者工具,可通过按`F12`键打开,其中的**调试**功能允许开发者设置断点,逐步执行代码,观察变量变化等。 ##### 变量与数据类型 - **变量声明**:使用`var`关键字声明变量。建议...
在"Programming-Foundations-with-JavaScript-master"这个压缩包中,可能包含了详细的课程章节、实例代码和练习,帮助学习者逐步掌握上述概念。通过实践和理解这些基础知识,你将能够运用JavaScript构建动态网页,...
在JavaScript中,学习和掌握递归是一项重要的技能,它可以极大地提高代码的简洁性和可读性。对于开发者来说,理解递归的基本原理,熟练运用递归解决问题,并且能注意到递归过程中可能出现的陷阱,都是成为优秀...
总结,从零开始学习jQuery,需要先掌握JavaScript的基础知识,然后通过实践和理解jQuery的API,逐步掌握其核心功能,从而能够更高效地进行前端开发。随着经验的增长,可以深入学习jQuery插件开发、性能优化以及与...
了解并掌握 `call` 和 `apply` 的使用,能帮助开发者更好地理解和编写JavaScript代码,尤其在处理对象方法、函数封装、参数传递等场景中。同时,理解`this`、`arguments` 和 `callee` 的工作原理也是提升JavaScript...
在JavaScript中,递归可以用来解决各种复杂的问题,尤其是那些可以分解为更小相似子问题的情况。《SICP》(Structure and Interpretation of Computer Programs)是一本经典的计算机科学教材,它详细阐述了递归的...
JavaScript函数柯里化是一种编程技术,它将一个多参数的函数转换为一系列单参数函数,以实现参数的部分预先填充。这种转换通常用于简化...通过熟练掌握柯里化,可以提升JavaScript编程的水平,让代码更加优雅和高效。
这个过程不仅帮助我们理解jQuery的工作原理,还让我们有机会掌握更底层的JavaScript技术,提高我们的编程能力。当然,实际的实现会更复杂,需要处理更多细节,但这个概述提供了一个基本的方向。在"pure-javascript-...
JavaScript Koans 是一个学习JavaScript语言和编程思维的实践项目,通过一系列精心设计的断言失败问题,引导学习者逐步理解JavaScript的核心概念。这个项目通常包括多个级别的练习,每个级别(Koan)都是一段未完成...
JavaScript中的高级函数是编程实践中非常关键的一环,它们能够...对于JavaScript初学者,逐步理解和掌握这些高级功能是提升编程技能的关键步骤。而对于经验丰富的开发者,这些知识则可以帮助优化代码并解决复杂问题。
闭包是JavaScript中一个非常重要的概念,它不仅是理解高级编程技巧的基础,也是深入掌握JavaScript内存管理的关键之一。简单来说,**闭包**就是一个能够访问其自身作用域、外部函数作用域以及全局作用域的函数。 在...
在IT行业中,jQuery是一个非常流行的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。jQuery插件的制作是将jQuery的核心...本教程将引导你逐步掌握jQuery插件开发,从而提升你的JavaScript开发能力。
作为全栈工程师的基础技能之一,掌握JavaScript对于前端开发至关重要。 #### 二、JavaScript基本概念 ##### 1. 变量与数据类型 - **数字(Number)**:表示整数或浮点数。 - **字符串(String)**:由字符序列组成的...
《prototype介绍和使用方法》 在JavaScript开发中,Prototype是一个重要的库,由Sam ...然而,由于Prototype库庞大且功能丰富,掌握所有细节可能需要一定时间,因此建议开发者根据实际需求逐步学习并深入理解。
根据提供的描述,本系列教程旨在逐步深入地介绍ES6的各项新特性。这些特性不仅丰富了JavaScript的语言特性,还提高了开发者的生产力。接下来,我们将详细介绍几个核心知识点。 #### 二、迭代器和for-of循环 ##### ...
《C# 4.0本质论 第3版》的PDF文件是本书的主要学习资料,它包含了详细的技术讲解和实例代码,可以帮助读者逐步掌握C# 4.0的各项功能。而readme.txt文件通常包含作者或出版商的说明,可能涵盖了版权信息、使用指南...
这个名为"lab_func_practice"的资源可能是一个练习项目或教程,旨在帮助学习者深入理解和熟练掌握JavaScript中的函数和实践技巧。在这个项目中,我们可以期待找到一系列的代码示例、练习以及可能的解决方案,这些都...