JavaScript
文章平均质量分 55
JavaScript 知识点总结
大魔王sama
这个作者很懒,什么都没留下…
展开
-
Chrome 同站策略(samesite)问题探究
项目背景需求是一个类似 Disqus 的用户评论系统,用户评论模块使用 Iframe 嵌入到其他网站;但是用户属于公共的用户系统,所以使用单点登录,需要用到登录系统生成的 Cookie。问题及探究用户评论模块通过 Cookie 调取用户信息时,控制台提示:this set-cookie didnot specify a "sameSite" attribute and was defaulted to "sameSite=Lax" and broke the same rules specified原创 2021-10-12 15:02:33 · 1827 阅读 · 0 评论 -
HTTP缓存
文章目录HTTP缓存强缓存ExpiresCache-Control协商缓存Last-Modify / If-Modify-SinceETag / If-None-Match用户行为与缓存HTTP缓存HTTP缓存可以分为强缓存和协商缓存,浏览器请求一个页面的简单流程如下:浏览器会根据资源的 HTTP 头信息来判断是否命中强缓存。如果命中则直接在缓存中获取资源,并不会将请求发送到服务器。如果未命中强缓存,则浏览器会将请求发送到服务器,由服务器来判断资源是否失效,如果失效就将返回最新资源,没有失效就返回原创 2020-09-16 13:32:06 · 129 阅读 · 0 评论 -
宏任务和微任务
JS 本质是单线程的,通过回调函数来实现异步操作。也就是说,在 JS 中,立即执行的代码叫做同步任务;过了一段时间之后,满足了一定条件时才执行的代码叫做异步任务。按照这种分类,JS 的执行机制是这样的:首先判断 JS 是同步还是异步,同步就进入主进程,异步就进入 event table异步任务在 event table 中注册函数,当满足触发条件后,被推入 event queue当主进程中的任务执行完时,将 event queue 的任务推入主进程好的,我们现在来看一个例子:setTime原创 2020-09-15 17:00:11 · 1844 阅读 · 0 评论 -
非重复字符串长度
问题:给定一个字符串,找出最长的不具有重复字符的子串的长度。例如,“abcabcbb”不具有重复字符的最长子串是“abc”,长度为3。对于“bbbbb”,最长的不具有重复字符的子串是“b”,长度为1。解:function lengthOfLongestSubstring(s) { let obj = {} let max = 0 let num = 0 for (let i = 0; i < s.length; i++) { let k = s[i原创 2020-08-03 11:41:28 · 220 阅读 · 0 评论 -
时间格式化输出(思路清奇)
要求:按所给的时间格式输出指定的时间格式说明:对于 2014.09.05 13:14:20yyyy: 年份,2014yy: 年份,14MM: 月份,补满两位,09M: 月份, 9dd: 日期,补满两位,05d: 日期, 5HH: 24制小时,补满两位,13H: 24制小时,13hh: 12制小时,补满两位,01h: 12制小时,1mm: 分钟,补满两位,14m: 分钟,14ss: 秒,补满两位,20s: 秒,20w: 星期,为 [‘日’, ‘一’, ‘二’, ‘三’, ‘四原创 2020-07-23 15:18:26 · 286 阅读 · 0 评论 -
还能这么玩?(DOM节点查找)
今天在牛客网刷前端题的时候,遇到这么一个问题:查找两个节点的最近的一个共同父节点,可以包括节点自身。我一开始以为是在考察树的深度遍历和广度遍历,直到后来,我找到了一个方法:contains ,在 JS 中,这个方法是用来判断 DOM 元素的包含关系的。到这里,一切问题迎刃而解,什么递归,再见!现在我们只需要从其中一个节点开始,逐级向根节点进发,利用 contains 来判断当前节点是否包含另一个节点就妥了,代码如下:function commonParentNode(oNode1, oNode2)原创 2020-07-23 13:07:56 · 156 阅读 · 0 评论 -
JavaScript数据类型(基本类型,引用类型,基本包装类型)
个人理解:基本类型:Number、String、Boolean、Null、Undefined — 不能拥有属性和方法的类型引用类型:Function、Array、Object — 拥有属性和方法的类型(对象)基本包装类型:Number、String、Boolean — 属于特殊的引用类型,与基本类型相对应关系:当声明一个基本类型(Number、String、Bool...原创 2019-12-10 15:22:50 · 205 阅读 · 0 评论 -
利用原生JS实现数组原型方法
利用原生JS实现数组原型方法1. 判断对象数据类型2. 利用原生JS实现map方法3. 利用原生JS实现filter方法4. 利用原生JS实现some方法1. 判断对象数据类型初始代码:const isType = function (type) { return function (t) { return `[object ${type}]` === Object....原创 2019-12-10 15:08:26 · 504 阅读 · 2 评论