JavaScript面试知识点总结

JavaScript知识点总结(一)

1. 基本数据类型

  • 五种简单数据类型包括:String、Number、Boolean、undefined、Null
  • 一种复杂数据类型:obeject

几种false:undefined,null,空字符串,0都等于false

2. let、const、var区别

  • let和const不存在变量提升机制(函数及变量的声明都将被提升到函数的最顶部)
  • var允许重复声明,而let是不允许的
  • let、const都是块级局部变量

3. promise的三个状态

  • pending 等待
  • reslove 成功
  • reject 拒绝
  • promise的状态一旦改变就不会在改变回去

4. sessionStorage,localStorage和cookie的区别

sessionStorage,localStorage 都是用来储客户端临时信息数据的。

  • sessionStorage 生命周期为当前窗口或标签页,一点浏览器关闭或者页面关闭,他就消失了
  • localStorage 生命周期是永久,可以长期的存储在本地,不会随着连接的关闭或者网页的关闭而消失

cookie 主要是存储在客户端上用来验证用户信息的

5. cookie和session 的区别

  • Cookie可以存储在浏览器或者本地,session只能存在服务器
  • Session比Cookie更具有安全性
  • Session占用服务器性能,Session过多,增加服务器压力
  • 单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点的cookie上限

6. Object的对象方法

  • create 创建元素
  • keys() values()
  • valueof()
  • toString

7. symbol类型

  • 用来解决JS对象属性可能重名的问题

8. 区分数组和对象的方法

  • objec.isPrototypeOf
  • instanceof

9. 块级元素垂直居中

  • flex布局 display: flex;align-items: center;

  • 父元素相对定位 子元素position: absolute; top: 50%; transform: translateY(-50%);

  • 子元素position:relative,top: 50%;transform: translateY(-50%);

  • 设置父元素为相对定位,子元素为绝对定位,同时设置子元素的top,bottom,left,right值为0,最后设置margin:auto;

10. Vue的生命周期

  • 创建
  • 挂载
  • 更新
  • 销毁

11. 宏任务和微任务

  • 宏任务是由宿主(Node、浏览器)发起,微任务由Javascript发起。
  • 同时到达的话,微任务会先运行
  • 宏任务会触发新一轮Tick

12. 原生ajax请求的五个步骤

第一步,创建XMLHttpRequest对象
第二步,注册回调函数
第三步,配置请求信息,open(),get
第四步,发送请求,post请求下,要传递的参数放这
第五步,创建回调函数

13. 数组去重方法

  • sort + splice
  • Set(),Map()
  • indexOf()

14. es6新特性

  • 箭头函数、promise、Map()、Set()、let、const、for…of…

15. this的指向问题

  • 普通的函数调用 - 指向window
  • 构造函数调用 - 指向函数实例化后的对象
  • 对象的方法 - 指向该对象
  • 绑定事件 - 执行绑定事件的对象
  • 定时器 - 指向window

16. 深拷贝和浅拷贝

  • 对于引用数据类型,他的名字存在栈内存中,值存在堆内存中,栈内存会提供一个引用的地址指向堆内存中的值
  • 浅拷贝就是B变量只复制了A变量的引用地址,而没有复制A变量在堆内存中的值。
  • 深拷贝的方法:object.assign() 对于多层对象,需要递归拷贝

17. position的定位方法

  • static 静态的 元素出现在正常位置
  • relative 相对定位 相对于该元素的原位置进行定位
  • absolute 绝对定位 脱离文档流 相对于第一个非static定位的父级元素定位
  • fixed 固定位置 生成在固定

18 Array.from() 和 Array.of()

  • Array.from() 将可迭代对象转成数组
  • Array.of(5) // [5]

19 Set()

  • 函数方法 add,delete,has,clear
  • 遍历方法 keys(),values(),entries(), forEach()

20 http状态码

  • 200 成功
  • 301 客户端请求的网页已经永久移动到新的位置
  • 400 客户端请求的语法错误,服务器无法理解
  • 403 服务器拒绝执行此请求
  • 404 服务器找不到请求的资源
  • 405 客户端请求中的方法被禁止
  • 500 服务器错误
  • 503 服务器由于临时的服务器过载或者是维护,无法解决当前的请求

21 TCP和UDP的区别

  • TCP是面向连接;TCP连接只能是点到点、一对一的;通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;TCP传输效率相对较低。
  • UDP是无连接的;UDP支持一对一,一对多,多对一和多对多的交互通信;UDP尽最大努力交付,即不保证可靠交付;UDP传输效率高。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空门.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值