美文网首页
26 进阶:函数

26 进阶:函数

作者: Ga611 | 来源:发表于2019-02-27 15:01 被阅读0次

    课堂笔记

    • 函数的声明方法
    1.function f(){}
    2.var f = function(){}
    3.var x = function y(){}
    //当函数y被赋值给变量x之后,y这个变量的作用域就只存在与函数内部,在函数外部y不再可以被访问
    4. 箭头函数: (x,y)=>{return x+y}
    5.var f = new Function('x','y','return x+y')
    

    需要注意的是,箭头函数内部的this没有特殊含义,就像一个一般变量一样,如下面代码

    var a = {
        b:{
            c:()=>{console.log(this)},
            d:function(){console.log(this)}
           }
    }
    a.b.c()//Window
    a.b.d()//b
    
    • name属性
    var x = function y(){}
    x.name === 'y' //true
    var f = new Function('x','y','return x+y')
    f.name // 'anonymous'
    
    • 函数在内存中实际的内容以字符串的形式存在(见纸质笔记)
    • 答案为 undefined

    函数有自己的作用域。它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。

    • image.png
    for(let i=0;i<li.length;i++){
      li.onclick = function(){console.log(i)}
    }
    

    当<li>被点击时,打印出的值为6。代码执行for循环为每个<li>绑定函数,函数执行的时候for 循环已经结束。

    image.png
    • 普通模式下,给call()传入的第一个参数,会被封装成对象
    function f(){console.log(this)}
    f.call(1) // Number{1}
    f.call('s') //String {"s"}
    f.call(true) //Boolean {true}
    
    • 易错习题


      image.png
    image.png image.png

    相关文章

      网友评论

          本文标题:26 进阶:函数

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