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图片预加载技术(详细演示)
Mar 12 Javascript
jQuery 源码分析笔记(4) Ready函数
Jun 02 Javascript
jQuery中removeClass()方法用法实例
Jan 05 Javascript
jquery+ajax实现跨域请求的方法
Jan 20 Javascript
angularJS 中input示例分享
Feb 09 Javascript
JavaScript编写简单的计算器
Nov 25 Javascript
JavaScript接口的实现三种方式(推荐)
Jun 14 Javascript
js实现文字选中分享功能
Jan 25 Javascript
BootStrap 弹出层代码
Feb 09 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
Mar 17 Javascript
Vue 使用typescript如何优雅的调用swagger API
Sep 01 Javascript
微信小程序实现电影App导航和轮播
Nov 30 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
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
js 省地市级联选择
2010/02/07 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
Python 元类使用说明
2009/12/18 Python
Python将xml和xsl转换为html的方法
2015/03/10 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
python实现石头剪刀布小游戏
2021/01/20 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
基于Python测试程序是否有错误
2020/05/16 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
html5唤起app的方法
2017/11/30 HTML / CSS
个人求职简历的自我评价范文
2013/10/09 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
PHP 时间处理类Carbon
2022/05/20 PHP
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python