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开发中因空格引发的错误
Nov 08 Javascript
一个简单的Ext.XTemplate的实例代码
Mar 18 Javascript
一行命令搞定node.js 版本升级
Jul 20 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
Jun 01 Javascript
[原创]jQuery常用的4种加载方式分析
Jul 25 Javascript
JS设计模式之命令模式概念与用法分析
Feb 06 Javascript
vue项目中api接口管理总结
Apr 20 Javascript
JavaScript模拟实现自由落体效果
Aug 28 Javascript
vuex实现及简略解析(小结)
Mar 01 Javascript
layui 中select下拉change事件失效的解决方法
Sep 20 Javascript
JS document文档的简单操作完整示例
Jan 13 Javascript
jquery将信息遍历到界面上实例代码
Jan 21 jQuery
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
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
深入PHP与浏览器缓存的分析
2013/06/03 PHP
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python文件操作整理汇总
2014/10/21 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
python实现名片管理系统项目
2019/04/26 Python
python编写简单端口扫描器
2019/09/04 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
加拿大时装零售商:Influence U
2018/12/22 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
护理专业自荐信范文
2014/02/26 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书