详解函数声明VS函数表达式
函数声明
比方如下:1.我们以一个完整的语句以function开头,不加任何东西。
2.有一个函数名(add)
3.参数可带可不带(x,y)
4.有一个数体
满足以上要求的我们统称为函数声明!
附加小知识点:
定义和用法
isNaN() 函数用于检查其参数是否是非数字值。
语法
isNaN(x)
<body>
<script>
function add(x,y){
if(isNaN(x) || isNaN(y)){
return //不执行任何东西
}
return x+y //上面判断返回FALSE,则执行返回x+y
}
alert(add(1,2)) //=>输出3
</script> </body>
函数表达式:
1.匿名函数表达式
赋值给变量的匿名函数表达式:
一 .没有函数名
<script>
var add =function(){
//do something
}
</script>
2.立即执行的函数表达式
一.没有函数名,可以立即执行, 不用被调用
<script>
(function(){
//do something
})()
</script>
3.可以把函数对像作为返回执
<script>
return function(){
//something
}
</script>
4.命名式函数表达式
<script>
var add = function foo(a,b){
//do something
}
</script>
详解函数声明VS函数表达式的更多相关文章
- javascript:function 函数声明和函数表达式 详解
函数声明(缩写为FD)是这样一种函数: 有一个特定的名称 在源码中的位置:要么处于程序级(Program level),要么处于其它函数的主体(FunctionBody)中 在进入上下文阶段创建 影响 ...
- 详解Javascript 函数声明和函数表达式的区别
Javascript Function无处不在,而且功能强大!通过Javascript函数可以让JS具有面向对象的一些特征,实现封装.继承等,也可以让代码得到复用.但事物都有两面性,Javascrip ...
- javascript中函数声明和函数表达式浅析
记得在面试腾讯实习生的时候,面试官问了我这样一道问题. //下述两种声明方式有什么不同 function foo(){}; var bar = function foo(){}; 当初只知道两种声明方 ...
- JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别
函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...
- JS中函数声明与函数表达式的不同
Js中的函数声明是指下面的形式: function functionName(){ } 这样的方式来声明一个函数,而函数表达式则是类似表达式那样来声明一个函数,如 var functionName ...
- javascript 函数声明与函数表达式的区别
先看一段代码 var f = function g() { return 1; }; if (false) { f = function g(){ return 2; }; } alert(g()); ...
- Javascript函数声明与函数表达式
在定义函数时,我们一般使用下面这两种方法: 使用函数声明定义: function sum (a, b) { return a + b; } 使用函数表达式定义: var sum = function ...
- IE6 IE7 IE8 的函数声明和函数表达式的实现与其他浏览器有差异
标准参考 函数声明和函数表达式 定义一个函数有两种途径:函数声明和函数表达式. 函数声明: function Identifier ( FormalParameterList opt ) { Func ...
- 【JavaScript】Javascript中的函数声明和函数表达式
Javascript有很多有趣的用法,在Google Code Search里能找到不少,举一个例子: <script> ~function() { alert("hello, ...
- javaScript的函数(Function)对象的声明(@包括函数声明和函数表达式)
写作缘由: 平时再用js写函数的时候,一般都是以惯例 function fn () {} 的方式来声明一个函数,在阅读一些优秀插件的时候又不免见到 var fn = function () {} 这种 ...
随机推荐
- macbook pro install ubuntu
https://help.ubuntu.com/community/MacBookPro Determine your hardware revision To determine which ver ...
- OPC客户端的进程安全初始化
现场OPC客户端无法获取远程OPC Server列表,也无法连接OPC Server,经查调用CoCreateInstanceEx()创建IID_IOPCServerList接口正常,但调用IOPCS ...
- JAVA数据类型与DB2、Oracle、Sybase以及SQL Server对应关系
java.sql.Types Java IBM DB2 Oracle Sybase SQL-SERVER BIGINT java.lang.long BIGINT NUMBER (38, ...
- 在hibernate中使用SQL语句
- 覆盖equals的时候总要覆盖hashCode
import java.util.HashMap; public class Student { private String name ; private String id; public Stu ...
- Change Fragment layout on orientation change
Warning: this may be a pre-Lollipop answer. A Fragment doesn't get re-inflated on configuration chan ...
- Eclipse打开当前所属文件所在windows中的文件夹
1.Eclipse设置 依次展开如下菜单: Run ---- External Tools ---- External Tools Configurations 在 program 下面新 ...
- CSS块级元素、内联元素概念
CSS文档流与块级元素(block).内联元素(inline),之前翻阅不少书籍,看过不少文章, 看到所多的是零碎的CSS布局基本知识,比较表面.看过O'Reilly的<CSS权威指南>, ...
- 【Android】广播BrocastReceiver
1.Android中广播主要分为两种:标准广播和有序广播. 标准广播:完全异步执行.广播发出后,所有的广播接收器几乎在同一刻收到广播事件,没有先后顺序之分. 优点:效率高 缺点:不能被截断 有序广播: ...
- 关于echarts绘图,主题的更换
echarts主题进行更换步骤: 模块化单文件引入(推荐) 1.查看自己想要的主题 echarts官网 http://echarts.baidu.com/echarts2/doc/example/t ...