js面试常问问题及答案总结--基础

108 阅读1分钟

同步和异步的区别是什么?分别举一个同步和异步的例子

  • 同步会阻塞代码,异步无阻塞
  • alert,console.log

何时需要异步

  • 在可能发生等待的情况
  • 等待过程中不能像alert一样阻塞程序运行
  • 因此,所有的等待的情况都需要异步

什么是异步

对比来回答,什么是同步,同步异步的区别

前端使用异步的场景有哪些

  1. 定时任务 (setTimeout,setInterval)
  2. 网络请求 (ajax请求,动态加载)
  3. 事件绑定 69d420c58f1f8bfa21252f74685f7c3.png

结果1 3 5 2 4

原型和原型链

所有的引用类型都有一个隐式原型的属性。所有的函数都有一个显示原型的属性,所有的引用类型的隐式原型指向构造函数的显示原型。

从输入url到HTML的详细过程

  • 浏览器根据DNS服务器得到域名的IP地址。
  • 像这个IP的机器发送http请求
  • 服务器收到处理并返回HTTP请求
  • 浏览器得到返回内容。

说一下对变量提升的理解

  • 变量定义
  • 函数声明(不是函数表达式)

说明this几种不同的作用场景

  • 作业构造函数执行
  • 作为对象属性执行
  • 作为普通函数执行
  • call,apply,bind

如何理解作用域

  • 自由变量
  • 作用域链,即自由变量的查找
  • 闭包的两个场景

实际开发中闭包的应用

封装变量,收敛权限

描述new一个对象的过程

  • 创建一个新对象
  • this 指向这个新对象
  • 执行代码,即对this赋值
  • 返回 this