JS进阶面试题整理(仅仅整理我做错的题)

    前几天看到掘金博客一篇文章,找到了这个JavaScript进阶问题列表:现在把地址贴出来,想找工作或者想要巩固自己JS的同学可以参考

              该文档会不定时更新

     一、箭头函数

    箭头函数相当于匿名函数,并且简化了函数的定义。它最大的有点是解决了this执行环境造成的一些问题。最常见的就是在setTimeout和setInterval中使用this造成的问题

    在“use strict” 严格模式下,没有直接的调用者的函数中this是指向window的,这个是约定俗成的。在“use strict”严格模式下,没有直接的挂载者的话,this指向是undefined;在非严格模式下,this指向的是函数的执行上下文

  二、普通函数  

    普通函数,this是JS的一个关键词,它是函数执行过程中自动生成的一个内部对象,是指的当前对象,只在当前函数内部使用。

     this对象是在运行时基于函数执行的环境来说的,在全局调用时,this指向window。当函数作为某个对象的方法被调用的时候,this指向这个对象

    在上述的代码中,

const shape = {
    radius:10,
    diameter(){
        return this.radius * 2
    },
    perimeter:()=>2*Math.PI * this.radius
}
shape.diameter()
shape.perimeter()

   函数diameter的值是一个常规函数,但是permeter的值是一个箭头函数;考点在于普通常规函数和箭头函数的区别

 函数diameter中,this指向的是shape这个对象,所以shape.diameter()这个函数输出来的是20

函数perimeter中,this指向是window,在window中,没有radius这个变量,所以这个函数输出的是undefined

================================================================================================

 

 

 

 

 

上一篇:HYSBZ 3124 直径


下一篇:Codeforces - Minimum Diameter Tree