
js
@大熊
这个作者很懒,什么都没留下…
展开
-
canvas写时钟
canvas写一个时钟原创 2023-01-13 15:35:06 · 581 阅读 · 0 评论 -
是js高级啊~
1.2.this绑定之外的情况非严格模式下,显示的将this绑定成null或undefined,this的指向是默认绑定(window)严格模式下,显示的将this指向null或undefined,this指向就是null或者undefined非严格模式下,创建一个函数的间接调用,this的指向是默认指向由以下案列可知,赋值语句的返回值是要赋的值1.3.箭头函数箭头函数箭头函数箭头函数不能用作构造函数(因为没有显示原型)如果函数体只有一行代码,默认值返回的是一个对象,必须用括号将原创 2022-11-22 10:46:22 · 342 阅读 · 0 评论 -
Dom API
整理一下常用的DOM API目录整理一下常用的DOM API查找父子关系兄弟元素按照HTML特征查找查找父子关系el.parentElement/el.parentNode 获取el的父元素parent.children 获取当前父元素下的所有子元素的集合返回的是类数组对象parent.firstElementChild 获取当前父元素下的第一个直接子元素parent.lastElementChild 获取当前父元素下的最有一个直接子元素兄弟元素el.previousEle原创 2022-05-29 23:20:32 · 106 阅读 · 0 评论 -
深度拷贝~~~
// source是什么类型 // target就传入相同类型 const obj = { name: 'jack', age: 18, hobbies: ['唱', '跳', 'rap'] } const arr = [2, [23]] function deepCopy(source, target) { for (let k in source) { ...原创 2022-05-25 16:31:53 · 78 阅读 · 0 评论 -
JS处理两个超大的数相加
一道鄙视题:let a = '99999999999999'; let b = '9999'; console.log(bigAdd(a,b)); // 100000000009998function bigAdd(str1, str2) { let res = ''; let temp = 0; str1 = str1.split('') str2 = str2.split('') while (str1.length原创 2022-02-19 14:34:59 · 827 阅读 · 0 评论 -
浅谈JS的微任务和宏任务(附加面试题)
Event Loop因为JS是单线程,就是说,同一个时间只能做一件事。为了协调事件、用户交互、脚本、UI 渲染和网络处理等行为,防止主线程的不阻塞,Event Loop 的方案应用而生。掌握知识点JS分为同步任务和异步任务同步任务都在主线程上执行,形成一个执行栈主线程外,事件触发线程管理者异步任务一旦执行栈中的所有同步任务执行完毕(此时JS处于空闲),系统就会读取异步任务,将异步任务添加到执行栈中,开始执行宏任务(macrotask)这里我们需要记住,浏览器为了能够使得JS内部(macr原创 2022-02-18 23:13:32 · 1147 阅读 · 0 评论 -
es6 class类
class类(es6)定义集中定义一种类型的所有对象,统一属性结构和方法的程序结构组成部分构造函数(constructor)和原型对象(prototype)构造函数: 负责定义所有子对象统一的属性和结构,并负责创建子对象原型对象:负责保存所有子对象共有的属性和方法原因在ES5中构造函数和原型对象是分开定义的,不符合面向对象的**‘封装’**使用方法用class{} 包裹构造函数和原型对象构造函数名提升为class名,所有构造函数从此统一更名为constructor所有放在class原创 2022-02-11 13:56:57 · 384 阅读 · 0 评论 -
es6补充(array&string)
ES6数组&String API数组类数组转换为数组Array.find()Array.findIndex()Array.includes()String相关startsWith()endsWith()repeat()set数据结构set常用API数组记录一下es6得数组方法,方便自己查阅!类数组转换为数组Array.from()// 说白了这个函数就是遍历传入得类数组然后返回一个新得数组var oDivs = document.querySelectorAll('div') c原创 2021-09-25 11:07:02 · 370 阅读 · 0 评论 -
关于引用类型数据赋值的问题
今天发现一个bug 因该是自己孤陋寡闻,学识浅薄,记录下来只是为了以后不再犯这个错误,都知道引用数据类型,赋值一份,两个变量指向的地址是一样的,但是当其中一个变量重新赋值,那么两个变量再无瓜葛let a={a:9,b:[1,2]}let b=a.b//此时b和a.b引用的地址一样b=[3,4]//此时b和a.b地址不一样,因为b重新赋值了//如何让两个地址一样呢 就是不重新赋值,而是直接修改b.push(3)//这样就一样了...原创 2021-07-02 10:55:25 · 183 阅读 · 0 评论 -
ES6 Promise
Promise定义:专门保证多个异步函数,可以顺序执行的机制,而且还防止了回调地狱 的问题。原因:如果使用回调函数实现多个异步函数顺序执行,会导致回调地狱的出现。如何实现:第一步:在异步函数内用new Promise(function(door){…})来包裹原函数中的所有代码。其中door是用来打开通向下一项任务的大门的钥匙。第二步:在异步函数执行完最后一步之后调用附赠的开关door()开门,通知下一项任务可以开始执行。第三步:将整个new Promise()对象返回到函数外部,再用原创 2021-03-11 09:39:40 · 126 阅读 · 0 评论 -
ES5 保护对象
ES5 保护对象今天自己复习了一下笔记的Es5保护对象(手写笔记),为了方便查阅,然后就整理发到平台了!接下来进入正题什么是:防止对象的属性值或对象的结构被随意篡改!原因:在旧的js中,对象的属性和结构容易被修改。任何人可在任何时候属性值,也可以随意添加和删除属性!如何:①保护对象的属性ES5对象的属性进行了重新分类命名属性可用 . 访问到的属性又分为数据属性和访问器属性数据属性:实际存储值的属性访问器属性:不实际存储属性值,仅提供对另一个数据属性的保护内部属性原创 2021-01-24 23:18:11 · 164 阅读 · 0 评论 -
从页面上获得文字不可以直接修改样式!!!
今天遇到了一个很可恶的问题,以为是BUG,然后耗费了自己一个小时来思考这个问题,最后才恍然大悟,原来是自己的基本功太差,果然是基础不牢,地动山摇啊!!!下面来看看是怎么回事!<body> <div id="d1">我是文字</div> <script> var a=document.getElementById("d1"); var b=a.innerHTML b.style.color="red"; console.log(b); &原创 2021-01-21 16:24:22 · 174 阅读 · 2 评论 -
返回回调函数笔试题
笔试题function multiFun(a,b,c){ return a*b*c; } var multi=exec(multiFun); console.log( multi(2,3,4) )//要求:实现exec()函数,实现输出24//答:1.从调用exec()函数方式来看,exec()只有一个参数 multiFun,就是一个回调函数,所以,基本形式:function exec(callback){}//2.exec()返回一个函数,题目要求,返回24,说明exec()返回的函数,执行的内容原创 2021-01-18 15:44:40 · 284 阅读 · 0 评论