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控件autocomplete 0.11演示及下载 1月5日已更新
Jan 09 Javascript
JavaScript库 开发规则
Jan 31 Javascript
javascript 同时在IE和FireFox获取KeyCode的代码
Feb 07 Javascript
JQury slideToggle闪烁问题及解决办法
Jul 05 Javascript
JQuery拖拽元素改变大小尺寸实现代码
Dec 10 Javascript
JS弹出窗口代码大全(详细整理)
Dec 21 Javascript
js实现上传图片之上传前预览图片
Mar 25 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 Javascript
使用JavaScript为一张图片设置备选路径的方法
Jan 04 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
Jan 13 Javascript
AngularJS实现表格的增删改查(仅限前端)
Jul 04 Javascript
JavaScript实现无刷新上传预览图片功能
Aug 02 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 $_SERVER详解
2009/01/16 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
Angular 应用技巧总结
2016/09/14 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python对象属性自动更新操作示例
2018/06/15 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
设计毕业生简历中的自我评价
2013/10/01 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
大专学生求职信
2014/07/04 职场文书
爱牙日活动总结
2014/08/29 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书