跳至主要內容
浏览器的工作原理

浏览器的进程模型

1.事件循环

浏览器的进程模型--多进程多线程的应用程序

  • 进程:程序运行需要有他自己的专属空间,这块空间就称之为进程!!!

进程之间相互独立,通信需要双方同意

  • 线程:一个进程至少有一个线程,是操作系统能够进行运算调度的最小单位。是进程中实际运作单位。主线程:进程开启后会自动创建一个线程来运行代码

浏览器主要有三个进程:浏览器进程,网络进程,渲染进程,

单线程是异步产生的原因,事件循环是异步的实现方式


pinia原创大约 12 分钟chromechrome面试题
01.node之学习之路
  • Node.js 是一个基于 Chrome V8 引擎JavaScript 运行环境
  • 官网Node.js (nodejs.org)
  • Node.js 中文官网Node.js 中文网 (nodejs.cn)
  • Node.js 的使用注意事项
    • Node.js 中不能使用 BOM 和 Dom 的 API
    • Node.js = ECMAScript + NodeAPI
    • Node.js 中的顶级对象为global,也可以使用globalThis访问顶级对象。

pinia原创大约 51 分钟node.jsnode.jsnrm面试题
01.工程化

简介

  • 当项目上到一定规模,就需要工程化,划分模块,解决复杂的问题
  • 问题
    • 全局污染问题
      • 随着 js 文件数量和代码量的增加,全局变量同名的几率将会陡然上升,开发人员不得不耗费大量的精力来规避这个问题
    • 依赖混问题
      • 如何规划 js 的引入顺序

工程化的学习路线

  • 模块化

    • CommonJS
    • ES Module
    • AMD
    • CMD
    • UMD
  • 包管理器 安装 升级 卸载 查询

    • npm
    • cnpm
    • pnpm
    • yarn
    • bower
  • 构建工具

    • webpack
      • 概念
      • 原理
      • 配置
      • 扩展
      • 优化
  • 脚手架

    • vite
    • vue-cli
    • umijs
    • create-react-app

pinia小于 1 分钟面试题
06.兼容性管理

简介

babel.config.js

官网

babel 官网

面试题

  • 如何把 ES6 中的 class 转换为 ES5 的写法?
  • 手写一个 JSX?
  • ES7 中 async 和 await 如何实现?

pinia小于 1 分钟面试题
07.ES6常见面试题(ES6)

面试题一:

  const obj = {
    name:'gao',
    sayHi1:()=>{
      console.log(this.name)
    },
    sayHi2(){
      (()=>{
        console.log(this.name)
      })()
    }
  }
  obj.sayHi1() // ''
  obj.sayHi2() // 'gao'

pinia小于 1 分钟面试题
01.类型是如何转换的?

类型转换规则

  • 原始-->数字
    • true:1
    • false:0
    • null:0
    • undefined:NaN
    • String
      • 空字符串(含空白字符):0
      • 去掉引号,不是数字就是NaN
  • 其他类型-->bool
    • null:false
    • undefined:false
    • number
      • 0:false
      • NaN:false
      • 其他:true
    • string
      • 空字符串:false
      • 其他:true
    • 对象:true
  • 原始-->字符串
    • null:'null'
    • undefined:'undefined'
    • number:'数字'
    • boolean
      • true:'true'
      • false:'false'
  • 对象-->原始
    • 调用valueof-->得到的是对象?重新调用toString-->得到的还是对象?报错

pinia大约 2 分钟面试题