JavaScript函数定义的常见注意事项小结


Posted in Javascript onSeptember 16, 2014

本文就javascript函数定义的常见问题进行了总结。包含了初学者常犯的错误。分享给大家供大家参考。具体总结如下:

1. 函数声明的同时JS引擎还定义了一个与函数名同名的变量,我们在调用这个函数的时候实际上是在使用这个变量,且它可以在函数声明之前调用,例如

foo(); //这里实际上是使用了一函数变量 
function foo() { 
  alert('hello'); 
}

2. 函数表达式,此时将匿名函数赋值给了一变量,此变量需在定义后使用,例如

foo(); //报错,未定义 
var foo = function() { 
  alert('hello'); 
}

3. 函数表达式(with函数名),这种用法最好避免,此时非IE浏览器中该函数名只在内部可用,例如

bar(5); //报错,未定义 
var bar = function foo(n) { 
  if (n == 1) 
    return 1; 
  else 
    return n * foo(n - 1); 
} 
foo(5); //非IE报错,未定义 
bar(5); //正确

4. 用Function构造函数定义,这种方式效率低,每次执行函数的时候,其函数体都会被解析一次。此外这样声明的函数是不会继承当前声明位置的作用域,它默认只会拥有全局作用域,例如

function foo() { 
  var bar = 'hello'; 
  return Function('alert(bar)'); //报错,全局变量bar未定义 
} 
foo()();

相信本文所述对大家javascript WEB程序设计的学习有一定的借鉴价值。

Javascript 相关文章推荐
javascript数字格式化通用类 accounting.js使用
Aug 24 Javascript
如何判断鼠标是否在DIV的区域内
Nov 13 Javascript
浅析JavaScript原型继承的陷阱
Dec 03 Javascript
javascript中全局对象的isNaN()方法使用介绍
Dec 19 Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 Javascript
js对象继承之原型链继承实例
Jan 10 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
Aug 06 Javascript
详解JavaScript常量定义
Jan 03 Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 Javascript
echarts饼图扇区添加点击事件的实例
Oct 16 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
JavaScript代码模拟鼠标自动点击事件示例
Aug 07 Javascript
JavaScript的各种常见函数定义方法
Sep 16 #Javascript
JavaScript中合并数组的N种方法
Sep 16 #Javascript
JavaScript的null和undefined区别示例介绍
Sep 15 #Javascript
JavaScript中变量声明有var和没var的区别示例介绍
Sep 15 #Javascript
JavaScript的arguments对象应用示例
Sep 15 #Javascript
avascript中的自执行匿名函数应用示例
Sep 15 #Javascript
JavaScript function 的 length 属性使用介绍
Sep 15 #Javascript
You might like
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
2016/04/11 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
python网络编程学习笔记(一)
2014/06/09 Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
python调用摄像头的示例代码
2020/09/28 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
怎样自定义一个异常类
2016/09/27 面试题
青春奉献演讲稿
2014/05/08 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
培训班通知
2015/04/25 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP