美文网首页JS基础
JS面试题(概念题)

JS面试题(概念题)

作者: 凯凯frank | 来源:发表于2019-12-26 00:36 被阅读0次

1.call 和 apply异同

1)都是Fuction原型上的方法(每个方法的实例都能调用原型上的方法)
2)都是用来改变this指向,
区别:
call是一个个传参,apply是数组传参
(当参数多时,call的性能更好一点点,可以忽略不计....)

用法:

 fn.call(obj, param1, params2, params2)
 fn.apply(obj, [param1, params2, params2])

例子:

let arr = [1,2,3]
let obj = {}
function fn(x,y,z){}
fn.apply(obj, arr)// x=1, y=2, z=3
fn.call(obj, arr) //x=[1,2,3], y=undefined, z=undefined
fn.call(obj, ...arr) // es6展开运算符

2. 箭头函数和普通函数的区别是什么,箭头函数可以用new生成实例吗?

1). 箭头函数语法上比普通函数更加简洁

function fn(x){
    return function(y){
        return x + y
    }
}
var fn1 = x => y => x+ y

2). 箭头函数没有自己的this,他里面的this从属于函数所处的上下文(使用call、apply、bind等任何方式都无法改变this的指向)

var obj = { name: 'kkk'}
function fn(){
    console.log(this)
}
fn.call(obj) //fn函数中的this指向obj

var fn2 = ()=>{
    console.log(this)
}
fn2.call(obj) //fn2函数中的this指向window
fn2.bind(obj)() //fn2函数中的this指向window
document.body.onclick = () =>{
    //this指向 window, 不是当前的body元素
}
document.body.onclick = function(){
    //this指向body元素
    [2,3,1].sort(function(a ,b){
        //this => window, 回调函数中的this一般都是window
        return a - b;
    })
}

3). 箭头函数中没有arguments(类数组), 可以使用...arg获取参数集合(数组)

var fn = (...arg) => {
    console.log(args)
}
fn(1,2,3) // [1,2,3]

4). 箭头函数不能new(因为箭头函数没有this,也没有prototype )

3.说一说new的执行过程

function Person(name, age){
    this.name = name;
    this.age = age;
}
const obj = new Person('frank', 20)
  1. 创建一个新对象
  2. 将构造函数的作用域赋给新对象(this也指向这个新对象)
  3. 执行构造函数中的代码(为这个新对象添加属性)
  4. 返回新对象

4.说一说异步(EventLoop)

浏览器的事件循环(Event Loop)

5.说一说作用域和作用域链

作用域和作用域链

6.说一说浏览器的事件流

浏览器事件流

7.说一说浏览器的缓存机制

浏览器的缓存机制



点此查看JS面试题(算法篇)

未完待续


喜欢的朋友点个赞吧

相关文章

  • JS面试题(概念题)

    1.call 和 apply异同 1)都是Fuction原型上的方法(每个方法的实例都能调用原型上的方法)2)都是...

  • 那些年遇到的面试题

    腾讯面试题 据说是小米面试题 答案: 来自国外的一道题 一道经典面试题: 杂 1.JS数据类型有哪些?哪些是引用类...

  • 十道前端面试题第【03】篇

    摘要:本篇分享了10道面试题——Web性能优化方案、JS严格模式、五道算法题、自定义JS事件系统、输入URL到浏览...

  • js基础面试题

    面试题:延迟加载JS有哪些方式? 面试题:JS数据类型有哪些? 面试题:JS数据类型考题 考题一: 考题二: 面试...

  • Mysql笔试面试题.收集汇总

    整理的mysql面试题供大家参考:概念题相关[http://it.agr-api.com/mysql/exam/c...

  • java经典面试题

    整理汇总一些常用的面试题和大家share。概念题[http://it.agr-api.com/java/exam/...

  • 测试javascript基础能拿多少分

    测试一下你的Javascript基础能拿下多少分 非面试题,考察的都是js很基础的东西 l 填空题(第题1分) J...

  • 前端相关大杂烩

    前端基础面试题(JS部分) 前端基础面试题(JS部分)学习 React.js 比你想象的要简单 原文地址:Lear...

  • JS面试题(算法题)

    1. 数组扁平化 2.数据去重 3.对象的深拷贝 4.函数的节流和防抖 参考我写的另一篇 5.实现(5).add(...

  • 在Nodejs或浏览器运行ESM代码

    前言 经典面试题目就是《Common.js和ES module的区别》,这一题很多人都会熟练地背出答案。 Comm...

网友评论

    本文标题:JS面试题(概念题)

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