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 相关文章推荐
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
Aug 13 Javascript
javascript prototype,executing,context,closure
Dec 24 Javascript
对于this和$(this)的个人理解
Sep 08 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
Jul 18 Javascript
使用js获取图片原始尺寸
Dec 03 Javascript
详细分析使用AngularJS编程中提交表单的方式
Jun 19 Javascript
js实现数组冒泡排序、快速排序原理
Mar 08 Javascript
Node.js中多进程模块Cluster的介绍与使用
May 27 Javascript
Vue.js项目模板搭建图文教程
Sep 20 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 Javascript
KOA+egg.js集成kafka消息队列的示例
Nov 09 Javascript
node.js处理前端提交的GET请求
Aug 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
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
js对数字的格式化使用说明
2011/01/12 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
Python httplib模块使用实例
2015/04/11 Python
基于python实现的抓取腾讯视频所有电影的爬虫
2016/04/22 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
tf.truncated_normal与tf.random_normal的详细用法
2018/03/05 Python
python中单下划线_的常见用法总结
2018/07/10 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
深入了解python中元类的相关知识
2019/08/29 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
小加工厂管理制度
2014/01/21 职场文书
交通事故协议书
2014/04/15 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
政风行风整改报告
2014/11/06 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书
JS数组方法some、every和find的使用详情
2021/10/05 Javascript
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL