JS问题列表

1. get 请求传参长度的误区

  • HTTP 协议 未规定 GET 和 POST 的长度限制
  • GET 的最大长度显示是因为 浏览器和 web 服务器限制了 URI 的长度
  • 不同的浏览器和 WEB 服务器,限制的最大长度不一样

2. get 和 post 请求在缓存方面的区别

  • get 请求类似于查找的过程,用户获取数据,可以不用每次都与数据库连接,所以可以 使用缓存。
  • post 不同,post 做的一般是修改和删除的工作,所以必须与数据库交互,所以不能使用 缓存。因此 get 请求适合于请求缓存。

3. 说一下闭包(概念,作用,实现)

  • 函数中的局部变量在函数执行完后会被销毁,不希望这个局部变量会被销毁,我们还想在外部进行持续的操作和访问,闭包就是利用内部函数能够访问父级函数作用域的变量这个理念,实现这种场景的应用。
  • 闭包就是能够读取其他函数内部变量的函数,子函数在外调用,子函数所在的父函数的作用域不会被释放。
  • 闭包容易产生内存泄漏【当内存中产生了不能被回收的变量,就叫内存泄漏】,因为父作用域只有子函数能访问,但又不属于哪一个执行上下文,所以销毁不掉,只要页面不关闭,这个变量就一直在,导致存在内存泄漏的问题
  • 使用场景:希望某些函数内的变量在函数执行后不被销毁,使用全局变量容易被污染,这时候可以使用使用闭包

4.类的创建和继承

5.如何解决异步回调地狱

6.如何让事件先冒泡后捕获/事件委托以及冒泡原理/事件模型

7.说一下事件委托

8.说一下图片的懒加载和预加载

9.mouseover 和 mouseenter 的区别

10.改变函数内部 this 指针的指向函数

11. clientHeight,scrollHeight,offsetHeight ,以及 scrollTop, offsetTop,clientTop 的区别?

12.JS 拖拽功能的实现

13.异步加载 JS 的方法

14.Ajax 解决浏览器缓存问题

15.JS 的节流和防抖

16.JS 中的垃圾回收机制

17.eval 是做什么的

18.如何理解前端模块化

19.说一下 CommonJS、AMD 和 CMD

20.对象深度克隆的简单实现

21.实现一个 once 函数,传入函数参数只执行一次

22.将原生的 ajax 封装成 promise

23.JS 监听对象属性的改变

24.如何实现一个私有变量,用 getName 方法可以访问,不能直接访问

25.=、以及 Object.is 的区别

26.setTimeout、setInterval 和 requestAnimationFrame 之间的区别

27.实现一个两列等高布局,讲讲思路

28.自己实现一个 bind 函数

29.用 setTimeout 来实现 setInterval

30.JS 怎么控制一次加载一张图片,加载完后再加载下一张

31.代码的执行顺序

32.如何实现 sleep 的效果

33.简单的实现一个 promise,底层如何实现

34.Function.proto(getPrototypeOf)是什么?

35.深度克隆

36.简单实现 Node 的 Events 模块

37.箭头函数中 this 指向

38.JS 判断类型

39.数组常用方法

40.数组去重

41.闭包 有什么用

42.事件代理在捕获阶段的实际应用

43.去除字符串首尾空格

44.性能优化

45.能来讲讲 JS 的语言特性吗

46.跨域/跨域的原理

46.JS 基本数据类型

47.JS 的全排列

48.不同数据类型的值的比较,是怎么转换的

49. requestAnimationFrame,请问是怎么使用的

50. 什么是按需加载

51.说一下什么是 virtual dom

52.webpack 用来干什么的

53.ant-design 优点和缺点

54.JS 中继承实现的几种方式,

55.Vue 的生命周期

56.简单介绍一下 symbol

57.JS 原型链,

58.promise+Generator+Async 的使用

59.写个函数,可以转化下划线命名到驼峰命名

60.JS 中 string 的 startwith 和 indexof 两种方法的区别

61.JS 字符串转数字的方法

62.let const var 的区别

63.ES6 箭头函数的特性

65.setTimeout 和 Promise 的执行顺序

66.JS 的垃圾回收机制

67.怎么获得对象上的属性

68.ES6 的一些新特性

69.如何写一个继承?

70.三个 promise,A、B 和 C,想串行执行

// promise A.then(B).then(C).catch(...) // async/await
(async ()=>{
await a();
await b();
await c();
})()

71.promise 和 await/async 的关系

72.JS 加载过程阻塞,

73.JavaScript 中的轮播实现原理

74.arguments

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值