![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS
文章平均质量分 66
Yangmanyue
这个作者很懒,什么都没留下…
展开
-
offsetHeight、scrollHeight、clientHeight、scrollTop、offsetTop
offsetHeight/offsetWidth: 包括元素的边框、内边距和元素的滚动条(如果存在且渲染的话),不包含:before或:after等伪类元素的高度。这个属性值会被四舍五入为整数值,如果你需要一个浮点数值,请用 element.getBoundingClientRect().clientHeight/clientWidth:是元素内部的高度/宽度(单位像素),包含内边距,但不包括滚动条、边框和外边距。scrollWidth/scrollHeight: 表示一个元素内容区域的实.原创 2021-02-05 10:55:05 · 253 阅读 · 0 评论 -
遍历的几种方式
遍历数组通常用for循环ES5的话也可以使用forEach,ES5具有遍历数组功能的还有map、filter、some、every、reduce、reduceRight等,只不过他们的返回结果不一样。但是使用 forEach 遍历数组的话,使用 break 不能中断循环,使用 return 也不能返回到外层函数。for in使用for in会遍历数组所有的可枚举属性,包括原型。所以for in更适合遍历对象。for (var key in myObject) { if(myObject.hasO原创 2020-12-18 10:16:15 · 4127 阅读 · 1 评论 -
ES6 数组扩展
Array.from用于将类数组结构转换为数组实例类数组对象包括:任何可迭代的结构或者有一个 length 属性和索引元素的结构// 字符串会被拆分为单字符数组Array.from('test'); // ['t', 'e', 's', 't']// 将集合和映射转换为一个新数组const m = new Map() .set('k1', 1) .set('k2', 2)Array.from(m) // [["k1", 1], ["k2", 2]]const s = ne原创 2020-10-13 21:43:19 · 97 阅读 · 0 评论 -
JS 面试手写汇总
bindcall() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。注意:该方法的语法和作用与 apply() 方法类似,只有一个区别,就是 call() 方法接受的是一个参数列表,而 apply() 方法接受的是一个包含多个参数的数组。Function.prototype.myCall = function(thisArg, ...args) { const fn = Symbol('fn') thisArg = thisArg || window原创 2020-10-12 20:34:30 · 180 阅读 · 0 评论 -
JavaScript 面向对象与原型
在 JavaScript 中创建一个新对象的最简单方式,并可通过赋值语句添加属性const warrior = {};warrior.name = 'name';但是那些具有面向对象开发语言背景的读者,可能会想念封装和构建类的构造函数。构造函数是用来初始化对象为已知的初始状态。毕竟,我们要创建多个相同类型的对象实例,为每个实例单独进行属性分配,不仅繁琐还容易出错。我们希望能够在一个地方将这些对象的属性和方法整合为一个类。JavaScript 中使用 new 操作符,通过构造函数初始化新对象,但没有原创 2020-08-23 22:58:13 · 147 阅读 · 0 评论 -
你不知道的 JavaScript 系列之this
读后总结首先是阅读了《你不知道的 JavaScript 上卷》 this 部分章节之后的小节。如果要判断一个运行中函数的 this 绑定,就需要找到这个函数的直接调用位置,找到之后就可以顺序应用下面这四条规则来判断 this 的绑定对象。由 new 调用,则绑定到新创建的对象由 call 或者 apply 或者 bind 调用,则绑定到指定的对象由上下文对象调用,则绑定到那个上下文对象默认:在严格模式下绑定到 undefined,否则绑定到全局对象ES6 的箭头函数并不会使用这四条标准的绑原创 2020-07-12 22:49:11 · 102 阅读 · 0 评论 -
你不知道的 JavaScript 系列之闭包
什么是闭包当函数可以记住并访问所在的词法作用域,即使函数是在当前词法作用域之外执行,这时就产生了闭包下面我们可以通过一段代码,清晰地展示了闭包:function foo() { var a = 2; function bar() { console.log(a); } return bar;}var baz = foo();baz(); // 2 这就是闭包的效果函数 bar() 的词法作用域能够访问 foo() 的内部作用域,我们将 bar 所引用的函数对象本身当作返回值原创 2020-07-04 22:22:52 · 166 阅读 · 0 评论 -
你不知道的 JavaScript 系列之作用域
什么是作用域作用域是根据名称查找变量的一套规则,这套规则用来管理引擎如何在当前作用域以及嵌套的子作用域中根据标识符名称进行变量查找作用域的两种工作模型词法作用域(大多数编程语言采用)动态作用域(比如 Bash 脚本)理解词法作用域及其名称来历简单来说,词法作用域就是定义在词法阶段的作用域。词法作用域是由你在写代码时将变量和作用域写在哪里来决定的。无论函数在哪里被调用,也无论它如何被调用,它的词法作用域都只由函数被声明时所处的位置决定。在传统编译语言的流程中,程序中的一段源代码在执原创 2020-07-01 23:29:31 · 174 阅读 · 0 评论 -
关于 chrome 80 后出现的 SameSite 问题
Google 发布的 Chrome 80 中,在所有的 Cookie 中默认设置 SameSite=Lax 来屏蔽所有的第三方 Cookie,详见 Cookies default to SameSite=Lax;并拒绝所有的非 Secure 的Cookie 设为 SameSite=None,详见 Reject insecure SameSite=None cookies关于 SameSite 属...原创 2020-03-19 22:29:07 · 13918 阅读 · 5 评论 -
JavaScript 数据类型
JavaScript 数据类型自 ES6 引入了一种新的原始数据类型 Symbol 后, JavaScript 语言共包含七种数据类型:undefined、null、Boolean、String、Number、Object 以及 Symbol。类型检测typeof 操作符检测:可检测上述七种数据类型中的 undefined、Boolean、String、Number、Object 、...原创 2019-07-11 11:34:19 · 106 阅读 · 0 评论