JS进阶面试题整理(仅仅整理我做错的题)
Posted bllx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
================================================================================================
2、一元操作符将Boolean类型转为数字类型;true转化为Number类型是1
console.log(+true)//1 console.log(-true)//-1
以上是关于JS进阶面试题整理(仅仅整理我做错的题)的主要内容,如果未能解决你的问题,请参考以下文章
经典js闭包----对《大部分人都会做错的经典JS闭包面试题》的理解