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 相关文章推荐
使用Mootools动态添加Css样式表代码,兼容各浏览器
Dec 12 Javascript
img onload事件绑定各浏览器均可执行
Dec 19 Javascript
JavaScript打印iframe内容示例代码
Aug 20 Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 Javascript
jQuery中:gt选择器用法实例
Dec 29 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
May 28 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
Aug 01 Javascript
JavaScript面向对象编写购物车功能
Aug 19 Javascript
Javascript动画效果(4)
Oct 11 Javascript
实例解析angularjs的filter过滤器
Dec 14 Javascript
Scala解析Json字符串的实例详解
Oct 11 Javascript
使用vue-router在Vue页面之间传递数据的方法
Jul 15 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 获取远程网页内容的函数
2009/09/08 PHP
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
PHP如何利用P3P实现跨域
2013/08/24 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
用JAVASCRIPT如何给<textarea></textarea>赋值
2007/04/20 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
js数组实现权重概率分配
2017/09/12 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
Python中操作MySQL入门实例
2015/02/08 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
Python线程创建和终止实例代码
2018/01/20 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
python 对key为时间的dict排序方法
2018/10/17 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
轻化专业学生实习自我鉴定
2013/09/20 职场文书
工程售后服务方案
2014/06/08 职场文书
法学院毕业生求职信
2014/06/25 职场文书
聊聊redis-dump工具安装问题
2022/01/18 Redis
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫