![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
weixiwo
这个作者很懒,什么都没留下…
展开
-
关于DOM操作-增删改查的练习
时隔两个多月,终于学到了DOM操作,下面是个人做的一个练习,适合新手小白在网页中,html标签,属性,文本,注释,整个文档都是节点而document文档节点,代表整个网页document,可以获取任意对象首先我们要了解dom,是如何获取元素节点的1.getElementById()通过id获取节点html代码<button type="button" id="btn">我是一个按钮</button>js代码var btn=document.getElementByI原创 2020-05-09 23:03:56 · 706 阅读 · 0 评论 -
作用域和作用域链
结果是10,因为作用域在定义好的时候就已经确定了,调用f()就是调用fn(),在fn()函数中找不到x变量,但是在全局作用域中有x=10。,每个函数都会创建自己的作用域,作用域在函数定义的时候已经确定,作用域是静态的,函数定义后一直存在,且不再变化。this.fn2是可以调用成功的,但是fn2是不行的,会根据作用域链去寻找,一直找不到fn2,然后报错。:从内到外,查找变量是沿着作用域查找,如果都找到全局作用域链,还找不到就抛出异常。原创 2023-03-13 21:39:45 · 50 阅读 · 0 评论 -
执行上下文和执行上下文栈
因为a3是function声明的函数,函数提升所以可以调用;因为b经过变量提升在window对象中,所以b in window是true,所以不能进去if判断,所以不能直接执行,所以b是undefined。先变量提升并赋值 undefined,然后函数提升并覆盖掉变量提升赋值的undefined,所以为 'function'当调用fn这个函数的时候,执行打印变量a,首先会在fn的作用域中寻找,由于在下面是var变量。用function定义的函数已经预处理执行了,但是fn3的函数还未执行,未函数提升。原创 2023-03-13 20:49:33 · 104 阅读 · 0 评论 -
JS实现多线程Worker
这样因为计算结果可能比较久,因为js单线程,所以此时前端页面交互阻塞,如果交给worker去处理,虽然数据返回结果较慢,但是用户可以继续操作界面。js是单线程的:javascript作为脚本语言,主要与用户交互,以及Dom操作,这就决定了js只能是单线程,否则会带来很复杂的同步问题。worker通过new方式创建出来,并且写入分线程的途径,这里采用相对路径,同于目录下的worker文件。使用:创建在分线程执行js文件,在主线程js中发送消息并设置回调。构造函数,加载分栈执行的js文件。原创 2023-03-13 16:59:09 · 1143 阅读 · 0 评论 -
判断数组还是对象方法
在面试契约锁时,问到了如何判断数组还是对象,只回答了ES6中的isArray()方法,当面试官继续提示我原型链上的方法时,我也想不起来,记录一下。通过原型链可知,函数对象都有prototype指向一个显示原型,显示原型上有一个constructor可以指回函数。typeof可以判断基本数据类型,但是引用数据类型其实都是object,所以是判断不出数组还是对象的。obj 是new Object函数构造出来的。arr是new Array函数构造出来的。原创 2023-03-13 11:14:07 · 360 阅读 · 0 评论 -
跨域-jsonp和cors处理
浏览器的同源策略是为了安全,同源策略是 协议、域名、端口 都要一致。原创 2023-03-13 10:35:26 · 59 阅读 · 0 评论 -
ajax和fetch
ajax是一种无需重新加载网页的情况下,能够更新网页的技术。通过后台与服务器之间进行数据交互,ajax可以实现网页异步更新,这就意味着在不重新加载整个页面。原创 2023-03-13 10:00:06 · 53 阅读 · 0 评论 -
类数组转对象
常常在操作dom时,获取的是类数组对象,所以不能直接利用数组的方法。面试的时候,需要将类数组对象转变成数组,记录一下方法。用类数组遍历是报错的,所以需要转为真正的数组。]解构方法转化成数组。原创 2023-03-12 20:57:38 · 52 阅读 · 0 评论 -
this指向
call()和apply()都是函数对象的方法,当调用函数call和apply方法都会调用这个函数,指定参数使其拥有其方法可以调用。复习了下this指向,就如上一篇写过的用过[ ].slice.call()一样,需要弄明白this的指向。在箭头函数中this的指向是指向父级的,所以调用forEach的是window对象。当前的程序,箭头函数的父级程序,没有this指向的就是window。箭头函数中,this的指向是父级程序的this指向。与普通函数的this指向是有区别的。person 是p对象调用的。原创 2023-03-09 17:57:21 · 48 阅读 · 0 评论 -
JS40 虚拟DOM
请补全JavaScript代码,要求将对象参数转换为真实的DOM结构并返回。创建每个标签,然后设置属性,对于children进行遍历再进行相同的操作。原创 2023-03-09 16:13:11 · 69 阅读 · 0 评论 -
JS39 字体高亮正则表达应用
new RegExp(key,“g”) 但是g代表全局,第二个参数表示要替换的参数,由于是需要被搜索的key关键字显示高亮,所以需要加入样式,使用模板字符串。请补全JavaScript代码,实现一个搜索字体高亮的效果。因为是全局搜索,并且改变,可以使用正则表达,replace代表是替换,原创 2023-03-09 11:52:42 · 107 阅读 · 0 评论 -
JS38 统计高频数据类型
判断在对象中类型是否存在,如果不存在则添加进去,如果存在就数量+1;每添加一种数据类型,或者数据类型的值+1,那么就判断最大的maxnum是不是最大的。请补全JavaScript代码,要求找到参数数组中出现频次最高的数据类型,并且计算出出现的次数,要求以数组的形式返回。但是数据类型有 基本数据类型,引用数据类型,引用数据类型就是’object’创建一个对象,用来存数据类型的出现次数 数据类型:次数。原创 2023-03-09 11:31:45 · 82 阅读 · 0 评论 -
JS36 切换Tab栏目
slice是数组的切片方法,[ ]自身也是也是一个对象,而数组原型链上有这个slice这个方法。call() 方法绑定this,然后让后面过去的伪数组变成数组。2.利用Array的原型对象的slice方法,配合call()方法修改slice中this指向。3.利用扩展运算符(…)将伪数组转化为真数组。这里的方法,如果想要了解什么是伪数组可以访问。4.利用ES6的Array.from方法。切换Tab栏目,然后对应卡片内容改变。1.将伪数组遍历到新数组中。但是今天另外值得学习的是。原创 2023-03-08 22:36:56 · 68 阅读 · 0 评论 -
JS33 监听对象 Object.defineProperty 数据代理 vue中数据代理原理
这里只简要介绍一下,Object.defineProperty也是vue数据双向绑定原理,关于其参数,监听对象,属性,这里面还有方法对象。当数据改变时,可以使用set方法来改变。原创 2023-03-08 20:11:20 · 519 阅读 · 0 评论 -
Proxy代理和拦截器
代理对象 拦截器的应用 通过代理才能直接访问对象创建一个proxy对象,里面传递两个参数原创 2023-03-08 17:35:38 · 98 阅读 · 0 评论 -
JS25 相同的Set
请补全JavaScript代码,要求以boolean的形式返回两个Set对象参数是否一样,是则返回true,否则返回false。首先判断集合元素个数是否相同,其次用ES6结构转化成数组,再用every方法,用s1中的每一个元素去判断s2。使用了数组every方法,判断数组所有元素是否都满足条件,都满足才返回true,不满足返回false。判断集合Set是否相同,使用集合方法。原创 2023-03-08 10:10:16 · 226 阅读 · 0 评论 -
JS24 Symbol
请补全JavaScript代码,要求以键/值对的对象形式返回参数数组。原创 2023-03-08 09:51:43 · 38 阅读 · 0 评论 -
JS14 参数解析器
Map 是JavaScript中的数据结构,它允许存储【键,值】对,其中任何值都可以用作键或值;Map集合中的键和值可以是任何类型,并且如果使用集合中已存在的键将值添加到Map集合中,新值将替换旧值。slice方法有两个参数,indexStart 和 indexEnd,分别表示截取的起始位置和结束位置,indexStart是必选的,indexEnd是可选的。2.**slice()**表示切片 slice方法并不改变原数组,而是返回新的数组。1.**lastIndexOf()**是记录最后一个问号的位置。原创 2023-03-07 22:26:43 · 139 阅读 · 0 评论 -
闭包的概述
此时存在闭包,将object2的this用that保存起来,存在内部函数引用外部函数的变量。1.产生:在嵌套内部函数定义执行完就产生了(不是在调用) 只是创建了内部函数对象。因为执行fn1创建了一个闭包,执行f()会执行fn2。当一个嵌套的内部(子)函数引用了嵌套外部(父)函数变量时,就产生了闭包。为什么因为调用时返回了一个函数,再执行函数,是this是window。1.函数执行完之后,函数内部声明的局部变量是否还在。2.在函数外部能直接访问到内部函数的局部变量吗。内部函数引用外部函数数据(变量)原创 2023-03-07 21:09:01 · 49 阅读 · 0 评论 -
原型与原型链
在图中实例对象,也是Object函数构造出来的,内置Object函数具有prototype属性,那么Object函数中有toString()方法,所以fn.toString()可以调用成功,因为可以根据隐式原型链查找。当在Fn的原型对象中添加test()方式后,由于fn是Fn的实例对象,当fn.test()方式时,在本身属性查找不到时,会根据隐式原型_proto_去查找方法。1.函数显示原型指向的对象,默认是空的Object实例对象 Object函数除外。中的地址找到原型对象,可以通过实例调用原型的方法。原创 2023-03-06 21:03:53 · 51 阅读 · 0 评论 -
JS9 新数组
请补全JavaScript代码,该函数接受两个参数分别为数组、索引值,要求在不改变原数组的情况下返回删除了索引项的新数组。howmany 可选规定应该删除多少元素 如果未规定此参数,则删除从index开始到原数组结尾的所有元素。splice() 通过splice截取目标索引的数组项,且会直接改变被操作的数组。但是concat()返回的是浅拷贝,如果数组中有引用类型,那么这个引用类型是共享的。这里复习splice方法用于添加或者删除数组中的元素。item 可以要添加到数组的新元素。原创 2023-03-06 10:57:50 · 46 阅读 · 0 评论 -
JS8 数组排序
数组排序原创 2023-03-05 22:32:19 · 50 阅读 · 0 评论 -
js中的正则表达式(二)
js正则表达式原创 2023-03-05 20:47:47 · 147 阅读 · 0 评论 -
JS3 分隔符
js3 分隔符原创 2023-03-04 22:31:53 · 54 阅读 · 0 评论 -
js div随鼠标移动
这几天一直补作业,今天来更新了。之前访问其他博客时,我看见有些图案可以随鼠标移动的效果,是那种浮动的,今天我们就做一个简单的div随鼠标移动吧效果 可以随鼠标随意移动喔 #box1{ width: 100px; height: 100px; background-color: blueviolet; position: absolute; }html代码,就简单的div图片 <原创 2020-05-17 19:50:13 · 295 阅读 · 0 评论 -
js中的正则表达式(一)
意义关于正则表达式,我们为什么要用正则表达式呢?生活中会遇到填写电话号码,邮件的,这些计算机可以根据正则表达式,来检查一个字符串是否符合规则,或者将符合规则的内容提取出来,也就是可以判断我们输入是否符合规范用法使用构造函数创建正则表达式正则表达式是一个对象var reg=new RegExp(“正则表达式”,“匹配模式”);在构造函数中 可以传递一个匹配模式作为第二个参数(可以是i 忽略大小写 ,g 全局匹配模式)var reg2=new RegExp("a","i");//此时a就是正则表原创 2020-05-12 00:15:46 · 1119 阅读 · 0 评论 -
js中String对象可以用的方法
首先String对象在底层都是以数组形式保存1.求字符串长度length属性var str="hello world";console.log(str.length);2.charAt()可以返回字符串中指定位置字符var str="hello world";var result=str.charAt(3);//这里3代表索引为3console.log(result);3.charCodeAt()是获取指定位置字符的unicode编码var str="hello world";var原创 2020-05-11 09:03:36 · 209 阅读 · 0 评论