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中数组Array的一些常用方法总结
Aug 12 Javascript
JavaScript使用concat连接数组的方法
Apr 06 Javascript
jQuery实现文本展开收缩特效
Jun 03 Javascript
JS实现环形进度条(从0到100%)效果
Jul 05 Javascript
Vue.js系列之项目结构说明(2)
Jan 03 Javascript
ECMAScript6变量的解构赋值实例详解
Sep 19 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
Dec 29 Javascript
vue项目中axios使用详解
Feb 07 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
Mar 02 Javascript
Angularjs中的$apply及优化使用详解
Jul 02 Javascript
echarts大屏字体自适应的方法步骤
Jul 12 Javascript
JavaScript实现点击切换功能
Jan 27 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相当简单的分页类
2008/10/02 PHP
PHP 类与构造函数解析
2017/02/06 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
PHP7 标准库修改
2021/03/09 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
AngularJS中scope的绑定策略实例分析
2017/10/30 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
python安装Scrapy图文教程
2017/08/14 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
python 利用turtle模块画出没有角的方格
2019/11/23 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
精彩的推荐信范文
2013/11/26 职场文书
2014组织生活会方案
2014/05/19 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js