
js
文章平均质量分 92
这是js的学习记录
Au&ust
这个作者很懒,什么都没留下…
展开
-
想品客老师的第十三天:宏任务、微任务--js任务调度流程
先执行同步代码,创建promise本身是同步的,所以先创建promise,创建完立马执行他的执行函数,所以第一个被打印的是【promise的立即执行函数里的同步部分】,也就是打印promise。定时器的任务是宏任务,无论等待时间短还是长,都先进行同步任务,进行同步任务的时候定时器正常计时,等到同步任务结束,宏任务被放到宏任务队列里,就可以直接执行定时器内的任务。如果有两个定时器,在等完同步任务结束后,这两个定时器谁定的时间短,也就是计时的快,就先把谁放进宏任务队列里。任务共享内存,最终i是几?原创 2025-02-15 01:52:31 · 128 阅读 · 0 评论 -
想品客老师的第十二天:异步和promise(下)
表示成功状态。原创 2025-02-12 17:22:32 · 405 阅读 · 0 评论 -
想品客老师的第十二天:异步和promise(上)
先执行同步代码,创建promise本身是同步的,所以先创建promise,创建完立马执行他的执行函数,也就是resolve,所以第一个被打印的是【promise的立即执行函数里的同步部分】,也就是打印promise。发现宏任务里还有微任务(这就相当于下一个循环,下一个从同步->微任务->宏任务的循环),执行立马的微任务,打印【成功】在当前调用栈清空后,事件循环会优先清空微任务队列中的所有任务,然后再执行宏任务。第三步执行微任务,微任务队列里是promise里的then,打印为【成功】原创 2025-02-06 18:21:02 · 863 阅读 · 0 评论 -
想品客老师的第十一天:模块化开发
模块化开发可以提高代码的可维护性、可读性和复用性,同时降低开发和调试的复杂性,把业务根据功能分开写,解决变量命名的冲突,可以开放部分接口给类(例如调用模块里的一个函数)也更适合团队协作模块化的开发方式可以提供代码复用率,方便进行代码的管理。通常来说,一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数。目前流行的js模块化规范有CommonJS、AMD、CMD以及ES6的模块系统。在这里我们自己写一个,可以更好的理解模块管理实现模块的添加、定义、依赖,使用容器管理模块其他想说的都在代码里了:原创 2025-02-04 22:45:23 · 199 阅读 · 0 评论 -
想品客老师的第十天:类
关于symbol可以保护数据这里之前在对象学过类似的概念,但是我没懂:如果想保存的话可以把属性定为私有属性,symbol可以让他变成私有属性// name: "后盾人",age: 10,},// user.data.name = "你好";那你就要问了:symbol和私有属性什么关系,为啥symbol可以防止被修改?deepseek太卡了,我们有请老朋友chatgpt作答:Symbol 本身并没有提供不可修改(immutable)功能。原创 2025-02-02 22:53:51 · 874 阅读 · 0 评论 -
想品客老师的第九天:原型和继承
原型与继承前置看这里原型都了解了,但是不是所有对象都有对象原型obj2为什么没有对象原型?obj2是完全的数据字典对象,没有对象的关系但是这种对象用到的地方很少一句话,就是自己有方法就不要原型的方法,自己没有的才会向上检索函数拥有多个对象原型行吧这集没看懂。。。说的是个啥,以后再补原创 2025-01-30 22:21:26 · 378 阅读 · 0 评论 -
想品客老师的第八天:对象(下)
封装很好理解,就是把统一功能属性封装在一起;拿手机举个例子:手机里复杂的功能都被封装起来了,留给外部的只是一些按键和图标来访问,这就是抽象,不让外部那么容易的访问内部。用于将一个或多个源对象的可枚举属性复制到目标对象中。它执行的是浅拷贝(只复制属性的值,不复制属性的描述符)configurable:是否可以被删除或重新配置。这是查看对象里其中一个属性的属性特征。enumerable:是否可遍历。writable:是否可写。(也就是上面那四个属性)用于在对象上定义一个。这就是对象属性的特征。原创 2025-01-28 22:45:05 · 440 阅读 · 0 评论 -
想品客老师的第八天:对象(上)
展开语法是对对象或数组的批量处理,解构是对对象或数组结构的批量处理。在普通模式下,如果变量没有被显式声明,JavaScript 会。会被隐式声明为全局变量,代码不会报错。函数式编程改良->面向对象式编程。减少意大利面条式的编程结果。因此,在普通模式下,原创 2025-01-27 21:25:20 · 462 阅读 · 0 评论 -
想品客老师的第七天:闭包和作用域
函数在调用之前的声明相对于建造城市的计划,调用函数相当于城市动工了,调用多次函数相当于建造多个一样的城市(开辟多块空间),但是不是同一个城市,彼此独立。let是有块级作用域的概念,for里的定时器函数在i等于不同值的时候,会先向上一级找i,还没找到全局,就在父级找到i了,找到的i就等于此时i的值。而局部变量的值不用了,会被自动回收掉。var没有块作用域的原因居然是块作用域出的比var晚,推出let和const可以适用块作用域。n被return了,所以n++,但是m是独立的没有被外部调用,所以不++原创 2025-01-26 17:14:03 · 913 阅读 · 0 评论 -
想品客老师的第六天:函数
console.log('我是screenX函数,已经有一个和我一样的函数名了')像这样:但是实际上window里本来就有一个screenX属性,他们名字一样,新的会覆盖旧的,旧的旧不起作用了console.log(window.screenX)//返回浏览器左边界到操作系统桌面左边界的水平距离。这就是全局变量的缺点。原创 2025-01-24 22:24:51 · 656 阅读 · 0 评论 -
想品客老师的第五天:Map与WeakMap类型
Map对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者)都可以作为键或值。原始值:string、number、bigint、boolean、symbol、undefined、null。原创 2025-01-23 04:11:50 · 425 阅读 · 0 评论 -
想品客老师的第四天:Set与WeakSet类型
Set对象允许你存储任何类型(无论是还是对象引用)的唯一值。集合(set)中的元素,你可以按照插入顺序迭代集合中的元素。原创 2025-01-22 18:04:25 · 766 阅读 · 0 评论 -
想品客老师的第三天:Symbol 类型
先发个文章占着茅坑不拉屎一下。原创 2025-01-21 05:02:55 · 125 阅读 · 0 评论 -
想品客老师的第二天:数组
console.table()可以以表格形式打印数组。原创 2025-01-20 03:50:39 · 1080 阅读 · 0 评论 -
想品客老师的第一天:值类型使用
ECMAscript(也就是ES)是JavaScript的一个标准,就像c++的c11和c99一样,几把的一年出一套标准freeze()是一个对象方法,表示锁定、固定一个对象不可改变(因为const对于标量不可变,但是对于引用类型会被改变,所以作用是让const更const),如果想改变的时候显示报错信息可以加上一些其他比较重要的内容在往期涉及的文章里做了增添修改。原创 2025-01-18 20:06:31 · 352 阅读 · 0 评论 -
js:小寄巧们
深浅拷贝学go语言毁了我。。。js的深浅拷贝和go不一样,以为是我学糊涂了原来真的不一样哈。。。baba然后再聊一下什么是赋值:赋值是将一个变量的引用(内存地址)复制给另一个变量。两个变量会指向同一个内存地址;就像这样:修改其中一个的属性值,另一个也跟着改变,因为他们的内存地址相同所以为了避免这种情况,在js里给对象、数组这种引用类型使用了深浅拷贝。原创 2025-01-17 16:38:12 · 717 阅读 · 0 评论 -
js:深入面向对象
又是面向对象。。。。。。其实不止操作系统,很多系统的管理模式都是用面向对象的模式管理的管理者并不在乎你每个人的个体特征。在公司里,老板让你买咖啡,并且他很急。买咖啡有多种方式,例如点外卖、自己到楼下购买、托正在外面的同事捎来或者给老板花超绝三块钱冲雀巢等等。然后你就问老板说:老板,那我是去点外卖还是自己买还是给你冲速溶咖啡还是......老板根本不在乎你说的什么,他只会告诉你:不管怎样,我只要我的桌子上放有咖啡。员工只要搞到咖啡就好了,而老板考虑的就多了(勾潮的鸣式还在追我。原创 2025-01-16 19:28:34 · 965 阅读 · 1 评论 -
js:构造函数、数据常用函数
深入对象深入对象创建对象的三种方式1、利用字面量创建对象2、利用new(实例化)创建对象3、使用构造函数创建对象构造函数构造函数是一种特殊的函数,主要用于初始化对象常规的 {...} 语法允许创建一个对象。比如我们创建了佩奇的对象,继续创建乔治的对象还需要重新写一 遍,此时可以通过构造函数来快速创建多个类似的对象。用之前的方法,一次只能创建一个对象使用方法构造函数本质上就是一个常规函数,但是有两个约定俗成:1、他的命名以大写字母开头2、只能由new操作符来执行该构造函数。原创 2025-01-15 02:15:45 · 649 阅读 · 0 评论 -
js:变量提升、作用域、解构、箭头函数
这样写就是错的,因为fun是个变量,又是var声明的,此时只提升变量的声明,不提升赋值;JS中内存的分配和回收都是自动完成的,内存在不使用的时候会被垃圾回收器自动回收,正因为垃圾回收器的存在,许多人认为JS不用太关心内存管理的问题。在开发中【使用箭头函数前需要考虑函数中this的值】,事件回调函数使用箭头函数时,this为全局的window,因此。或表达式不在当前的作用域中,那么它是不可用的。闭包的作用:外部也可以访问函数内部的变量,把函数内部的变量传出去,同时又保护函数内部的数据。原创 2025-01-14 03:11:04 · 809 阅读 · 0 评论 -
js:放大镜功能
业务分析:①:鼠标经过对应小盒子,左侧中等盒子显示对应中等图片②: 鼠标经过中盒子,右侧会显示放大镜效果的大盒子③: 黑色遮罩盒子跟着鼠标来移动④: 鼠标在中等盒子上移动,大盒子的图片跟着显示对应位置功能示意:思路:①:鼠标经过小盒子,左侧中等盒子显示对应中等图片获取对应的元素采取事件委托的形式,监听鼠标经过小盒子里面的图片, 注意此时需要使用事件,因为需要事件冒泡触发small让鼠标经过小图片的爸爸li盒子,添加类,其余的li移除类(注意先移除,后添加)原创 2025-01-13 04:19:12 · 1035 阅读 · 0 评论 -
js:正则表达式
定义正则表达式的语法,//内部是正则表达式的字面量const reg=/兔子/原创 2025-01-12 04:25:48 · 1244 阅读 · 0 评论 -
js:window对象
dom部分学完了,来看看bom吧~bom是整个浏览器,本质上bom与dom是包含的关系,window是里面最大的对象调用的方法默认对象是window,一般都会省略前面的window创建的全局变量也是属于window的,当然window也可以省略。原创 2025-01-09 21:00:35 · 858 阅读 · 0 评论 -
js:日期对象和dom节点
学过树的孩子们都知道,树是有一个个节点的,dom树也是如此元素节点:比较重要,在后期在增删改查里,主要指的是元素节点,也就是所有的标签比如body、 div,html 是根节点属性节点:所有的属性,比如a标签的href文本节点:所有的文本其他......节点的增删改查这里的增删改查是根据节点之间的关系进行增删改查,比如html是head的父节点,在已知head标签的时候就可以通过父子关系查找到html标签。原创 2025-01-09 00:12:56 · 1007 阅读 · 0 评论 -
js:事件流
事件流是指事件完整执行过程中的流动路径一个事件流需要经过两个阶段:捕获阶段,冒泡阶段捕获阶段是在dom树里获取目标元素的过程,从大到小冒泡阶段是获取以后回到开始,从小到大,像冒泡一样实际开发中大部分只用到了冒泡阶段。原创 2025-01-07 19:52:35 · 1167 阅读 · 0 评论 -
js:事件监听
事件监听:让程序检测是否有事件产生,一旦有事件触发,就调用一个函数做出响应,也称为绑定事件或注册事件事件:编程系统内发生的动作或发生的事情比如用户单击一个按钮下拉菜单。原创 2024-12-09 22:08:46 · 842 阅读 · 0 评论 -
js:dom操作元素
console.log(one.dataset.id)//自定义属性里的id属性,默认第一个div原创 2024-12-02 09:39:33 · 890 阅读 · 0 评论 -
js:对象
因为对象存放在堆中,删除操作会直接定位到对象存放的堆中然后删除属性,而访问对象是去堆中寻找,堆里面对象的属性已经被删除,所以只要你访问那个对象,被删除的属性就都没有了。-20.5四舍五入后是-20,因为不管整数还是负数四舍五入,5是向较大的值入的,-20就是比-20.5大,所以是-20。增和改的语法本质上是一样的,本来就有的属性修改属性值就叫修改,没有的增加属性值就叫添加。对象(ul)是一种无序的数据集合,数组(ol)是一种有序的数据集合。用逗号间隔,属性是成对出现的,由属性名和属性值组成。原创 2024-12-01 13:48:11 · 708 阅读 · 0 评论 -
js:循环、数组
continue退出本次循环,用于跳过某个选项break退出整个for循环,用于跳过后面的循环循环嵌套练习:.html.js。原创 2024-11-28 17:12:25 · 581 阅读 · 0 评论 -
js:函数
函数:实现抽取+封装,执行特定任务的代码块,方便复用。原创 2024-11-28 17:09:21 · 576 阅读 · 0 评论 -
js:运算符和语句
=、-=、/=、*=、%=这些都在别的语言里学过。原创 2024-11-27 14:04:21 · 879 阅读 · 0 评论 -
js:基础
JavaScript是一种运行在客户端的编程语言,实现人机交互的效果js只要有个浏览器就能跑js可以做网页特效、表单验证、数据交互、服务端编程服务端编程是前端人拿他们特有的后端语言node.js来干后端干的事情。原创 2024-11-26 21:08:17 · 995 阅读 · 0 评论