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 · 1497 阅读 · 0 评论 -
js 记不住的
快速去字符串逗号str = str.replace(/,/g, "");原创 2022-01-05 11:20:50 · 373 阅读 · 0 评论 -
vue虚拟列表
什么是进程?什么是线程?进程是系统进行资源分配和调度的一个独立单位,一个进程内包含多个线程。渲染进程GUI渲染线程(页面渲染)JS引擎线程(执行js脚本的)事件触发线程(EventLoop轮询处理线程)事件(onclick),定时器(setTimeout),ajax(xhr)(独立线程)GUI渲染线程和JS引擎线程 互斥的我们所谓的js为什么是单线程的?因为多个线程同时操作dom,一个删除,一个增加,就不知道取哪个了把一些当前js引擎执行完毕后立即执行的成为微任务把一些..原创 2021-09-23 09:29:02 · 90 阅读 · 0 评论 -
九种跨域处理
同源策略协议 域名 端口 这三个一致就是同域http://www.aa.cn:8081https://www.bb.cn:8082为什么浏览器不支持跨域cookie localStorage这些都是同域下的,不支持跨域DOM元素也也有同源策略 iframeajax 也不支持跨域实现跨域(期望两个页面见可以实现通信 怎么弄???)1、jsonp2、cors(后端提供)3、postMessage (两个页面间的通信)4、document.domain5、window.name6、l原创 2021-09-22 15:05:53 · 90 阅读 · 0 评论 -
观察者模式
//观察者模式 观察者和被观察者 是有关联的 观察者需要将自己放到被观察的者之上,放被观察者状态发生变化,需要通知所有的观察者//我家有只,观察他饿不饿class Subject{//被观察者 constructor(name){ this.name = name this.state = '不饿' this.observers = [] } attac...原创 2020-03-17 17:24:10 · 96 阅读 · 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 · 414 阅读 · 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 · 538 阅读 · 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 · 294 阅读 · 0 评论 -
reduce(数组求和阶乘)
reducereduce 收敛 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 · 979 阅读 · 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表示找到了,找到后停止循环,第一次找到就会停止,可以去找用户名密码如果没有找到就会返回undefinedlet arr = [...原创 2019-04-23 18:52:18 · 194 阅读 · 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 · 815 阅读 · 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 · 127 阅读 · 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 不支持returnarr.fo...原创 2019-04-23 17:16:23 · 106 阅读 · 0 评论 -
event-loop (事件循环)
线程javascript 是单线程的语言,也就是说,同一个时间只能做一件事。而这个单线程的特性,与它的用途有关,作为浏览器脚本语言,JavaScript 的主要用途是与用户互动,以及操作DOM。这决定了他只能是单线程,否则会带来很复杂的异步问题。比如,假定Javascript 同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?为了利用多...转载 2019-04-18 20:37:47 · 151 阅读 · 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 · 72 阅读 · 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 · 162 阅读 · 0 评论 -
深入理解JS闭包
闭包(closure)是javascript 语言的一个难点,也是它的特色,很多高级应用都要依赖闭包是实现。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript 语言的特殊之处,就在于**函数内部可以直接读取全局变量。代码如下:var n = 5 ;function f1(){ consol...转载 2018-11-23 10:47:50 · 93 阅读 · 0 评论 -
javascript中为何在匿名function函数后面还外加一个括号
详细研究过Javascript代码库(如Jquery、YUI)的人,一定会看到过很多如下形式的函数: (function(){…}())或 (function(){})()对于很多初学者来说,遇到它们经常会产生一系列问号:这是编程吗,用它做什么,怎么我没在其他语言里见过呢?接下来我就详细地解释一下:它可以解释成为“匿名函数自调用”,也就是说,定义一个匿名函数,然后马上调用它(因为它是匿名的...转载 2018-11-23 10:47:09 · 1441 阅读 · 0 评论 -
对于用id可以直接获取对象的问题
今天发现有一个新的发现,<div id="demo">滴答滴答</div>在js中使用时可以直接这样使用demo.innerHTML = "helloworld";在没有获取通过方法获取demo的情况下,可以直接用的id获取到的元素?然后从网上查了下,为什么可以通过id直接访问对象,是因为所有的元素ID都相当于一个保存对象的全局变量。通过id直接访问对象...原创 2018-11-26 14:44:26 · 722 阅读 · 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 · 5731 阅读 · 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 · 163 阅读 · 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 · 259 阅读 · 0 评论 -
JavaScript函数节流和函数防抖之间的区别
大是大非转载 2019-04-18 19:14:13 · 82 阅读 · 0 评论 -
jquery如何让滚动条默认在最底部?
我这里有一个divcss设置的是overflow:auto; 就是内容多了高度不够就会出来滚动条,然后我希望刷新一下,这个滚动条默认的在最底下的位置,请问这个要怎么设置?$('#content').scrollTop( $('#content')[0].scrollHeight );...原创 2018-11-20 15:44:50 · 2242 阅读 · 0 评论