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获取url参数的使用扩展实例
Dec 29 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
Jul 17 Javascript
使用jQuery模板来展现json数据的代码
Oct 22 Javascript
javascript继承之为什么要继承
Nov 10 Javascript
javascript自动改变文字大小和颜色的效果的小例子
Aug 02 Javascript
js判断输入是否为数字的具体实例
Aug 03 Javascript
JS中图片缓冲loading技术的实例代码
Aug 29 Javascript
javascript history对象详解
Feb 09 Javascript
深入理解vue2.0路由如何配置问题
Jul 18 Javascript
js实现加载页面就自动触发超链接的示例
Aug 31 Javascript
浅谈vant组件Picker 选择器选单选问题
Nov 04 Javascript
Vite和Vue CLI的优劣
Jan 30 Vue.js
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/07/08 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
destoon官方标签大全
2014/06/20 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
有趣的广告词
2014/03/18 职场文书
找工作求职信
2014/07/07 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
杜甫草堂导游词
2015/02/03 职场文书