JS中创建函数的三种方式及区别
2016-04-26 17:00
393 查看
1.函数声明
?
2.函数表达式,又叫函数字面量
?
两者的区别:解析器会先读取函数声明,并使其在执行任何代码之前可以访问;而函数表达式则必须等到解析器执行到它所在的代码行才会真正被解释执行。
自执行函数严格来说也叫函数表达式,它主要用于创建一个新的作用域,在此作用域内声明的变量,不会和其它作用域内的变量冲突或混淆,大多是以匿名函数方式存在,且立即自动执行。
?
另外几种自执行函数:
?
3.函数构造法,参数必须加引号
?
从技术角度讲,这是一个函数表达式。一般不推荐用这种方法定义函数,因为这种语法会导致解析两次代码(第一次是解析常规ECMAScript代码,第二次是解析传入构造函数中的字符串),从而影响性能。
?
Function()构造函数每次执行时都会解析函数主体,并创建一个新的函数对象,所以当在一个循环或频繁执行的函数中调用Function()构造函数效率是非常低的。而函数字面量却不是每次遇到都会重新编译的,用Function()构造函数创建一个函数时并不遵循典型的作用域,它一直把它当作是顶级函数来执行。
?
?
自执行函数严格来说也叫函数表达式,它主要用于创建一个新的作用域,在此作用域内声明的变量,不会和其它作用域内的变量冲突或混淆,大多是以匿名函数方式存在,且立即自动执行。
?
?
?
?
相关文章推荐
- ADF运行jsp的时候出现 JSP scriptlets will not work properly if using OJSP
- javascript实例——文本特效篇(包含3个小例子)
- JSR303数据校验
- javascript——base64
- JavaScript绑定事件的方法[3种]
- d3.js——集群图的绘制
- POST+JSON+XML
- JavaScript原型与原型链学习笔记
- Javascript模块化编程
- jsp页面之间用?传值
- javascript知识点记录(2)
- [javascript] 看知乎学习js闭包
- 发布项目,加入CRUD功能
- js修改浏览器url
- JS树-深度遍历和广度遍历
- javascript的this的三种使用方式
- JS二叉树的遍历(前序,中序,后序)
- 读书时间《JavaScript高级程序设计》五:DOM
- extremecomponents在web中的使用
- JavaScript基础