
JS
jojo付啾啾
越努力越不想放弃。
展开
-
js快速交换数组里元素位置
参考:https://blog.youkuaiyun.com/qq_36812165/article/details/111224040原创 2021-03-04 19:20:46 · 314 阅读 · 1 评论 -
Thunk 函数的含义和用法
参考:Thunk 函数的含义和用法原创 2021-02-22 18:11:53 · 257 阅读 · 0 评论 -
vue 在IE11中报错 “对象不支持“assign”属性或方法”
一、ie11打开vue2.0项目空白,控制台报错vuex requires a Promise polyfill in this browserPromise为ES6语法,有的浏览器不支持ES6,所以需要安装babel-polyfill来将ES6转换为浏览器可识别的ES5语法①npm install --save-dev babel-polyfill②在main.js中引入import "babel-polyfill"③在build文件夹中webpack.base.conf.js将//entr..转载 2020-11-04 14:21:52 · 3754 阅读 · 1 评论 -
js 装饰器
1、安装:npm i -D@babel/plugin-proposal-decorators2、配置.babelrc:{ "presets": [ "@babel/preset-env" ], "plugins": [ ["@babel/plugin-proposal-class-properties", { "loose": false }], ["@babel/transform-runtime", { "corejs".原创 2020-10-27 16:45:37 · 294 阅读 · 0 评论 -
js错误提示Uncaught SyntaxError: Illegal return statement
if(!document.getElementsByTagName){ return false; //这样会出现一个Uncaught SyntaxError: Illegal return statement 的报错信息} //找了一下一个答案,发现js里return只能在函数中使用(function(){ if(!document.getElementsByTagName){ return false; //这样就不会报错了 } })()...转载 2020-09-18 20:16:58 · 716 阅读 · 0 评论 -
js怎么判断数组是否包含另一个数组
let a = [1, 2, 3, 4, 5, 6, 7, 8];let b = [1, 2];let c = [3, 9];function includes(arr1, arr2) { return arr2.every(val => arr1.includes(val));}console.log(includes(a, b)); //trueconsole.log(includes(a, c)); //false转自:https://blog.youkuaiyun.com/.转载 2020-08-31 15:59:11 · 7515 阅读 · 0 评论 -
h5 判断横竖屏
转自:https://www.cnblogs.com/AnotherLife/p/5764389.html转载 2020-06-29 13:06:32 · 792 阅读 · 0 评论 -
利用transform:scale属性完成移动端适配
//需要给设置scale属性的盒子添加csstransform-origin: 0 0;// 缩放 (function() { var ww = window.innerWidth; var wh = window.innerHeight; let scaleX = ww / 750; if (scaleX < 1) { $('#scaleContainer, .flex-box') .css('transform', 'scale.转载 2020-06-23 12:37:54 · 1484 阅读 · 0 评论 -
js匹配string中的img标签,提取src
正则匹配img src eventList.forEach(function (item) { let imgReg = /<img.*?(?:>|\/>)/gi //匹配图片中的img标签 let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i // 匹配图片中的src let str = item.content let arr = str.match(i转载 2020-06-20 11:08:14 · 3971 阅读 · 0 评论 -
html + js + css 实现可拖拽音频播放器
效果图index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <原创 2020-06-03 14:15:59 · 1612 阅读 · 0 评论 -
Event Loop 与异步更新策略
Micro-Task 与 Macro-Task事件循环中的异步队列有两种:macro(宏任务)队列和 micro(微任务)队列。常见的 macro-task 比如: setTimeout、setInterval、 setImmediate、script(整体代码)、 I/O 操作、UI 渲染等。常见的 micro-task 比如: process.nextTick、Promise、MutationObserver 等。参考:https://blog.youkuaiyun.com/woleigequs.转载 2020-05-29 10:16:35 · 172 阅读 · 1 评论 -
js中判断对象是否为空
1.es6中可以使用Object.keys(obj)var data = {};var arr = Object.keys(data);alert(arr.length == 0); //true 为空, false 不为空2.将json对象转化为json字符串,再判断该字符串是否为"{}"var data = {};var b = (JSON.stringify(data) == "{}");alert(b); //true 为空, false 不为空———————转载 2020-05-21 21:52:10 · 420 阅读 · 0 评论 -
用原生js获取json文件内容
<script> window.onload = function () { var url = "data/init.json"/*json文件url*/ var request = new XMLHttpRequest(); request.open("get", url);/*设置请求方法与路径*/ request.send(null);/*不发送数据到服务器*/ .转载 2020-05-21 21:49:59 · 1288 阅读 · 0 评论 -
JS中innerHTML动态绑定的事件丢失
转自:https://blog.youkuaiyun.com/qq_41818857/article/details/103752612转载 2020-05-15 14:54:55 · 546 阅读 · 0 评论 -
图片预览插件pinchzoom
https://github.com/manuelstofer/pinchzoom原创 2020-04-12 14:53:47 · 226 阅读 · 0 评论 -
一个元素同时绑定单击和双击事件
转自:https://blog.youkuaiyun.com/weixin_43967603/article/details/103279068转载 2020-04-11 17:39:38 · 1193 阅读 · 0 评论 -
转载:监听手势向上向下等滑动触发事件
https://blog.youkuaiyun.com/baidu_38027860/article/details/83412968转载 2020-04-11 16:12:49 · 377 阅读 · 0 评论 -
图片懒加载原理及实现
转自:https://www.jianshu.com/p/8e2a73638153转载 2020-03-18 12:16:47 · 242 阅读 · 0 评论 -
JS获取字符串实际长度(包含汉字)的简单方法
转自:https://www.cnblogs.com/JQstronger/p/GetLength.html转载 2020-02-26 14:12:13 · 874 阅读 · 0 评论 -
JavaScript querySelector()、querySelectorAll()方法介绍
转自:https://blog.youkuaiyun.com/qq_44034384/article/details/93612152转载 2020-02-12 11:53:30 · 315 阅读 · 0 评论 -
使用js实现不同终端引入不同的html页面css样式js等
转自https://www.cnblogs.com/baixiaosheng/p/4189210.html转载 2020-02-03 11:03:30 · 538 阅读 · 0 评论 -
对JS闭包的一点点理解
误解:JS闭包的本质是在函数内部访问函数外部的变量。(×) 例1: var n=1; function test(){ alert(n); } test(); //1上述例子并不属于JS闭包,以上属于JS的特性:在函数内部可以直接读取全局变量。但是!!!在函数外部无法访问到函数内部定义的局部变量。 例2: function原创 2017-02-21 10:13:46 · 624 阅读 · 0 评论 -
setInterval()和clearInterval()
setInterval()和clearInterval()是BOM中window对象的两个方法。 setInterval():设置定时器方法——接收两个参数arg1,arg2; arg1可以是字符串,改字符串是js代码;也可以是一个函数对象。 arg2是一个整数,单位是ms。 返回值:打开的定时器的ID。 例1: window.setInterval(“alert(‘Hello wor原创 2017-02-27 13:19:56 · 1121 阅读 · 0 评论 -
JS循环给li添加单击事件时总是弹出最后一个i值
<body> <ul> <li>0</li> <li>1</li> <li>2</li> <li>3</li> </ul></body>题目:单击列表项弹出对应的数字。 错误方法:<script type="text/javascript"> var list=document.getElements原创 2017-03-13 17:47:51 · 2448 阅读 · 0 评论 -
js中关于this的指向
之前看到过一个很不错的关于js中this的指向问题的解释,这里将它截屏保存,方便自己找。给出我的参考链接: https://segmentfault.com/q/1010000005363626原创 2017-04-09 21:03:17 · 378 阅读 · 0 评论 -
用JS将一个升序数组转换成一个二叉排序树
思路:将数组中间那个元素设为树的根节点,然后剩下左右两个数组用递归的方法构建左右子树。 代码如下:<script>// Node表示树的节点function Node(data,left,right){ this.data = data; this.left = left; this.right = right;}// 将数组转为二叉查找树function arrConver原创 2017-05-03 11:21:24 · 1176 阅读 · 0 评论 -
js转换Date日期格式
有时候做项目会用到js的date日期格式,因为Date()返回的格式不是我们需要的,Date()返回格式: Thu Mar 19 2015 12:00:00 GMT+0800 (中国标准时间)而我们则需要这样的格式: 2015-3-19 12:00:00除非是在后台处理好时间格式,然后在页面直接显示。那如何用js格式化date日期值呢?1.js方法返回值:2015-03-19var fo转载 2017-07-13 09:56:23 · 360 阅读 · 0 评论 -
ajax动态加载数据后的click事件问题
问: 为什么ajax加载出来的html,无法用选择器绑定事件,但可以直接在html上使用onclick等事件? 如ajax 加载了<div class="div">div</div> 然后$('.div').click(function(){.....});click操作无效但是如果加载 <div onclick=dofun("prameter")>div</div> dofun 就可以被on转载 2017-07-19 12:54:35 · 6578 阅读 · 1 评论 -
JS中带返回值的构造函数
传统语言中,构造函数是没有返回值的。构造函数与普通函数的区别可以认为是:构造函数中没有return语句,普通函数可以return;构造函数中使用this定义成员变量和成员方法,普通函数中不使用this关键字定义成员变量和方法。然而在JavaScript中构造函数可以有返回值也可以没有。1.没有返回值的情况像其他传统语言一样,返回实例化的对象:function Person(){ this.n转载 2017-08-06 15:55:11 · 1283 阅读 · 0 评论 -
JS中==是怎么判断的
刚接触js不久的时候,看了js高程那本书,当时对里面的很多知识的了解都是处于一个“知道有这个东西”的程度,随着后面接触的稍微多一些的时候,遇到的问题也多了,就发现有些东西自己并没有理解透彻,需要再次理解巩固,而且温故知新嘛。以前对js的==判断的理解就是:如果两边的操作数类型一致,则直接比较值相不相等;如果两边操作数类型不一致,则先对操作数进行类型转换再比较。但是后面发现好像这样推出来的结果有时候与原创 2017-08-24 18:12:11 · 1282 阅读 · 1 评论 -
js创建单链表及倒序单链表
最近在准备校招,又拾起了数据结构……希望能早点找到心仪的工作嘻嘻创建单链表首先要有节点,节点包含两部分,一部分存储数据,一部分存储指向下一个节点的链接。节点可以用一个类来表示:function Node(data){ this.data = data; //数据 this.next = null; //链接}还需要一个链表类来表示链表的一些属性及方法:(包含一个属性,即头节点,原创 2017-09-14 21:16:27 · 1547 阅读 · 0 评论 -
js统计html中标签出现次数最多的标签
思路:要统计标签出现的次数,首先肯定要获取html中的标签,然后再统计各个标签出现的次数。因为不能一下子获得所有的标签,所以只能先获得根元素,然后通过获取它的子元素来进行统计。很久没有用原生js了,所以误以为childNodes是获得当前元素的所有子节点,后来才发现只是获取当前元素的直接子节点。。。如果能一下子获取所有节点那太简单了,直接统计就行了。可是这个只能获取直接子节点,所以还得加上递归才行。原创 2017-09-03 12:03:52 · 4246 阅读 · 0 评论 -
原生js实现公告滚动效果
1.html结构<body> <div id="notice" class="notice"> <ul id="noticeList"> <li>我是公告1</li> <li>我是公告2</l原创 2018-08-09 16:09:17 · 2465 阅读 · 1 评论 -
js中window对象的各种宽高
1.热身window和document的区别 window对象:浏览器中打开的窗口 document对象:是window对象的一部分,document.body可以用window.document.body。浏览器的html文档是document对象 window.location和document.location是全等的,都是引用的...原创 2018-08-09 17:08:16 · 5126 阅读 · 0 评论 -
js中元素的各种宽高
主要看这张图,感觉图的意思很清晰了1.与client相关的宽高clientWidth/clientHeight——元素的可视部分的宽度和高度,即padding+content,如果出现滚动条,则要减去相应滚动条的宽度。 无padding无滚动条:clientWidth = style.width 有padding无滚动条:clientWidth = style.width+sty...原创 2018-08-09 18:46:02 · 685 阅读 · 0 评论 -
js中Event对象的5种坐标
1.clientX/clientY——相对于浏览器可视区左上角(0,0)的坐标2.screenX/screenY——相对于设备屏幕左上角(0,0)的坐标3.offsetX/offsetY——相对于事件源左上角(0,0)的坐标,例如点击一个div,则该div就是事件源4.pageX/pageY——相对于整个网页左上角(0,0)的坐标5.X/Y——本来是IE的属性,相对于用css动态定...原创 2018-08-09 19:48:14 · 1368 阅读 · 0 评论 -
js可视区域加载
当元素处于可视区域时再加载,例如淘宝天猫上打开网页时不是所有图片都加载出来了,而是当滚动条滚动到那个区域时才加载出来图片。 方法:判断元素顶部到浏览器窗口顶部的距离是否小于可视区域高度,如果小于就显示。这里可以用一个方法: getBoundingClientRect(),该方法返回一个对象,该对象存储了元素四个边界到浏览器窗口上边和左边的距离。getBoundingCli...原创 2018-08-09 20:35:31 · 1940 阅读 · 0 评论 -
js网页滚动到顶部或者底部后触发事件
思路:当可视区域+卷起来的部分>=网页的高度,说明网页滚动到了底部;当卷上去的部分为0说明网页滚动到顶部了。代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport"原创 2018-08-10 11:29:47 · 4484 阅读 · 1 评论 -
div滚动到底部后再加载其他内容
思路:同前面判断网页滚动到底部的方法一样,如果div的可视高度+卷起高度>=div.scrollHeight,则到底部了,可以加载新的内容了。代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name=&quo原创 2018-08-10 13:51:45 · 2292 阅读 · 0 评论 -
js获取滚动条宽度
思路:通过创建一个元素,不要给元素设置边框,然后给元素设置overflowY:scroll,再根据元素的offsetWidth-clientWidth来计算滚动条宽度。代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta nam原创 2018-08-10 14:41:41 · 6823 阅读 · 0 评论