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 相关文章推荐
JS中style属性
Oct 11 Javascript
jquery HotKeys轻松搞定键盘事件代码
Aug 30 Javascript
js中escape对应的C#解码函数 UrlDecode
Dec 16 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
checkbox选中与未选中判断示例
Aug 04 Javascript
jQuery实现列表的全选功能
Mar 18 Javascript
jQuery操作cookie
Aug 08 Javascript
jQuery File Upload文件上传插件使用详解
Dec 06 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
Dec 26 Javascript
深入理解 TypeScript Reflect Metadata
Dec 12 Javascript
vue 如何使用递归组件
Oct 23 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
Nov 05 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
php实现快速排序的三种方法分享
2014/03/12 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
自我鉴定书范文
2013/10/02 职场文书
传播学毕业生求职信
2013/10/11 职场文书
法警的竞聘演讲稿
2014/01/02 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
信访工作汇报材料
2014/10/27 职场文书
2015年教师新年寄语
2014/12/08 职场文书
2015学校年度工作总结
2015/05/11 职场文书
建国大业电影观后感
2015/06/01 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL