JS--函数表达式

作者: FeRookie | 来源:发表于2017-02-06 23:03 被阅读76次

定义函数有两种方式:一种是函数声明,一种是函数表达式

函数声明的方式:是由function关键字,然后是函数名指定函数的方式。(FF、Safari、chrome、opera都给函数指定了一个非标准name属性,通过这个属性可以访问到给定函数指定的名字。)

关于函数声明,有个重要特征就是函数声明提升。意思是在执行代码之前,会先读取函数声明。这就意味着函数执行可以放在函数声明之前执行。

sayHi()

function Sayhi(){

//函数体

}

函数表达式的方式:先说一种常见的写法

var fnName = function() {

//函数体

}

这种情况下创建的函数叫做匿名函数(又叫做拉姆达函数),匿名函数的name属性值为空字符串。

注意:函数表达式和其他表达式一样,在使用前必须赋值,如下(不要这样去做)

fnName()

var fnName = function Sayhi(){

//函数体

}

理解函数提升的关键,就是理解函数声明与函数表达式之间的区别。

下面举一个例子:

if(condition){

function say(){

alert(1)

}

}else{

function say(){

alert(2)

}

}

如上写法,大多数浏览器会返回第二个函数声明,但是FF会在condition为true的时候返回第一个函数声明。这样做是很危险的行为。如果改为以下的写法就可以了。

var say;

if(condition){

say = function (){

alert(1)

}

}else{

say = function (){

alert(2)

}

}

相关文章

  • JS--函数表达式

    定义函数有两种方式:一种是函数声明,一种是函数表达式。 函数声明的方式:是由function关键字,然后是函数名指...

  • JS--函数

    JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用了关键词 function: 当调用该函数...

  • js--函数

    函数内部声明的所有变量会被提升到函数最开始的地方,并且函数域会覆盖全局域 等同于: 即时函数 不会产生任何全局变量...

  • JS--函数

    JS--函数 函数的定义 方式一 方式二 注意点:一,函数可以传入任意个数个参数,且不会影响函数的调用:例如对于上...

  • JS--函数

    函数声明和函数表达式有什么区别 函数声明: 函数表达式: 以上为两者写法的区别。由名称可以看出 “函数表达式” 的...

  • JS--函数

    函数 基本写法 带参数的函数 带有返回值的函数 备注 JavaScript 对大小写敏感 函数内部声明的变量是局部...

  • 函数与作用域

    函数声明和函数表达式有什么区别 函数声明 函数表达式 区别 函数表达式结束后需要加;表示声明变量结束。 函数表达式...

  • 函数

    函数声明和函数表达式有什么区别 函数声明 函数表达式 函数声明和函数表达式的区别: 函数声明必须给定函数名称,函数...

  • JS一些基础小知识

    函数表达式 函数声明:function a(){ ... }函数表达式:var a = function() {....

  • Kotlin(一)

    函数 函数定义 默认参数 //匿名函数 //表达式函数 //(Int,Int)->Int //lambda表达式,...

网友评论

  • 006c3a9a9439:你好,请教一下:
    如上写法,大多数浏览器会返回第二个函数声明,但是FF会在condition为true的时候返回第一个函数声明。这样做是很危险的行为。如果改为以下的写法就可以了。

    为什么说是危险的行为?:smile:
    FeRookie:不觉得形象生动么:smile:

本文标题:JS--函数表达式

本文链接:https://www.haomeiwen.com/subject/vkauittx.html