美文网首页
js中的函数

js中的函数

作者: icaojinyu | 来源:发表于2019-01-28 11:08 被阅读0次

    1. 函数的重复声明

    • 如果同一个函数被多次声明,后面的声明就会覆盖前面的声明。

    2. 递归

    • 计算斐波那契数列
    function fn(n) {
      if (n === 0) return 1
      if (n === 1) return 1
      return fn(n - 1) + fn(n - 2)
    }
    
    console.log(fn(6)) // 13
    

    3. 函数声明和函数表达式

    • 因为js存在预解析,即函数声明会被提升,所以如果同时采用function命令和赋值语句声明同一个函数,最后总是采用赋值语句的定义。
    function fn() {
      console.log(2)
    }
    var fn = () => {
      console.log(1)
    }
    fn() // 1
    

    4. 函数的属性和方法

    • name属性:返回函数的名字
    • length属性:返回函数预期传入的参数个数,即函数定义之中的参数个数
    • toString方法:返回一个字符串,内容是函数的源码

    5. 函数本身的作用域

    • 函数执行时所在的作用域,是定义时的作用域,而不是调用时所在的作用域
    • 函数体内部声明的函数,作用域绑定函数体内部
    var a = 1
    var x = function () {
      console.log(a)
    }
    function f() {
      var a = 2
      x()
    }
    f() // 1
    

    6. 同名参数

    • 如果有同名的参数,则取最后出现的那个值
    function f(a, a) {
      console.log(a)
    }
    
    f(1, 2) // 2
    

    7. arguments对象

    • arguments对象是函数实参的集合,这个对象只有在函数体内部,才可以使用

    8. eval

    • eval命令接受一个字符串作为参数,并将这个字符串当作语句执行
    • eval的本质是在当前作用域之中,注入代码。由于安全风险和不利于 JavaScript 引擎优化执行速度,所以一般不推荐使用
    eval('var a = 1;')
    console.log(a) // 1
    

    相关文章

      网友评论

          本文标题:js中的函数

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