前端面试题集锦-2021年前端面试题收集题库1 (2)

在需要删除的cookie键值对后面增加一个exires=时间戳exires键值对,浏览器就会立刻删除该cookie键值对,注意此处的时间戳必须是UTC或者是GMT时间不能是本地时间

需要将document.cookie => .split(';')=>拆分成数组,for of 遍历,在需要修改的键值对后面进行添加exire键值对

手写一个方法求字符串的字节长度

思路:

字符串自带属性.length,可直接拿到字符长度

遍历字符串,通过charCode识别时候是中文字符,如果是中文字符>255 则字节数额外+1

attribute 和 property的区别

attribute : 特性,特性节点(attribute node),每个dom节点都有有个attribute属性用来存储特定的attribute node属性节点

property :属性,每个dom节点,如果当作普通Object看,property就是存储在Object中的一个键值对

设置方法不一样: attribute 需要setAttribute方法设置,property直接.语法设置

删除方式不一样: attribute 需要removeAttribute方法设置,property则是使用Object 的delete 方法

延时脚本在JavaScript中的作用

defer 和 async 属性对脚本加载的意义不一样

相同点: 都会使脚本的加载过程不阻碍html的解析

不同点: defer 延时即使脚本加载完成,也会等待html解析完毕再执行脚本,而 async 则是异步加载脚本,脚本一加载完成则会立即执行脚本,可能还是会阻碍html解析

相同作用:都是为了更好的html体验,减少白屏时间,优化用户体验

闭包是什么,闭包的优缺点

闭包

函数:封装作用域

闭包:利用函数封装作用域的特性,实现了私有域变量的封装,同时暴露出方法,允许获取或者操作私有域变量

实现:函数-》 函数作用域的变量声明 -》 暴露方法允许操作或者修改变量

优点:私有域的变量,防止变量污染,防止全局污染,私有属性

缺点:内存消耗巨大,变量不会自动回收(变量引用一直都在)

如何判断一个对象是否属于一个类

instanceof

object instanceof Object 右边参数是否存在左右对象的原型链上,存在返回 true 不存在返回 false

constructor

object.constructor === Object 一个实例在创建过程中,prototype 中会自动创建一个constructor 属性,并且指向这个构造函数

是否存在一个函数,只在当前对象查找属性,不会顺原型链查找

hasownproperty

返回值:一个 boolean 值,该对象本身是否拥有该属性

可能会有坑: hasOwnProperty 也是 Object 原型链上一个属性,可以被重写

document.write和innerHTML的区别

是否重绘整个页面:

document.write在修改html片段之后会重绘页面

innerHtml修改html片段 会重绘部分页面片段

在JavaScript中读取文件的方法是什么

JavaScript环境区分

node环境:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssfdy.html