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实现的网站首页随机公告随机公告
Mar 14 Javascript
use jscript with List Proxy Server Information
Jun 11 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
Jun 17 Javascript
javascript获取隐藏dom的宽高 具体实现
Jul 14 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
Oct 29 Javascript
详解JavaScript正则表达式之RegExp对象
Dec 13 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
JavaScript生成.xls文件的代码
Dec 22 Javascript
详解js的六大数据类型
Dec 27 Javascript
boostrap模态框二次弹出清空原有内容的方法
Aug 10 Javascript
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
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自动获取目录下的模板的代码
2010/08/08 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
php通过各种函数判断0和空
2020/07/04 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
JS实现排行榜文字向上滚动轮播效果
2019/11/26 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
python得到单词模式的示例
2018/10/15 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
python烟花效果的代码实例
2020/02/25 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
自我鉴定范文200字
2013/10/02 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
军训教官感言
2014/03/02 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
2014年科研工作总结
2014/12/03 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
python 实现的截屏工具
2021/05/08 Python