
JS
huanxiaD
业精于勤而荒于嬉,行成于思而毁于随
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
switch中不能定义相同变量名的解决
在用swith的时候发现变量重复 解决办法如下: switch(key){ case aa: let name = '' break case bb: let name = '' break default: break } 这样会报错 这样解决,加{}提成局部变量就可以了 switch(key){ case aa: {let name = '' break } case bb: {let name = '' break } default: bre原创 2022-04-21 10:09:28 · 1802 阅读 · 0 评论 -
js 记不住的
快速去字符串逗号 str = str.replace(/,/g, "");原创 2022-01-05 11:20:50 · 411 阅读 · 0 评论 -
vue虚拟列表
什么是进程?什么是线程? 进程是系统进行资源分配和调度的一个独立单位,一个进程内包含多个线程。 渲染进程 GUI渲染线程(页面渲染) JS引擎线程(执行js脚本的) 事件触发线程(EventLoop轮询处理线程) 事件(onclick),定时器(setTimeout),ajax(xhr)(独立线程) GUI渲染线程和JS引擎线程 互斥的 我们所谓的js为什么是单线程的? 因为多个线程同时操作dom,一个删除,一个增加,就不知道取哪个了 把一些当前js引擎执行完毕后立即执行的成为微任务 把一些..原创 2021-09-23 09:29:02 · 129 阅读 · 0 评论 -
九种跨域处理
同源策略 协议 域名 端口 这三个一致就是同域 http://www.aa.cn:8081 https://www.bb.cn:8082 为什么浏览器不支持跨域 cookie localStorage这些都是同域下的,不支持跨域 DOM元素也也有同源策略 iframe ajax 也不支持跨域 实现跨域(期望两个页面见可以实现通信 怎么弄???) 1、jsonp 2、cors(后端提供) 3、postMessage (两个页面间的通信) 4、document.domain 5、window.name 6、l原创 2021-09-22 15:05:53 · 162 阅读 · 0 评论 -
观察者模式
//观察者模式 观察者和被观察者 是有关联的 观察者需要将自己放到被观察的者之上,放被观察者状态发生变化,需要通知所有的观察者 //我家有只,观察他饿不饿 class Subject{//被观察者 constructor(name){ this.name = name this.state = '不饿' this.observers = [] } attac...原创 2020-03-17 17:24:10 · 121 阅读 · 0 评论 -
es5中Object.keys,values,entries的使用
console.log(Object.keys({name:‘小红’,age:10})) console.log(Object.values({name:‘小红’,age:10})) console.log(Object.entries({name:‘小红’,age:10})) 对应的结果:原创 2020-03-17 15:47:17 · 472 阅读 · 0 评论 -
Element.getBoundingClientRect的用法
Element.getBoundingClientRect() 方法返回元素的大小及其相对于视口的位置 包括 width,height,x,y,top,left,right,bottom 语法 1、let rectObject = object.getBoundingClientRect(); 这样获取,获取到的是一个对象 2、如果想获取单个属性的值时,可用{}抱起来属性获取 let {widt...原创 2020-03-16 16:58:54 · 619 阅读 · 0 评论 -
typescript(4)中的类 Es5中的类和静态方法 继承(原型链继承、对象冒充继承、原型链+对象冒充组合继承)
1、最简单的类,构造函数 function Person(){ this.name = 'jack'; this.age = 18; } var p = new Person();//实例化一个方法 console.log(`${p.name}---${p.age}`); 2、构造函数和原型链里面增加方法 //构造函数上面的属性不会被多个实例共享 function Pers...原创 2019-05-30 11:52:26 · 356 阅读 · 0 评论 -
reduce(数组求和阶乘)
reduce reduce 收敛 4个参数,返回的是叠加后的结果, 原数组不发生变化,回调函数返回的结果 //从左向右 //prev 代表前一项,cur 代表当前项 【求和】 let arr =[1,3,5,8,9,7]; let sum = arr.reduce(function(prev,cur,index,arr){ //return 100;//本次的返回值 ...原创 2019-04-23 19:37:46 · 1054 阅读 · 0 评论 -
includes,find,some,every
//includes返回的是boolean let arr = [1,2,5,4,5,8,55,7]; console.log(arr.includes(5)); 返回的结果为true; //find 返回找到的那一项,不会改变数组,回调函数中返回true表示找到了,找到后停止循环,第一次找到就会停止,可以去找用户名密码 如果没有找到就会返回undefined let arr = [...原创 2019-04-23 18:52:18 · 247 阅读 · 0 评论 -
map(映射)
arr.map() 非常有用,做数据交互‘映射’,重新组装数返回新的数组 正常情况下,需要配合return ,返回一个新的数组 若是没return , 相当于forEach 的功能 let arr = [ {title:'aaaaa',read:100,hot:true}, {title:'bbb',read:200,hot:false}, {tit...原创 2019-04-23 18:06:45 · 871 阅读 · 0 评论 -
filter(过滤)
arr.filter() 过滤:过滤一些不合格的元素,如果回调函数返回true,就留下来 let arr=[1,2,5,8,7,5,3,68,9,8,9]; let newArr = arr.filter(function(item){ return item>2&&item<9; }); console.log(newArr); 返回一个新的数组。 ...原创 2019-04-23 17:51:18 · 184 阅读 · 0 评论 -
循环
【循环】 let arr = [1,2,3,4,5,6,7]; arr.b="aa"; 第一种for循环 for(let i = 0;i<arr.length;i++){//编程式 console.log("获取到的数据是:",arr[i]) } 结果,不会输出arr.b 第二种forEach(声明式,不支持return) //forEach 不支持return arr.fo...原创 2019-04-23 17:16:23 · 143 阅读 · 0 评论 -
event-loop (事件循环)
线程 javascript 是单线程的语言,也就是说,同一个时间只能做一件事。而这个单线程的特性,与它的用途有关,作为浏览器脚本语言,JavaScript 的主要用途是与用户互动,以及操作DOM。这决定了他只能是单线程,否则会带来很复杂的异步问题。比如,假定Javascript 同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准? 为了利用多...转载 2019-04-18 20:37:47 · 254 阅读 · 0 评论 -
Location 对象
Location 对象 Location 对象是 window 对象的一部分,可通过 window.Location 属性对其进行访问。 例如url 为http://www.w3cschool.cc/test.htm#PART2 属性 描述 hash 返回一个URL的锚部分(#和后面的内容)http://www.w3cschool.cc/test.htm#PART2结果为#part...原创 2018-11-20 16:14:50 · 104 阅读 · 0 评论 -
JS普通添加事件和事件绑定的区别
普通添加事件的方法: var btn = document.getElementById("hello"); btn.onclick = function(){ alert(1); } btn.onclick = function(){ alert(2); } 执行上面的代码只会alert 2 事件绑定方式添加事件: var btn = document.getElementById("he...转载 2018-11-20 16:58:14 · 212 阅读 · 0 评论 -
深入理解JS闭包
闭包(closure)是javascript 语言的一个难点,也是它的特色,很多高级应用都要依赖闭包是实现。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript 语言的特殊之处,就在于**函数内部可以直接读取全局变量。 代码如下: var n = 5 ; function f1(){ consol...转载 2018-11-23 10:47:50 · 154 阅读 · 0 评论 -
javascript中为何在匿名function函数后面还外加一个括号
详细研究过Javascript代码库(如Jquery、YUI)的人,一定会看到过很多如下形式的函数: (function(){…}())或 (function(){})() 对于很多初学者来说,遇到它们经常会产生一系列问号:这是编程吗,用它做什么,怎么我没在其他语言里见过呢? 接下来我就详细地解释一下: 它可以解释成为“匿名函数自调用”,也就是说,定义一个匿名函数,然后马上调用它(因为它是匿名的...转载 2018-11-23 10:47:09 · 1589 阅读 · 0 评论 -
对于用id可以直接获取对象的问题
今天发现有一个新的发现, <div id="demo">滴答滴答</div> 在js中使用时可以直接这样使用 demo.innerHTML = "helloworld"; 在没有获取通过方法获取demo的情况下,可以直接用的id获取到的元素? 然后从网上查了下, 为什么可以通过id直接访问对象,是因为所有的元素ID都相当于一个保存对象的全局变量。 通过id直接访问对象...原创 2018-11-26 14:44:26 · 803 阅读 · 0 评论 -
怎么样判断一个字符串中是否包含汉字(包括标点符号)
<script language="javascript"> function isChina(s){ var index = escape(s).indexOf("%u"); if(index < 0){return false;}else{return ture} } </script> 原理:escape对...转载 2019-02-01 15:31:06 · 5847 阅读 · 0 评论 -
正则表达式
正则表达式写法 创建正则表达式对象: 第一种: 1、var reg = /^xxx$/; 第二种: 2、var reg = new RegExp('^xxx$'); 下面举个栗子 function valid(){ //创建正则对象 var reg = /^a$/;//或者写成var reg = new RegExp('^a$'); var str = docum...原创 2019-02-27 10:30:57 · 226 阅读 · 0 评论 -
js 对象及空对象或数组及空数组的判断与比较
//判断是不是对象 let obj = {}; console.log("11111",Object.prototype.toString.call(obj)); console.log(Object.prototype.toString.call(obj)=="[object Object]"); //判断是不是数组 let array = []; console.log("222...原创 2019-03-10 22:09:21 · 322 阅读 · 0 评论 -
JavaScript函数节流和函数防抖之间的区别
大是大非转载 2019-04-18 19:14:13 · 119 阅读 · 0 评论 -
jquery如何让滚动条默认在最底部?
我这里有一个div css设置的是overflow:auto; 就是内容多了高度不够就会出来滚动条, 然后我希望刷新一下,这个滚动条默认的在最底下的位置,请问这个要怎么设置? $('#content').scrollTop( $('#content')[0].scrollHeight ); ...原创 2018-11-20 15:44:50 · 2295 阅读 · 0 评论