函数的基本知识,解析顺序,效率,作用域
2016-07-03 20:08
363 查看
•三种定义函数的方式:
–function语句形式
–函数直接量形式
–通过Function构造函数形式定义函数
•比较三种方式定义的区别:
–function语句形式
–函数直接量形式
–通过Function构造函数形式定义函数
•比较三种方式定义的区别:
function语句 | Function构造函数 | 函数直接量 | |
兼容 | 完全 | js1.1以上 | js1.2以上版本 |
形式 | 句子 | 表达式 | 表达式 |
名称 | 有名 | 匿名 | 匿名 |
性质 | 静态 | 动态 | 静态 |
解析时机 | 优先解析 | 顺序解析 | 顺序解析 |
作用域 | 具有函数的作用域 | 顶级函数(顶级作用域) | 具有函数作用域 |
/*----------------------函数效率对比--------------------*/ var date = new Date(); var d1 = date.getTime(); for(var i=0; i<100000; i++){ function test(){;}; //function语句形式效率更高 //var test2 = new Function(); } var date2 = new Date(); var d2 = date2.getTime(); alert(date2 - date); /*--------------------函数解析顺序----------------------*/ //function语句形式:优先解析,先解析function函数 test(); function test(){ console.log('语句形式,优先解析'); } //函数直接量形式:顺序解析,先解析test2方法在解析函数 test2(); var test2 = function(){ console.log('直接量形式,顺序解析'); } /*----------------------函数解析顺序--------------------*/ //第一个函数,返回4,说明第一个函数被第四个函数覆盖 function f(){ return 1; } console.log(f()); //第二个函数,返回2,说明第四个函数被第二个函数覆盖 var f = new Function("return 2") console.log(f()); //第三个函数,返回3,说明第二个函数被第三个函数覆盖 var f = function(){ return 3; } console.log(f()); //第四个函数,返回3,说明第四个函数被第三个函数覆盖 function f(){ return 4; } console.log(f()); //第五个函数,返回5,说明第三个函数被第五个函数覆盖 var f = new Function("return 5") console.log(f()); //第六个函数,返回6,说明第五个函数被第六个覆盖 var f = function(){ return 6; } console.log(f()); /*---------------------函数作用域的概念---------------------*/ var k = 1; function t1(){ var k = 2; //返回2 function test(){ return k; } //返回2 var test = function(){ return k; } //返回1 var test = new Function('return k'); console.log(test()); } console.log(t1());
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享