前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
AI 面试
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
AI 面试
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

JavaScript之函数表达式&arguments详解

首页
2016-07-27 11:40:43
Front-End
JavaScript
  • This与arguments
  • 当一个函数运行的时候 函数内部能引用的变量有这么几种

  • AO

  • arguments

  • this

  • 对于arguments和this 函数都有自己的arguments和this 且不进行链式查找

  • arguments是什么?

    • 答:arguments是收到的实参的副本 在词法分析中
    • 首先形参形成AO属性 值为undefined
    • 当实参传来时 再修改AO的相应属性
    • 并把收到的实参收集起来放到一个arguments对象里面 t(a,b,c){}为例:调用 时 t(1,2,3,4,5)个参数 此时AO属性只有a,b,c三个属性 但是arguments有1,2,3,4,5所有的值
  • 对于超出形参个数的实参可以通过argument来获得

    • argument的索引从0 1 2..递增 与实参一一对应
    • argument.length属性代表实参个数
  • arguments一定不是数组,但是长得像数组的一个对象而已 虽然也有length属性

  • arguments每个函数都有 因此只会在内部找自身的argument 无法引用到外部的arguments

function t(a,b,c){//参数实际来AO的属性 有几个形参 就形成几个AO属性   arguments就代表这个函数的额参数
	console.log(a);//1
	console.log(b);//2
	console.log(c);//3

	console.log(arguments[0]);//1
	console.log(arguments[1]);//2
	console.log(arguments[2]);//3

	a = 90;
	console.log(a);//90
	console.log(arguments[0]);//90  互为副本 arguments有一个好处 它接收的实际是你传过来的参数 arguments接收的是所有的实参
	console.log(arguments[0]);
	console.log(arguments[3]);//4
	console.log(arguments[4]);//5

}
t(1,2,3,4,5);
@前端进阶之旅: 代码已经复制到剪贴板

//利用 argument的特点完成其他语言的函数重载
//求圆形面积 矩形面积 三角形面积

	function area(){
		if(arguments.length ==1){
			ale
fe

← JavaScript之面向对象中的多态JavaScript对象 →