js预处理阶段arguments深度解剖
来源:互联网 发布:js 正则 可有可无 编辑:程序博客网 时间:2024/06/04 19:47
一.首先了解arguments内部引用
首先先来看一个例子
function fn(a,b,a){alert(a);//3alert(arguments[0]);//1alert(arguments[2]);//3}fn(1,2,3);
知识点一: 变量名重复会取最后一个
问题一:arguments[0]为什么等于1
这是一个简单的热身,再来看一个下一个例子
<script type="text/javascript">function fn(a,b,a){alert(a);//function a(){}alert(arguments[0]);//1alert(arguments[2]);//function a(){}function a(){}var a=5;}fn(1,2,3);</script>
知识点一: 预处理阶段 function 优先级最高 预处理阶段发生冲突的变量名,会被优先级高的忽略掉。
那么 var a=5 就直接被 忽略
知识点二: 函数读取中 arguments 优先级是最高的 比function 还要高,当函数出现的一瞬间其实就已经
扫描了函数fn(), 在进入函数内部的时候,arguments 之间的引用已经结束了。arguments[0]所以是
不受任何不变化的,在上一例子中就讲到,它的变量引用已经没有了。
知识点三: 进入函数内部,function 优先级最高 所以a就已经被赋值为 function a(){},arguments[2] 引用的变量a
已经被预处理,所以arguments[2]也是function(){}。
阅读全文
1 0
- js预处理阶段arguments深度解剖
- C语言深度解剖——读书笔记-5、预处理
- C语言深度解剖——读书笔记-6、预处理
- 预处理阶段
- 深度解剖GFX原理
- C 语言深度解剖
- Linux信号深度解剖
- 《C语言深度解剖》
- memcached 深度解剖
- 《C语言深度解剖》
- C语言深度解剖
- C语言深度解剖
- Linux信号深度解剖
- c语言深度解剖
- C语言深度解剖
- 深度解剖dubbo源码
- 深度解剖dubbo源码
- 深度解剖dubbo源码
- string的find函数
- 无限轮播+pulltorefresh刷新
- lecture7,Training Neural Networks, Part 2
- 代码大全 读书笔记(2)
- 项目请求参数封装
- js预处理阶段arguments深度解剖
- NOIP2012 Day2
- java接口的使用
- Druid大数据实时处理的开源分布式系统——Historical Node
- Oracle数据库、实例、用户、表空间、表之间的关系
- <二分答案加验证||最小生成树>bzoj 1821 部落划分
- 腾讯浏览服务接入文档
- iOS AutoLayout 简单运用(纯代码)
- <考试题> codevs 5440 运输计划 (二分+lca+dfs序+树上差分)