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与vbscript数据共享
Jan 09 Javascript
functional继承模式 摘自javascript:the good parts
Jun 20 Javascript
jquery 淡入淡出效果的简单实现
Feb 07 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
webpack+vue.js快速入门教程
Oct 12 Javascript
js实现倒计时及时间对象
Nov 15 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
AngularJS的Filter的示例详解
Mar 07 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
Nov 22 Javascript
Angular实现的简单查询天气预报功能示例
Dec 27 Javascript
详解如何从零开始搭建Express+Vue开发环境
Jul 17 Javascript
微信小程序云开发实现云数据库读写权限
May 17 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初学者最感迷茫的问题小结
2010/03/27 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
用javascript实现画板的代码
2007/09/05 Javascript
jQuery 技巧小结
2010/04/02 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
简单了解什么是神经网络
2017/12/23 Python
python中join()方法介绍
2018/10/11 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
常见的软件开发流程有哪些
2015/11/14 面试题
护理学毕业生自荐信
2013/10/02 职场文书
学生自我鉴定
2013/12/18 职场文书
高中学校对照检查材料
2014/08/31 职场文书
股指期货心得体会
2014/09/10 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
幼儿园三八妇女节活动总结
2015/02/06 职场文书
升职自荐信范文
2015/03/27 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书