在需要删除的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环境: