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 event事件的传递与冒泡处理
Dec 06 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
Dec 27 Javascript
Extjs入门之动态加载树代码
Apr 09 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
May 03 Javascript
jQuery 常见操作实现方式和常用函数方法总结
May 06 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
Jan 09 Javascript
Vue中的$set的使用实例代码
Oct 08 Javascript
小程序点击图片实现自动播放视频
May 29 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 Javascript
Vue中JS动画与Velocity.js的结合使用
Feb 13 Javascript
微信小程序+云开发实现欢迎登录注册
May 24 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下使用以下代码连接并测试
2008/04/09 PHP
ThinkPHP查询返回简单字段数组的方法
2014/08/25 PHP
浅谈php和.net的区别
2014/09/28 PHP
php购物车实现方法
2015/01/03 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
js opener的使用详解
2014/01/11 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
[01:52]PWL S2开团时刻第四期——DOTA2成语故事
2020/12/03 DOTA
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
Django 用户认证组件使用详解
2019/07/23 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
python文件和文件夹复制函数
2020/02/07 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
应用英语专业自荐信
2014/01/26 职场文书
前处理组长岗位职责
2014/03/01 职场文书
2014年度安全工作总结
2014/12/04 职场文书
2015年中秋节主持词
2015/07/30 职场文书
2016公司新年问候语
2015/11/11 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书