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 颜色选择器(兼容firefox)
Mar 05 Javascript
jquery控制左右箭头滚动图片列表的实例
May 20 Javascript
js带按钮的提示框可供选择示例代码
Sep 17 Javascript
jQuery获取字符串中出现最多的数
Feb 22 Javascript
基于javascript实现图片切换效果
Apr 17 Javascript
喜大普奔!jQuery发布 3.0 最终版
Jun 12 Javascript
footer定位页面底部(代码分享)
Mar 07 Javascript
jquery操作ul的一些操作笔记整理(干货)
Aug 31 jQuery
深入理解Vue Computed计算属性原理
May 29 Javascript
vue-cli3跨域配置的简单方法
Sep 06 Javascript
使用 Element UI Table 的 slot-scope方法
Oct 10 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
Aug 14 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
Search Engine Friendly的URL设计
2006/10/09 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
python MySQLdb使用教程详解
2018/03/20 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
Python中asyncio与aiohttp入门教程
2018/10/16 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
九年级体育教学反思
2014/01/23 职场文书
公司新年寄语
2014/04/04 职场文书
环保倡议书100字
2014/05/15 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
住房抵押登记委托书
2014/09/27 职场文书
企业法人代表证明书
2014/09/27 职场文书
优秀员工推荐材料
2014/12/20 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
社区党支部承诺书
2015/04/29 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
盗窃案辩护词
2015/05/21 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL