js
文章平均质量分 62
赏花赏景赏时光
这个作者很懒,什么都没留下…
展开
-
js中数字运算结果与预期不一致的问题和解决方案
本文主要是和大家聊聊关于js中经常出现数字运算结果与预期结果不一致的问题,与及解决该问题的的方案。原创 2023-02-19 15:55:47 · 1571 阅读 · 1 评论 -
js上一些兼容性问题
问题:后台返回日期的格式为:date=“2020-01-01”,然后在js中利用该数据得到Date对象,即d = new Date(2020-01-01),这种格式初始化在安卓手上是正常的,但是ios上不支持这种格式。解决方式:在调用new Date()方法之前,统一处理好入参的格式,即“2020-01-01” .replace(/-/g, '/'),将“2020-01-01”格式转化为“2020/01/01”形式。比如:0.1这种转化为二进制码是有误差的,尾数是一个不断循环的数,明显会有误差。...原创 2022-08-14 17:54:08 · 801 阅读 · 0 评论 -
js的一些基本知识点
1、js中的执行机制、event-loop众所周知,js是一门单线程语言,而js中将任务分为同步和异步任务、异步任务;而异步任务又分为宏任务(setTimeout. setInterval等)和异步任务(promise.then process.nextick等),而微任务优先级大于宏任务同步任务会进入主线程、异步任务会根据任务类型分别进入宏任务、微任务队列中。1、当执行主线程的时候,遇到宏任务则将宏任务放进宏任务队列中,遇到微任务则将微任务放进微任务队列中2、当主线程执行完之后,会去遍历.原创 2021-05-17 22:04:15 · 283 阅读 · 0 评论 -
Array的原型对象上方法实现
1、Array.prototype.includes(findVal, fromIndex):查找某元素是否包含在数组中入参:findVal----要查找的元素,必填fromIndex-----指定开始查找的索引位置,非必填,默认为0返回结果:boolean:true---元素包含在数组中,false-不包含示例:[2,3,45].includes(2)----true [2,3,45].includes(1)----false [2,3,45].includ...原创 2021-05-16 17:13:46 · 420 阅读 · 0 评论 -
try-catch-finally的执行顺序
下面说下在javascript中try-catch-finally的执行顺序1、不管有没有出现异常,都会执行finally中的代码2、不管try catch中有没有return,都会执行finally中的代码3、若try或者catch中有return,finally中没有return,则一定是执行了try、catch中的语句,接着执行finally中的语句,最后才会执行try、catch中的return4、若try、catch没有return,finally中有return,则一定是执行..原创 2021-05-09 14:43:54 · 2222 阅读 · 0 评论 -
获取日期的时间戳问题、前端倒计时不准问题
获取日期的时间戳问题、前端倒计时不准问题1、获取日期的时间戳问题:new Date(date).getTime(),用该方法来获取时间戳,在ios中返回NaN,安卓机正常原因:date = ’2020-09-09 12:00‘,在ios中,时间不能用‘-’分割,应该用/,即应该用“2020/09/09 12:00”,否则会报下 面的错误:Cannot assign to read only property 'exports' of object '#<Object>'因此在调用new原创 2020-11-29 15:39:12 · 1863 阅读 · 1 评论 -
点击页面的“回到顶部”按钮,页面滚动到顶部的几种方法,以及设置 scrollTop问题
点击页面的“回到顶部”按钮,页面滚动到顶部的几种方法一、使用锚点1)使用默认链接锚点,设置a链接的href属性值为"#top"即可实现 <div><a href=" ">返回顶部</a ></div>2)href指向特定的id<div id=“element1”>元素1</div><a href=“#element1”>回到元素1</a >二、scrollTop属性:元素未滚动时,sc..转载 2020-11-28 22:40:01 · 4872 阅读 · 0 评论 -
路径上有/**/、/*/的含义
1、路径上有/**/、/*/的含义'/node_modules/@pa_hcz/umc-ui-editor/src/components/**/package.json'/** 匹配任意多级路径如/aa/bb/cc/* 仅可匹配一级路径如/aa/? 仅可匹配一级路径且最多只有一个字符 如/a , /2、路径中“./”、“../”、“/”代表的含义,参考文档https://blog.csdn.net/baidu_41878679/article/details/82770461...转载 2020-11-28 18:29:26 · 3735 阅读 · 0 评论 -
设置数组的length=0和直接设置数组为空数组的区别
设置数组的length=0和直接设置数组为空数组的区别比如:aa = [1,2]bb = [3,4]cc = aadd = bbaa = [] / / aa重新指向另一个内存地址,而cc指向的aa初始化时的地址没变bb.length = 0 // bb 还是指向初始化时内存地址console.log(aa, bb, cc, dd)[],[],[3,4],[]...原创 2020-11-28 18:19:01 · 1624 阅读 · 0 评论 -
window.onpopstate、window.history.pushState、window.history.replaceState、window.onpageshow
window.onpopstate、window.history.pushState、window.history.replaceState API的区分window.onpageshow控制浏览器历史记录的api——window.onpopstate(),每当处于激活状态的历史记录条目发生变化时,popstate事件就会在对应window对象上触发window.history.pushState(). window.histoey.replaceState()添加和修改历史记录条目,与..原创 2020-11-14 22:00:37 · 3002 阅读 · 0 评论 -
js的防抖和节流
写这篇文章主要用于自己以后查漏防抖和节流的共同点:限制函数的执行频率,以优化函数触发频率过高而导致响应速度跟不上触发频率,出现延迟、假死、卡顿现象1、防抖:对于短时间内连续触发的事件(scroll,resize,click,,,,,),在某个时间期限内,事件处理函数只执行一次 场景:在第一次触发事件(比如click)时,不立即执行处理函数handler,而是给出一个期限delay,然后 1)在delay内,没有在触发事件click,那么就执行处理函数handler ...转载 2020-10-25 21:26:59 · 230 阅读 · 0 评论 -
masterslider支持动态加载数据,懒加载图片
使用masterslider动态加载图片,并且懒加载图片,使网页运行更快思路:先动态获取到图片的url,将url赋给的一个自定义属性address-src,当获取完数据之后,在使用setup()函数对slider进行初始化;当slider的Index改变的时候,在j将address-src的值赋给src。这样会加快网页渲染速度,因为只有遇到src有值的时候,浏览器才会解析它。1、先加载sl原创 2018-01-25 16:25:26 · 1250 阅读 · 0 评论 -
Array对象常用的方法
Array对象常用的方法不改变原数组的方法1、concat()语法:arrayObject.concat(arrayX,arrayX,......,arrayX) 输入值: 输入值可以是单个元素(多个元素),也可以是单个数组(多个数组)功能:连接两个或多个数组返回值:返回被连接数组的一个副本栗子:// arrayObject.concat(arrayX,array...原创 2018-04-01 09:35:10 · 13065 阅读 · 2 评论 -
nodeName与tagName的区别
原文链接:详情链接DOM里面一共有12种节点类型,常见的3种节点类型;元素节点,属性节点,文本节点。例如:<h1 class="title">head</h1>h1--元素节点 class---属性节点 head----文本节点在这里可以说成元素节点h1包含属性节点class和文本节点head.其实,几乎所有的html的标签都是元素节点,而id ...转载 2018-03-22 16:54:18 · 3303 阅读 · 0 评论 -
动态添加的遮罩层,第一次执行display:none有效,当再次执行的时候失效
在js中动态给页面添加遮罩层,当点击“是”按钮的时候,遮罩层消失,还停留在当前页面,当点击“否”按钮的时候,则跳转到别的页面问题:当第一次执行点击“是”按钮的时候,遮罩层会消失;第二次点击“是”按钮的时候,代码有执行,但是遮罩层没有消失js部分代码: //点击提示框的“是“按钮事件,将添加的背景和提示框从body中移出 clickYesBtn = function(){原创 2018-03-04 16:23:28 · 2520 阅读 · 0 评论 -
跨域定义及解决方法
本文主要讲述跨域的定义、什么样的情况会造成跨域、跨域的解决方法一:要解决跨域的问题,需先了解以下几个概念 同源:是指相同的协议、域名、端口,三者都相同才属于同源。 http://www.a.com:80/a.js https://www.a.com:80/a.js http://www.b.com:80/a.js http://www.a...原创 2018-04-01 09:36:18 · 1290 阅读 · 0 评论 -
闭包的定义及作用
1、闭包的定义:闭包就是能够读取其他函数内部变量的函数。在js中,可以将闭包理解成“函数中的函数“。 如下代码中f2()函数就是闭包: function f1(){ var m = 10; function f2(){ alert(m); // 10 } }2、闭包的作用: A、可以读取函数内部的变量 B、让这些变量的值始终保存...原创 2018-03-15 15:10:48 · 16154 阅读 · 1 评论 -
js获取最大整数的方法
js获取最大整数的方法1、Math.max(x1,x2,...)方法可返回指定的数中带有较大的值的那个数。参数:0或多个参数返回值:参数中最大的值。如果没有参数,则返回 -Infinity。如果有某个参数为 NaN,或是不能转换成数字的非数字值,则返回 NaN如下面的写法是错误的:var arr = [1,2,3];Math.max(arr);因为传入的参数是一个数组原创 2017-10-14 21:56:11 · 11699 阅读 · 0 评论 -
js判断浏览器是否为IE浏览器
用js判断当前的浏览器是否为IE浏览器:IE6-8和IE11都适用:function isIE() { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window) { return true; } else { return false; } }win转载 2018-03-08 18:41:58 · 18249 阅读 · 0 评论 -
Native APP(原生应用)、Web App(Web应用)、Hybrid App(混合应用) 优缺点分析
Native App、Web App、Hybrid App三者之间的关系可以用集合的形式表示1、Native App(原生应用)像微软的PowerPoint或者Word,这些可以直接在你的电脑上运行或者在智能手机山运行。简单的说,原生应用是特别为某种操作系统开发的,比如IOS Android 等。他们是在各自的移动设备上运行的。优点A、可访问手机所有功能(GPS 摄像头)B、速度更快、性能高...转载 2018-04-01 09:34:14 · 1403 阅读 · 0 评论 -
Web客户端的几种存储方式
常见的浏览器端存储技术有:cookie sessionStorage localStorage userData indexDB服务器端存储技术:session一、HTML5 web存储(WebStorage)HTML5 可以在本地存储用户的浏览数据,不存储在服务器上,可以存储大量数据而不影响网站性能。这些数据只用于用户请求网站数据。数据以键/值对存在。存储一些不需要和...原创 2017-09-26 21:25:46 · 7137 阅读 · 3 评论 -
jquery结合js实现动态添加内容,并给动态添加的内容添加事件
jquery结合js实现向后台发送请求,给页面动态添加内容,并给动态添加的内容添加事件.html内容如下: <button class="btn btn-md customButton" id="add_red_envelope">添加红包</button> <div > <la...原创 2017-09-11 16:46:49 · 10448 阅读 · 0 评论 -
AMD、CMD、CommonJs、ES6的对比
AMD、CMD、CommonJs、ES6的对比他们都是用于在模块化定义中使用的,AMD、CMD、CommonJs是ES5中提供的模块化编程的方案,import/export是ES6中定义新增的 什么是AMD、CMD、CommonJs?他们之间有什么区别?项目当中是如何使用?1)AMD-异步模块定义AMD是RequireJS在推广过程中对模块定义的规范化产出,它是一个概念...原创 2018-07-19 11:15:11 · 59862 阅读 · 0 评论 -
柯里化函数的简单介绍
柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术柯里化其实本身是固定一个可以预期的参数,并返回一个特定的函数,处理特定的需求。这增加了函数的适用性,但同时也降低了函数的适用范围(实质就是利用闭包实现函数柯里化的)...原创 2018-07-01 14:18:11 · 269 阅读 · 0 评论 -
javascript上Object的方法简单介绍
Object方法1)Object.create():创建一个新对象,使用现有的对象来提供新创建的对象的__proto__参数:proto---新创建对象的原型对象,propertiesObject---可选。如果没有指定为 undefined,则是要添加到新创建对象的可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。这些属性对应Object.defin...原创 2018-06-25 15:00:55 · 332 阅读 · 0 评论 -
javascript对象、DOM对象、Browser对象、HTML对象
在前端中的一些对象的描述:1、JavaScript对象:8个对象Number String Boolean Array Date RegExp Math 全局属性和函数2、Browser对象:6个对象window对象 screen对象 location对象 history对象 navigator对象 存储对象(localSt...原创 2018-06-10 21:43:51 · 2038 阅读 · 0 评论 -
使用js跨域获取数据的方法
使用js跨域获取数据的方法在客户端编程语言中,同源策略是一个很重要的安全理念,他在保证数据安全性方面有着很重要的意义。同源:当连个域具有相同的协议、域名、端口号,说明这是同域的,只要有一个不同都是跨域。1、JSONP HTML的script标签可以加载并执行其他域的js,可以通过标签script来动态加载其他域的资源,即通过属性src指向一个地址,加载成功之后原创 2017-10-11 21:06:12 · 3168 阅读 · 0 评论 -
window对象的全局方法
window对象的全局方法1、window.alert(‘嘿’):显示带有一段消息和一个确认按钮的警告框。2、window.prompt():显示可提升用户输入的对话框3、window.confirm():显示带有一段消息,以及确认按钮和取消按钮的对话框4、window.focus():把键盘焦点给予一个窗口。5、window.blur():把键盘焦点从顶层窗口移开6、原创 2017-10-14 21:25:05 · 2073 阅读 · 0 评论 -
masterSlider插件支持动态加载数据
让masterSlider插件支持动态加载数据的方法:先获取到数据,然后在对slider使用setup()函数初始化。1、先引入master-slider所需的css和js文件,可以从其官网下载源码2、html如下: 3、js如下:$(function(){ var slider = new原创 2018-01-25 16:11:43 · 2828 阅读 · 0 评论 -
js判断一个手机号是否合法
js判断一个手机号是否合法function isMobileNumber(phone) { var flag = false; var message = ""; var myreg = /^(((13[0-9]{1})|(14[0-9]{1})|(17[0-9]{1})|(15[0-3]{1})|(15[4-9]{1})|(18[0-9]{1})|(199))+\d{原创 2018-01-08 20:47:31 · 10355 阅读 · 0 评论 -
js获取url中的解析字符串
js获取url中的解析字符串,参考链接如下: url = https://zhidao.baidu.com/question/1768422895052400180.html?fr=iks&word=slice&ie=gbk方法一:主要是通过三步:1、indexOf()函数找到解析字符串的位置(包含?)2、slice()获取解析字符串3、split()将变量放在数组里面代码如下:/...原创 2017-08-30 19:39:38 · 4781 阅读 · 4 评论 -
长轮询
长轮询的定义:1、长轮询是传统轮询(短轮询)的一个翻版,即浏览器定时向服务器发送请求,看看有没有数据更新2、页面发起一个到服务器的请求,然后服务器一直保持连接打开,直到有数据可发送。发送完数据之后,浏览器关闭连接,随即又发起一个到服务器的新请求。这一过程在页面打开期间一直持续不断。长轮询和短轮询的相同点:浏览器都要在接收数据之前,先发起对服务器的连接长轮询和短轮询的不同点:最大的区别在于服务器如何...原创 2017-08-05 23:08:30 · 892 阅读 · 0 评论 -
js解决服务器和客户端存在时间差的问题
在网页上做倒计时的功能,发现服务器和客户端存在时间差。下面讲解消除时间差的方法。原理:向服务器请求数据的时候,服务器返回一个服务器时间的变量server_time,客户端获取本地的时间client_time,两者相减得到相差的 时间,将该值加入本地时间差里面。部分html如下:(显示倒计时的界面) <p id='countdownTxt'>摇红包倒计时</...原创 2017-10-03 15:10:24 · 7484 阅读 · 1 评论 -
JSSDK实现微信分享功能
功能:在微信内置浏览器页面实现分享页面功能。注意:关于微信内置浏览器的私有对象WeixinJSBridge分享的接口都已经作废了,即下面的定义都是无效的:$(function(){ var appId = '公众号的appid'; var imgURL = '自定义分享时的图片地址'; var link = '分享页面的链接地址'; var desc = '原创 2017-10-03 09:57:10 · 30255 阅读 · 2 评论 -
使用html2canvas实现浏览器截图
实现功能:点击按钮,实现截取当前页的功能。使用html2canvas插件机可以实现该功能。1、在html中引入html2canvas插件 2、部分html如下: 截取当前页3、js如下:(先引入jquery) $('button').click(function(event){ event.preventDefault(); // 生成im原创 2017-10-01 17:16:21 · 3163 阅读 · 0 评论 -
事件监听函数:addEventListener() removeEventListener()
事件监听函数:addEventListener() 将事件移除函数removeEventListener()语法:element.addEventListener(event,function,useCapture);event-事件名,如click,mousedown,mouseup等function-事件触发后调用的函数useCapture-布尔值,描述事件是冒泡还是捕获(gia参数可选...原创 2017-09-30 20:23:06 · 3417 阅读 · 0 评论 -
给ajax()方法中的success函数传入参数
在做项目的过程中,在ajax()方法中向后台请求成功后,需要在success()方法中调用自定义的参数,刚开始的写法如下:<script> var name = 'hello'; function getTypeList(){ $.ajax({ url :url, //填写实际的url type : 'post', cont...原创 2017-09-30 20:02:01 · 33729 阅读 · 2 评论 -
slice,split,splice的区别与用法
1、slice:截取数组,返回截取到的新数组,不改变原有数组 arr.slice(start,end); start:必需,从原数组的start位置开始截取(包括下标为start的元素)。start-为负数,表示从尾部开始截取。如-1表示最后一个元素,-2表示倒数第二个元素 end:可选,截取到的指定位置(不包括下标为end的元素)。没有指定,则截取到最后...原创 2017-09-28 17:11:45 · 5038 阅读 · 0 评论 -
js获取页面高度和宽度值
js获取页面高度和宽度值IE:document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见原创 2017-09-26 20:49:36 · 642 阅读 · 0 评论 -
js循环遍历ul中li的点击事件,给给选中li添加css
功能:对于一个ul中固定的li个数,当点击其中一个li时,改变选中li的颜色;同时改变对应的另一个ul中li的颜色页面初始化的界面:HTML: <div > <label>其他推荐:</label> <ul> <li c...原创 2017-09-11 16:17:51 · 37612 阅读 · 1 评论