javascript
文章平均质量分 53
wayne丶
不忘初心
展开
-
js区 获取当前客户端系统 环境
/* * @Autor: 肖皓文 * @Date: 2020-12-21 19:24:11 *//** * @return { Object } */const ua = navigator.userAgent.toLowerCase();const platform = {};const MAP_EXP = { Weixin: /micromessenger/i, Mac: /(mac os x)\s+([\w_]+)/, Windows: /(window.原创 2020-12-21 19:48:07 · 2296 阅读 · 0 评论 -
JS获取本地文件的内容 (兼容性处理)
function upload(input) { //支持chrome IE10 if (window.FileReader) { var file = input.files[0]; filename = file.name.split(".")[0]; var reader = new FileReader(); reader.onload = function() { .原创 2020-12-10 10:26:12 · 1765 阅读 · 0 评论 -
js数组常用方法
目录目录创建数组数组常用方法0.Array.isArray()用于确定传递的值是否是一个Array。1.Array.of() 返回一个由参数组成的数组2.Array.from() 将数组对象转换为数组 不改变原对象 返回新数组3.pop() 删除数组最后一个元素(改变原数组) 返回被删除的元素4.shift() 删除数组的第一个元素 (改变原数组) 返回被删除...原创 2019-04-23 11:33:07 · 19295 阅读 · 3 评论 -
js 几种数组去重方法 欢迎补充
日常工作中和面试中也经常会遇到数组去重这个问题。在这里整理了几种比较常见的方案,声明数组var a = [1, 2, 3, 4, 5, 1, 2, 3,6]lesson1 :双重forfunction norepeat(a) { // 第一层for用来控制循环的次数 for (var i = 0; i < a.length; i...原创 2019-05-06 16:25:13 · 141 阅读 · 0 评论 -
javascript 深拷贝 (多层嵌套解决方案)
在js中,数组和对象的复制 如果是用 = 号来进行复制,那只是浅拷贝。如下图:对arr的修改,会影响arr2的值,这显然在绝大多数情况下,并不是我们所需要的结果。var arr = [1,2,3,4]var arr2 = arrarr[0] = 5;console.log(arr)console.log(arr2) 数组的几种方法深拷贝总结var arr = [3,...原创 2019-05-15 15:25:55 · 4311 阅读 · 2 评论 -
ES6 fetch请求
先贴代码 看下 ajax 和fetch 之间的区别{// 原生ajax function ajax(){ xmlHttp = new XMLHttpRequest(); xmlHttp.open('get','https://api.github.com/users',true) xmlHt...原创 2019-05-24 16:40:03 · 527 阅读 · 0 评论 -
getComputStyle的理解
getComputStyle的应用在js中,如果想获取到元素的属性值,我们一般用document.getElementById(‘element’).style.xxx方法,就可以获取元素的样式信息,可是它获取的只是DOM元素style属性里的样式规则,对于通过class属性引用的外部样式表,就得不到我们要的信息了。因此我们使用DOM标准里的全局方法getComputedStyle。比如get...原创 2019-05-21 17:40:08 · 554 阅读 · 0 评论 -
本地存储localstorage 封装库
使用本地存储localstoragelocalstorage是 HTML5 提供的在客户端存储数据的新方法,主要作用是将数据保存在客户端中,并且数据是永久保存的,除非人为干预删除。localstorage作为本地存储来使用,解决了cookie存储空间不足的问题:cookie中每条cookie的存储空间为4k,但localStorage的存储空间有5M大小。另外,相比于cookie,loc...原创 2019-05-22 10:19:09 · 3009 阅读 · 1 评论 -
Object.prototype.toString.call(obj)精确判断对象的类型
在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object”,“function” 六种。对于数组、null、对象来说,其关系错综复杂,使用 typeof 都会统一返回 “object” 字符串。要想区别对象、数组、函数单纯使用 typeof 是不行的,JavaScri...原创 2019-06-12 11:33:06 · 6305 阅读 · 4 评论 -
javascript 各种宽高
网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scrollWidth ...原创 2019-06-27 08:58:11 · 203 阅读 · 0 评论 -
JavaScript 计算出 指定月份前的时间
写的小案例 对特殊日期没有做处理 比方 每个月月份不同的天数 可以再加判断去做,仅作参考 写的不好的地方欢迎指出var arr=['2017-03-31','2018-09-12','2018-12-04','2019-05-01','2019-06-31'] // 筛选出 数组中 符合规定时间区域的 数据 function getpreDate() {//获取当...原创 2019-07-04 11:21:56 · 367 阅读 · 0 评论 -
JavaScript获取当前域名 Url 路由路径 路由参数
一、获取当前域名var domain = document.domain;var domain = window.location.host;获取到的当前域名不包括 http://,如本地 127.0.0.1所以把获取到的域名使用时候要加上 http://否则单击链接时导航会出错。二、获取当前Url var url = window.location.href;...原创 2019-08-01 15:17:50 · 2861 阅读 · 0 评论 -
js 字符串对象 整理
js字符串用于储存和处理文本。下面整理下字符串常用操作语法。1、定义字符串字符串可以是插入到引号中的任何字符。你可以使用单引号或双引号如:var name = 'wayne';var name = "wayne"; 你也要在字符串中添加转义字符来使用引号如:var str = 'It\'s is string';var str1 = 'my name is \"wa...原创 2019-08-06 15:40:18 · 185 阅读 · 0 评论 -
javascript 节流/防抖 (网络请求性能优化)
在网页实际运行的某些场景下,有些事件时会被不间断的被触发的,如resize事件,而不像是我们想象中的,滚动一次触发一次。这种情况下,由于过于频繁地DOM操作和资源加载,严重影响了网页性能,甚至会造成浏览器崩溃,合理的使用节流 可以防止以上情况发生节流/防抖 就是规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效。就好比如水滴攒到一定的重量才会落下一样,常见...原创 2019-04-10 11:14:39 · 315 阅读 · 0 评论 -
js json序列换和反序列化
先贴代码看效果var arr = [{name:'xhw'},{name:'cky'}]console.log(typeof arr)var arr1 = JSON.stringify(arr)//将 JavaScript json对象转换为JavaScript对象表示法的JSON字符串(对象转为字符串)console.log(arr1)console.log(typeof ar...原创 2019-04-04 10:27:08 · 600 阅读 · 0 评论 -
整理一下Javascript中进行遍历操作的所有方法
以数组 const arr = [1,2,3,4,5] 为例,有如下方法可以用于遍历操作。1 forfor (let i = 0; i < arr.length; i++){ console.log(arr[i])}2 for-infor(let index in arr){ console.log(arr[index]); }for-in实...原创 2019-01-18 10:17:51 · 2697 阅读 · 0 评论 -
关于height、offsetheight、clientheight、scrollheight、innerheight、outerheight的区别一览
原文:https://www.cnblogs.com/layaling/p/6223372.html平时,不管在pc端页面还是移动端页面,因为我们一般很少会设置某个块的的高度,但是呢,我有时候有需要取到这些高度以便于我们方便进行判断和下一步的编写。一般这个时候我都是直接的获取一个块的高度.height(),来解决,但是有的时候我翻翻查查发现还有offsetheight,而这两者之间还是有一些...转载 2019-02-12 14:30:36 · 1163 阅读 · 0 评论 -
js监听事件的绑定事件与移除事件
监听事件的绑定和移除主要是addEventListener和removeEventListener的应用addEventListener语法element.addEventListener(type,handler,false/true)type:事件类型handler:事件执行触发的函数false/true:false为冒泡/ture为捕获,参数是true,表示在捕获阶段调用...原创 2019-03-06 11:01:26 · 10714 阅读 · 0 评论 -
js获取窗口滚动条高度、窗口可视范围高度、文档实际内容高度、滚动条离浏览器底部的高度
1.获取窗口可视范围的高度//获取窗口可视范围的高度function getClientHeight(){ var clientHeight=0; if(document.body.clientHeight&&document.documentElement.clientHeight){ var clientHeight=(do...转载 2019-03-06 11:44:59 · 1106 阅读 · 0 评论 -
禁止页面下拉刷新 兼容 pc/ios/安卓/微信
$("body").css({'touch-action': 'none'});document.body.addEventListener('touchmove', (e) => { e.preventDefault(); e.stopPropagation();}, { passive: false })//不适合滚动页面 若页面内容过长 将不能滑动...原创 2019-03-14 15:35:38 · 1239 阅读 · 1 评论 -
js 延时操作 获取滚动条高度
代码记录<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"&g原创 2019-03-11 13:20:21 · 304 阅读 · 0 评论 -
JS执行顺序与异步处理方式
js运行机制javascript 语言的执行环境是‘单线程’的,就是指一次只能完成一个任务。如果有多个任务,就必须排队执行,前面的任务完成后再执行下一个任务。那么为什么是单线程的呢?因为js渲染在浏览器上,包含了许多与用户的交互,如果是多线程那么试想一个场景:一个线程在某个dom上添加内容,而另一个线程删除这个dom,那么浏览器要如何反应呢?这就乱套了。这种环境的好处就是实现起来比较简单,...原创 2019-03-11 16:01:08 · 4186 阅读 · 0 评论 -
JS中的!=、== 、!==、===的用法和区别
varnum = 1;varstr ='1';vartest = 1;test == num//true 相同类型 相同test === num//true 相同类型 相同值test !== num//false test与num类型相同,其值也相同, 非运算肯定是falsenum == str//true 把str转换为数字,检查其是否...原创 2019-03-11 16:07:32 · 25388 阅读 · 0 评论 -
JS定时器
JS的定时器:setTimeout、setInterval。定时器也是一种异步任务,通常浏览器都有一个独立的定时器模块,定时器的延迟时间就由定时器模块来管理,当某个定时器到了可执行状态,就会被加入主线程队列。JS定时器非常实用,做动画的肯定都用到过,也是最常用的异步模型之一。有时候一些奇奇怪怪的问题,加一个setTimeout(fn, 0)(以下简写setTimeout(0))就解决了...原创 2019-03-11 16:39:27 · 153 阅读 · 0 评论 -
javascript基础 去除字符串空格
方法1:使用正则匹配的方法replacevar str = ' xiao hao wen ';str = str.replace(/\s*/g,"");//去除所有空格str = str.replace(/^\s*|\s*$/g,"");//去除两头空格str = str.replace( /^\s*/, “”);//去除左空格str = str.replace(/(\s*$)/...原创 2019-03-25 16:39:35 · 144 阅读 · 0 评论 -
javascript基础 DOM操作 增,删,改,查
//1创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节点//2添加、移除、替换、插入 appendChild() //添加 removeChild() //移除 replaceChild() //替换 insertB...原创 2019-03-25 17:05:33 · 167 阅读 · 0 评论 -
JavaScript刷新页面的几种方法
1,reload 方法,该方法强迫浏览器刷新当前页面。语法:location.reload([bForceGet])参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新")2,replace 方法方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使...原创 2019-03-19 13:35:00 · 7774 阅读 · 1 评论 -
最新手机号验证正则
因手机号新增加166 199 开头的号码 之前的正则做一遍更新最新正则为:var myreg=/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;原创 2018-12-14 10:36:16 · 453 阅读 · 0 评论