
JavaScript
花椰菜14528
这个作者很懒,什么都没留下…
展开
-
Object.defineProperty()方法
Object.defineProperty()方法目的:直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。语法:Object.defineProperty(obj, prop, descriptor)参数:obj要定义属性的对象。prop要定义或修改的属性的名称或 Symbol 。descriptor要定义或修改的属性描述符。返回值:被传递给函数的对象。...原创 2021-06-02 11:10:08 · 117 阅读 · 0 评论 -
防抖与回流
防抖与回流防抖策略:当事件被触发后,延迟n秒后执行回调,如果在这n秒内事件又被触发,则重新计时实现输入框防抖:1.定义防抖的id var timer = null;2.定义防抖函数function de (keywords){ timer = setTimeout(function(){ getSuggestList(keywords) },500}}3.调用函数$('#ipt').on('keyup',function(){ clearTimeout(ti原创 2021-06-01 23:23:11 · 223 阅读 · 0 评论 -
for in 和 for of的区别详解
for in 和 for of的区别详解for in 和 for of 相对于大家肯定都不陌生,都是用来遍历属性的没错。那么先看下面的一个例子:例1 const obj = { a: 1, b: 2, c: 3 } for (let i in obj) { console.log(i) // a // b // c } for (let i of obj转载 2021-05-31 20:06:42 · 145 阅读 · 0 评论 -
同源与跨域
同源与跨域1.同源协议、域名、端口号都一样(默认端口号为80)2.跨域协议、域名、端口号中存在一项或多项不一样同源策略:浏览器的安全机制,网站A、网站B之间不同源,不允许进行资源交换拦截时间:资源返回时被浏览器拦截跨域数据请求:JSONP和CORSJSONP:不是W3C标准,但兼容性好(兼容低版本IE),只支持GET请求,不支持POST请求CROS:W3C标准,兼容性不好,不兼容低版本浏览器,支持GET请求和POST请求JSONP原理:利用<script>标签不受同源策略的原创 2021-05-29 14:43:38 · 119 阅读 · 0 评论 -
关于this的指向问题
关于this的指向问题函数的不同调用方式决定了this 的指向不同1. 普通函数 this 指向windowfunction fn() { console.log('普通函数的this' + this); }window.fn();2. 对象的方法 this指向的是对象 ovar o = { sayHi: function() { console.log('对象方法的this:' + this); }}o.sayHi();3. 构造函数 th原创 2021-05-27 22:39:07 · 104 阅读 · 0 评论 -
闭包与闭包函数
闭包闭包是一种状态闭包函数是指有权访问另一个函数作用域中变量的函数简单例子:闭包函数:fn()function fun(){ let num=10; function fn(){ console.log(num); } fu();}fun();进一步加深在fun()函数外部作用域可以访问其内部变量function fun(){ let num=10; function fn(){ console.log原创 2021-05-26 22:09:26 · 410 阅读 · 0 评论 -
哈希函数
关于哈希函数哈希函数一种函数H,根据这个函数和查找关键字key,可以直接确定查找值所在位置,这个函数就是哈希函数,而哈希表是基于哈希函数建立的一种查找表哈希冲突对应不同的关键字(数值)可能获得相同的hash地址哈希冲突解决办法链地址法:为每个哈希值维护一个链表,并将具有相同哈希值的元素都放入这一链表当中。如下图开放地址法:当发现哈希值 hh 处产生冲突时,根据某种策略,从 hh 出发找到下一个不冲突的位置。例如,一种最简单的策略是,不断地检查 h+1,h+2,h+3,\ldotsh+1,原创 2021-05-12 20:16:23 · 280 阅读 · 0 评论 -
JavaScript中Map和Set
JavaScript中Map和SetMapMap是一组键值对的结构,具有极快的查找速度。Map的定义。//空map设值key-valuevar m = new Map();m.set("XiaoMing",99);m.set("XiaoHong",66);//构造参数传key-valuevar m = new Map([['XiaoMing', 99], ['XiaoHong', 66]]);Map中的方法var m = new Map(); // 空Mapm.set('Xia转载 2021-05-11 16:47:27 · 237 阅读 · 0 评论 -
mouseover与mouseenter的区别
mouseover与mouseenter的区别mouseover鼠标经过自身和经过子盒子都会触发mouseenter只有鼠标经过自身才会触发,原因它不会冒泡原创 2021-04-24 10:26:50 · 68 阅读 · 0 评论 -
关于自定义属性
关于自定义属性定义获取原创 2021-04-23 23:03:42 · 74 阅读 · 0 评论 -
关于 == 与 === 的区别
关于 == 与 === 的区别“==” 的比较规则先检查两个操作数的数据类型是否相同如果相同,则比较两个数是否相等如果不同,则先将两个数转换为相同数据类型,再进行比较例子这里可以看到,数字型的 1 竟然与字符型的 ‘1’ 、数组 [1] 】布尔值 true 相等了,这是因为js自动进行了一次数据类型转换,将字符串、数组、布尔值转为数字,再进行比较。“=”的比较规则先检查两个操作数的数据类型是否相同若不同,直接返回false若相同,则比较二者是否相等跟不同,当数据类型不同时, 不进行转载 2021-04-23 19:59:09 · 103 阅读 · 0 评论 -
对象
对象1.对象:由属性和方法组成创建对象三种方式对象字面量创建对象调用对象的属性调用对象的方法对象名.方法名();new object 创建对象构造函数创建对象解决创建多个对象,其属性方法相同把对象里面的相同属性方法抽取出来封装到函数构造函数创建对象的过程称为对象的实例化new关键字的执行过程遍历对象for in遍历对象...原创 2021-04-22 21:53:37 · 78 阅读 · 0 评论 -
函数
函数1.函数只有调用后函数才会被执行参数:形参:声明函数的参数——接受实参的数据实参:调用函数的参数js中形参和实参数量问题返回值return语句return终止函数作用,后面代码不会被执行return函数只能返回一个值,返回的结果为最后一个值如果函数没有return,返回undefined(函数必定会返回值)arguments:存储了传递的所有实参;以伪数组形势展示只有函数才有arguments对象、而且是每个函数都内置好了这个arguments伪数组:具有数组的属性、原创 2021-04-22 21:53:14 · 87 阅读 · 0 评论 -
事件
事件事件三要素执行事件过程原创 2021-04-22 21:52:24 · 77 阅读 · 0 评论