我是靠谱客的博主 美丽白猫,这篇文章主要介绍arguments映射的问题,现在分享给大家,希望可以做个参考。

arguments映射的问题

什么是arguments:arguments 是一个对应于传递给函数的参数的类数组对象。

  • 在正常的情况下为函数设置几个形参,调用时就传递几个实参,这时arguments会和参数一一对应形成映射关系
	function fun(a,b,c){
            c = 30
            console.log(a,b,c) // 1,2,30
            console.log(arguments) // Arguments(3)[1,2,30]
            arguments[1] = 20;
            console.log(arguments) //Arguments(3)[1,20,30]
            console.log(arguments[2]) // 30
 	}
        fun(1,2,3)
  • 但当我们的形参和实参没有一一对应的时候,那些没有传入实参的形参就不会和arguments形成映射
function fun(a,b,c){
            c = 30 
            console.log(a,b,c) // 1,2,30
            console.log(arguments) // Arguments(2)[1,2]
            console.log(arguments[2]) //undifined
 }
 fun(1,2)
  • 当我们在函数内开启严格模式时,形参和arguments就不会有映射关系
 function fun(a,b,c){
            'use strict'
            c = 30
            console.log(a,b,c) // 1,2,30
            console.log(arguments) //Arguments(2)[1,2,3]
            console.log(arguments[2]) //3
        }
        fun(1,2,3)

总结:当调用函数是传入的实参与函数的形参一一对应的时候,形参会和arguments产生映射关系,反之传入的实参没有与形参一一对应时,没有对应的形参就不会与arguments形成映射关系,还有当在函数中开启严格模式时,形参不会和arguments形成映射关系

最后

以上就是美丽白猫最近收集整理的关于arguments映射的问题的全部内容,更多相关arguments映射内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(148)

评论列表共有 0 条评论

立即
投稿
返回
顶部