GithubHelp home page GithubHelp logo

devnote's Introduction

shuaiqiang.wang

devnote's People

Contributors

chanchunlei avatar dependabot[bot] avatar wsqww avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

devnote's Issues

RxJs 题目汇总

基本介绍

解决异步编程的应用库;
基于可观测数据流 Stream 结合观察者模式和迭代器模式实现。

在 RxJS 中用来解决异步事件管理的的基本概念是:

  1. Observable (可观察对象): 表示一个概念,这个概念是一个可调用的未来值或事件的集合。
  2. Observer (观察者): 一个回调函数的集合,它知道如何去监听由 Observable 提供的值。
  3. Subscription (订阅): 表示 Observable 的执行,主要用于取消 Observable 的执行。
  4. Operators (操作符): 采用函数式编程风格的纯函数 (pure function),使用像 map、filter、concat、flatMap 等这样的操作符来处理集合。
  5. Subject (主体): 相当于 EventEmitter,并且是将值或事件多路推送给多个 Observer 的唯一方式。
  6. Schedulers (调度器): 用来控制并发并且是**集权的调度员,允许我们在发生计算时进行协调,例如 setTimeout 或 requestAnimationFrame 或其他。

HT面试经历

下边是HT面试过的公司,以及问到的问题。

申通快递

一面

  1. Dva是怎么进行数据管理的?
  2. 浏览器的缓存方式有哪些?
  3. 强缓存和弱缓存分别是什么?
  4. 什么是重绘和回流?
  5. vdom和真实dom有什么区别?
  6. 如何更新vdom?更新vdom的机制是什么?
  7. css的BFC是什么?
  8. 介绍一下弹性布局?
  9. content-box和border-box有什么区别?默认是那个?
  10. js的原型和原型链分别是什么?
  11. 构造函数和它的父对象是怎么建立联系的?
  12. js闭包是什么?
  13. 闭包有什么优点?
  14. 为什么会用闭包?
  15. 闭包为什么会有内存泄漏?
  16. 你是怎么知道闭包有内存泄漏的?
  17. 内存泄漏怎么解决?
  18. async await和Promise有什么区别?
  19. Promise是异步的还是.then是异步的?
  20. 简单写一个Promise
  21. Promise内try catch的catch走到了哪里?
  22. Promise是如何实现链式调用的?
  23. 如果Promise.then里继续return一个Promise得到的结果是什么?
  24. 比较常用的webpack插件都有哪些?
  25. babel的工作原理是什么?
  26. babel是提供语法还是转换成浏览器可以识别的语法?
  27. babel是如何转换语法的?

defer和async的区别

在script标签内有这两个属性async和defer,例如<script src="./home.js" async defer></script>

defer:中文意思是延迟。用途是表示脚本会被延迟到整个页面都解析完毕后再运行。因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。HTML5规范要求脚本按照它们出现的先后顺序执行,因此第一个延迟脚本会先于第二个延迟脚本执行,但执行脚本之间存在依赖,需要有执行的先后顺序时,就可以使用defer,延迟执行。我觉得把script脚本放在body底部和defer差不多。

async:中文意思是异步,这个属性与defer类似,都用于改变处理脚本的行为。同样与defer类似,async只适用于外部脚本文件,并告诉浏览器立即下载文件,当下载完成时,立即执行脚本。但与defer不同的是,标记为async的脚本并不保证按照它们的先后顺序执行
指定async属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容,这使用于之间互不依赖的各脚本。

当网页交给浏览器的HTML解析器转变成一系列的词语(Token)。解释器根据词语构建节点(Node),形成DOM树。因为JavaScript代码可能会修改DOM树的结构,所以节点是JavaScript代码的话,就需要停止当前DOM树的创建,直到JavaScript的资源加载并被JavaScript引擎执行后才继续DOM树的创建。
这里就会产生阻塞,出现白屏问题(白屏问题优化有很多方面,这里就脚本阻塞这一小点),我们就可以使用async和defer属性来解决JavaScript脚本阻塞问题。
当然最稳妥的办法还是把script标签放置在body的底部,没有兼容性问题,不会因此产生白屏问题,没有执行顺序问题。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.