1. react中的setState是同步还是异步?

setState到底是异步还是同步?_卖菜的小白的博客-CSDN博客_this.setstate是同步还是异步

总结:

React会将多个setState的调用合并为一个来执行,也就是说,当执行setState的时候,state中的数据并不会马上更新。

可以通过回调函数来获得更新后的数据。

setState本身并不是异步,只是因为react的性能优化机制体现为异步。在react的生命周期函数或者作用域下为异步,在原生的环境下为同步。

要解决这个问题,可以让 setState() 接收一个函数而不是一个对象。这个函数用上一个 state 作为第一个参数,将此次更新被应用时的 props 做为第二个参数-----react官网 State & 生命周期 – React。

2. 什么是高阶组件,请举例说明?

高阶组件就是一个函数,且该函数接受一个组件作为参数,并返回一个新的组件。基本上,这是从React的组成性质派生的一种模式,我们称它们为 “纯”组件, 因为它们可以接受任何动态提供的子组件,但它们不会修改或复制其输入组件的任何行为。

const EnhancedComponent = higherOrderComponent(WrappedComponent);
  • 高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧
  • 高阶组件的参数为一个组件返回一个新的组件
  • 组件是将 props 转换为 UI,而高阶组件是将组件转换为另一个组件

举例:在使用react-redux框架的时候,有一个connect的概念,这里的connect其实就是一个高阶组件。也包括类似react-router-dom中的withRouter的概念。

3. 解释一下原型链

什么是原型链?超详细讲解_偏居闹市背后的博客-CSDN博客_原型链的定义

。 

4. instanceof原理

https://www.jianshu.com/p/00244783a0b5

instanceof 是通常用于检测某个实例对象是否是这个构造函数的实例。

构造函数的prototype 属性指向 这个构造器的原型对象,实例对象的proto指向的也是原型对象。即 p1.proto === P.prototype 为true就代表是它的实例。

5. apply和call的作用及区别?

https://www.jianshu.com/p/26193e4573b5

6. position有哪些值?作用分别是什么?

static,relative,absolute,fixed

position有哪些值?分别有什么作用?_熏猿先森的博客-CSDN博客_position的值

7. 说一下你对DOM树的理解?

什么是DOM?你了解DOM树吗?_二哈汪汪叫的博客-CSDN博客_dom树

8. 重排和重绘是什么,有什么区别?

重绘和重排的区别_野生松的博客-CSDN博客_重排和重绘的区别

9. https加密过程是怎样的?----看不懂

HTTPS加密过程详解_兴涛的博客-CSDN博客_https加密过程

累了,真的看不懂就算了。。放弃。

10. 实现add(1)(2)(3)

实现add(1)(2)(3)_xianghong_yang的博客-CSDN博客_add(1)(2)(3)

参数长度不固定的时候,代码修改一下才对,如下:

function add(...args){return args.reduce((a,b)=> a+b);
};
function currying(fn){let args=[]return function temp(...newArgs){if(newArgs.length){args = [...args, ...newArgs]return temp} else {console.log(args)let val = fn.apply(this, args)args = []return val}}
}
let addCurry = currying(add);
console.log(addCurry(1)(2)(3)(4, 5)());
console.log(addCurry(1)(2)(3, 4, 5)());
console.log(addCurry(1)(2, 3, 4, 5)());

11. react为什么需要有合成事件?

如果react事件绑定在了真实DOM节点上,一个节点同事有多个事件时,页面的响应和内存的占用会受到很大的影响。因此SyntheticEvent作为
中间层出现了。

ref:react合成事件和DOM原生事件的区别_jiuwanli666的博客-CSDN博客_react合成事件和原生事件的区别

12. 为什么有时候react两次setState只执行一次?

React中setState的怪异行为 ——setState没有即时生效_小敏哥的博客-CSDN博客_setstate什么时候生效

13. redux有哪些原则?---需要再看一下redux的api叫啥

Redux的基本原则_Anita-Sun的博客-CSDN博客_redux原则约束

14. es5实现继承---难

7种方法实现ES5中的继承_六叶草~的博客-CSDN博客_es5继承

第五点正解。其他的看看缺点是啥就好。

15. 实现一个promise---我废了。

简单实现一个promise_吴大宝。的博客-CSDN博客_实现一个promise

16. 强制缓存和协商缓存?

  • 强制缓存是浏览器 自导自演 的行为,发起请求时看该文件是否过期,没过期直接使用。
  • 协商缓存是浏览器发现文件过期了,需要和 服务器端通讯 ,让服务器判断是否过期,没过期就还是用浏览器缓存,过期了就用服务器新返回的文件。

根据返回头部里的内容来决定:

当 expires和 cache-control都存在, cache-control优先级高。expires可能会有时区导致的事件不同的问题。

17. 判断链表中是否有环

判断链表中是否有环_SimpleTuT的博客-CSDN博客_判断链表中是否有环

18. 虚拟dom和真实dom

虚拟dom (virtual dom)(vnode)_一月清辉的博客-CSDN博客_虚拟dom

前端面试问题集锦(1)相关推荐

  1. Web前端面试问题集锦

    天坑专业转行开始找实习啦,自己水平不够,边看别人的面经边总结相关的知识吧. 一. HTML/5 二. CSS/3 2.0 盒模型 [面试题解]CSS盒子模型与margin负值 - 掘金 2.1 有很多 ...

  2. 2018实用前端面试问题集锦

    1. 常用那几种浏览器测试?有哪些内核(Layout Engine)? (Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera. (Q2) 内核:Trident,Gecko,P ...

  3. GitHub 上 100K+ Star 的前端面试开源项目汇总(进大厂必备)

    https://github.com/InterviewMap/CS-Interview-Knowledge-Map 建立最好的面试地图.目前的内容包括js.网络.浏览器相关.性能优化.安全性.框架. ...

  4. 前端面试官,我为什么讨厌你。

    近两年来,参加过的前端面试不下二十场了,吐槽一下.我所经历的,都是小公司,大公司的同学请无视. 招聘信息能否不要装逼?写一大堆你项目根本用不上的,来给谁看?我曾遇到上面写了一堆对js如何要求,对mv* ...

  5. 前端面试的作品示例_如何回答任何技术面试问题-包括示例

    前端面试的作品示例 Technical interviews can be extremely daunting. From the beginning of each question to the ...

  6. Web前端面试自我介绍对话技巧注意事项

    大家在学会了web前端技术后,当然是要准备找一个适合自己的web前端工作了,那么面试环节是必不可少的,有一个良好的自我介绍表述,在HR心中也能加分不少,接下来小编就为大家介绍一下Web前端面试自我介绍 ...

  7. 那些巨头公司的前端面试都喜欢问些什么?

    在过去的几年里,我在亚马逊和雅虎面试过很多专注于前端开发的Web开发者和软件工程师,在这篇文章中,我想分享一些面试技巧,帮助候选人为面试做好准备. 免责声明--本文并非旨在列出在前端面试中可能会被问到 ...

  8. 前端面试查漏补缺--(一) 防抖和节流

    前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...

  9. 校招社招必备核心前端面试问题与详细解答

    本文总结了前端老司机经常问题的一些问题并结合个人总结给出了比较详尽的答案.网易阿里腾讯校招社招必备知识点. 原理讲解参考:前端增长-重新定义大前端 在线课程:网易云课堂课程      思否课堂 官方博 ...

最新文章

  1. Windows Server 2003 网络互访新特性
  2. MySQL—事务及其特征
  3. Data Vault的一点思考(二)
  4. 在服务器生成ssl认证
  5. 郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(三)SVD...
  6. 视频+课件|基于多视图几何方式的三维重建
  7. html限制显示字数其余用...代替,html实现钝角效果;html实现限制一行字数的显示,超出的部分用省略号(....)来代替...
  8. 我的世界java启动失败_我的世界游戏启动失败怎么办 PC版游戏崩溃解决办法
  9. 三维数字沙盘电子沙盘MR AR VR虚拟现实无人机倾斜摄影三维全景建模卫星图片矢量
  10. 用c语言实现BF算法
  11. 并非单纯怀旧 美图秀秀打造华丽复古色调
  12. 影视/动漫 短视频专栏来啦!
  13. MNIST数据集手写数字识别
  14. 英语语法三大从句刷题总结
  15. 华为服务器进入系统怎么退出安全模式,华为手机怎么进入和退出安全模式?华为手机进入安全模式按哪个键...
  16. 1024凑数篇之程序员职业生涯问答
  17. SVG夜晚床月亮场景代码
  18. python判断素数程序_python素数判断
  19. meter进度条 不同颜色
  20. 一零四、前端性能优化详解

热门文章

  1. 没有任何基础的纯小白cad能学会吗?
  2. Android逆向系列--JDWP协议
  3. ffmpeg RSTP基于Html5视频监控直播 工业设备健康度检测应用
  4. 地铁框架保护的原理_地铁直流框架保护原理及应急处理程序
  5. mac实时麦克风_如何在Mac上选择麦克风
  6. 关于门户网站设计方案
  7. onsubmit 事件
  8. 详解python重采样与频率转换之resample()
  9. mysql中别名(列别名和表别名)
  10. 用触摸屏来实现距离传感器的功能