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 相关文章推荐
JQuery读取XML文件数据并显示的实现代码
Dec 16 Javascript
javascript函数以及基础写法100多条实用整理
Jan 13 Javascript
js中的eventType事件及其浏览器支持性介绍
Nov 29 Javascript
jquery实现动态操作select选中
Feb 11 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
Jan 04 Javascript
JavaScript原型及原型链终极详解
Jan 04 Javascript
jQuery ajax时间差导致的变量赋值问题分析
Jan 22 Javascript
Angular学习笔记之angular的$filter服务浅析
Nov 12 Javascript
jQuery点击导航栏选中更换样式的实现代码
Jan 23 Javascript
微信小程序中上传图片并进行压缩的实现代码
Aug 28 Javascript
ES6中定义类和对象的方法示例
Jul 31 Javascript
ES5新增数组的实现方法
May 12 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正确配置mysql(apache环境)
2011/08/28 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
vue2.0 路由模式mode="history"的作用
2018/10/18 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
vue实现购物车选择功能
2020/01/10 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
python 从远程服务器下载日志文件的程序
2013/02/10 Python
用实例解释Python中的继承和多态的概念
2015/04/27 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
python实现可视化动态CPU性能监控
2018/06/21 Python
python重试装饰器的简单实现方法
2019/01/31 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
详解python with 上下文管理器
2020/09/02 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
优质的学校老师推荐信
2013/10/28 职场文书
工作表扬信的范文
2014/01/10 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
小学校长个人总结
2015/03/03 职场文书
班主任开场白
2015/06/01 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers