
Javascript
文章平均质量分 82
javascript技术分享和学习笔记
。烦啦
这个作者很懒,什么都没留下…
展开
-
JavaScript 生成器(Generator函数)和迭代器(iterator) 使用通俗讲解
1.迭代器送代器Iterator是ES6提出的一种接口机制。它的目的主要在于为所有部署了Iterator接口的数据结构提供统一的访问机制,即按一定次序执行遍历操作。并且ES6也提出了针对Iterator遍历操作的专属遍历命令的标准,即for of循环1.1默认Itearator接口一个数据结构只要具有Symbol.iterator属性,就可以认为是"可迭代的"(iterable)Symbol.iterator属性本身是一个函数, 执行这个函数,就会返回一个迭代器Iterator,当使用for…of循原创 2021-06-28 21:10:36 · 810 阅读 · 0 评论 -
浅谈JavaScript原型链机制
接上一条,如果遍历其原型链时存在对应的foo属性,并且该属性只读(writable:false),则不会修改该属性或者创建该对象实例的直接属性,总之什么都不会发生(在非严格模式下会抛出错误)此方法与(2)相比,解决了原型对象引用共享的问题,但是如果函数Foo存在一些副作用(如修改状态,给this添加属性等),同样会影响到Bar的实例对象,此法也不可取。如果obj对象没有直接包含名为foo的属性,就会历其原型链,如果仍然找不到名为foo的属性,则foo会被添加到obj的直接包含属性中。有一定轻微性能损失。原创 2021-06-20 16:15:51 · 403 阅读 · 0 评论 -
JavaScript 事件循环机制基本介绍
参考链接:https://juejin.cn/post/6844903621872582669https://juejin.cn/post/68449036382387568781. 单线程的jsjs作为主要运行在浏览器的脚本语言,js主要用途之一是操作DOM。在js高程中举过一个栗子,如果js同时有两个线程,同时对同一个dom进行操作,这时浏览器应该听哪个线程的,如何判断优先级?为了避免这种问题,js必须是一门单线程语言,并且在未来这个特点也不会改变。2. 执行栈和任务队列因为js是单线程转载 2021-06-20 14:29:00 · 149 阅读 · 0 评论 -
分清JavaScript中的各种“尺寸”和“位置”
1. 尺寸(1) node.style.width/height这个只能获取元素的内联style样式中定义的尺寸值,若该元素没有定义atyle属性,则返回值为空字符串此外,没有其他办法可以获取css样式设置的元素尺寸值(2) node.clientWidth/clientHeight表示元素的内容可视宽/高度 +水平/垂直方向padding值注意:针对纯行内元素(如apan,不包括行内块)该neI获取的值永远为0,通过document documentElement.clientWidth原创 2021-06-10 21:07:13 · 453 阅读 · 0 评论 -
JavaScript This机制详解
this是什么当一个函数被调用时,会创建一个执行上下文,它会记录函数的调用位置,调用方法,传入参数等信息。 this就是这些信息中的一个属性,会在函数执行时用到。this既不指向函数的词法作用城,也不指向函数自身。this是在函数被调用时才被绑定,并非函数编写或声明时绑定。它指向什么完全取决于函数在哪里被调用2.绑定规则2.1默认绑定当函数调用时,如果是使用不带任何修饰和前缀的,独立的函数引用进行调用时,此时的this为默认绑定,指向全局对象(浏览器中是window) function foo(原创 2021-05-25 21:43:44 · 362 阅读 · 1 评论 -
JavaScript 数据类型,类型检测以及类型转换详解
基本类型(string,number等)的值本身不具有属性和方法(如Iength和toString()),通过对应的构造活数(如new String(),new Number())进行了对象封装处理才使其拥有了属性和方法。不过日常业务中我们用的最多的也就是字符串与数字或字符串之间的+运算,对于字符串与字符串则是拼接操作,对于字符串与数字,则是将数字默认进行 toString()操作,然后再进行字符串拼接。对于变量之间做+运算,它的隐式转换规则与+前后变量的数据类型有关,规则比较复杂,详细规则可以自行查询。原创 2021-05-20 21:26:42 · 370 阅读 · 0 评论 -
JavaScript中的各种“循环”
前言日常开发中的业务场景,业务逻辑上常常用到遍历循环,JS中提供了许多对应的API方法,这里不会从零讲解它们怎么用,而是介绍他们的适用用场景和个中区别1. forEach,map, some,fiiter,every这几个是定义在Array.prototype上的数组专属的遍历API,forEach:单纯地遍历每个数组元素进行需要的逻辑处理,无返回值,不可中断遍历map:主要用于根据需求来格式化数组的每个元素,最终返回一个由每次遍历的返回值组成的新数组,不可中断遍历some:主要用于判断是否存原创 2021-05-10 21:42:50 · 219 阅读 · 0 评论 -
JavaScript中new Object()和{}的区别
对于array,object,function和正则表达式这类既可以通过字面量(如let arr = [])又可以通过构造函数(如let arr - new Array())来声明的对象类型,原创 2021-04-20 21:56:04 · 985 阅读 · 0 评论