1 /* 2 函数名:检验表单的函数 3 作者:xuwen 日期:2007-2-10 4 参数 _obj:验证的对象 type:验证的类型 errmsg:错误的提示信息...flag:焦点的状态 5 表单失去焦点时调用:onblur=checkInput(this,'isUserName','用户名为数字,下划线组成',1) 6 表单提交时调用:f1 =...[\w-]+)+$/; 18 break; 19 case 'isPostCode': 20 reg = /^\d{6}$/;//国内的六位邮编格式 21...""; 53 } 54} 55function $(_id){ 56 return document.getElementById(_id); 57} 58//去掉开始和结束的空格
大家好,又见面了,我是你们的朋友全栈君。...js的数组拼接方法 方法一:concat方法拼接(返回一个新数组) var a1 = [1,2,3,4,5]; var a2 = [‘a’,’b’,’c’]; var newa = a1.concat(...a2); 结果类型:object concat方法:用于连接两个或多个数组,生成新数组,concat后面的数组时操作的时候数组的元素,而不是数组 方法二:join方法拼接(返回一个新数组) var a1...:object call方法:调用一个对象的一个方法,以另一个对象替换当前对象,对象的参数为参数序列 说明: call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数...,将一个数组转化为逗号分割的参数序列,主要用于函数调用。
最近测试给了我一大堆BUG,一瞅发现全是IE11的。吐槽一下这个浏览器真的比较特立独行。很多默认的样式跟别的浏览器不同,而且最明显的一点应该是padding左右内边距往往比别的浏览器大了一倍。...但是当需要修改的时候又头疼了。如果改变原有的padding值,那么在IE11生效了。别的浏览器又有问题了。...于是在网上搜了一下有没有专门针对IE11的CSShack,就是只对IE11生效的CSS样式,一查还真有。...的样式要写在最后面防止被覆盖,当浏览器为IE11时,@media中的样式会被执行一遍。 ...还有一个就是IE11针对h5的表单验证部分,验证失败后input标签会出现一个红色的框,比较丑。
大家好,又见面了,我是你们的朋友全栈君。 String.IndexOf(Char, [startIndex], [count]):返回指定字符在原字符串中的第一个匹配项的索引。...可指定字符开始检索位置和指定长度的字符,若没有找到该字符,则返回 -1。也可以判断数组中是否包含某个值。...示例1:查找字符串中某一字符从头开始第一次出现的索引 var str = "Hello world!"...,当匹配到一个字符串时,会返回字符串中第一个字符的索引,如上例匹配word时,返回的是6。...示例2:查找字符串中某一字符从指定位置开始第一次出现的索引 var str = "Hello world!
大家好,又见面了,我是你们的朋友全栈君。...看例子就懂了 例1 可以在外部使用prototype为自定义的类型添加属性和方法 function Aclass() {
大家好,又见面了,我是你们的朋友全栈君。...indexOf在js中有着重要的作用,可以判断一个元素是否在数组中存在,或者判断一个字符是否在字符串中存在,如果存在返回该元素或字符第一次出现的位置的索引,不存在返回-1。...,必须是该对象的引用,才可以使用indexOf得到正确的索引值。...(arr[i]) == JSON.stringify(el)){ return i; } } return -1; } 上面这段代码实现的原理是将数组中的元素和传进去的对象都通过...因为一旦对象中的字段顺序前后颠倒,就会匹配不到,返回-1(曾经被这个坑深深的伤了心)。 那么到底怎么规避这样的问题呢,从原理上来说,就是挨个比较对象里每个元素是否都相等。
大家好,又见面了,我是你们的朋友全栈君。 1 ....操作原型的三种方法: Object.create 根据指定的原型创建新对象,原型可以是 null; Object.getPrototypeOf 获得一个对象的原型; Object.setPrototypeOf...设置一个对象的原型。...prototype 属性(注意与私有字段[[prototype]]的区分)为原型,创建新对象; 将 this 和调用参数传给构造器,执行; 如果构造器返回的是对象,则返回,否则返回第一步创建的对象...第二种方法是修改构造器的 prototype 属性指向的对象,它是从这个构造器构造出来的所有对象的原型。
大家好,又见面了,我是你们的朋友全栈君。...用 js , jQuery 编写 ajax 的样式,三种写法,例子: //用 js 原生写法 function sendGet(url){ xhr.onreadystatechange =function...DOCTYPE html> 首页 <script src="jquery-1.10.1.<em>js</em>...= "linear-gradient(to right,#ddd, #eee)"; } } /* //用 js 原生写法 function sendGet...= history.state["cellTitle"]; var tdList = document.querySelectorAll("td"); //取消所有单元格的背景色,只设置被选中的单元格的背景色
大家好,又见面了,我是你们的朋友全栈君。 1....|c|d' console.log('数字xxx',a) var aa=a.split("") console.log('改变后的数值...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
大家好,又见面了,我是你们的朋友全栈君。...在js中,数组赋值是属于引用赋值,如: var a =[1,2,3] var b=a ; 若b修改,a也会做相应的改变,若要在b改变的时候保持a不变则需要深度复制 b = JSON.parse(JSON.stringify
最近在修复IE10,11浏览器的bug,今天下午我F12准备调试js的时候,竟然发现控制台报错了! ?
格式化代码后,通过断点一步步查看参数在哪一步骤发生了变化,或在哪一步骤获得的值。一般结果解密可按js执行顺序断点,这篇文章就是一篇典型的结果解密的文章。...js逆向是让爬虫萌新们比较头疼的一块领域,因为市面上大部分的爬虫书籍等教程都未涉及这方面知识,需要爬取用js加密的网站时常常无从下手,只能使用selenium等自动化框架来模拟人工点击。...环境准备 (了解思路的朋友可忽略该环境准备,有个浏览器即可,这里推荐chrome) 因为涉及js的调试验证,所以除了Python环境外,你还需要Nodejs(js的运行环境)和WebStorm(IDE...在pinvestment的响应内容里,只能看到一堆js的调用,并没有我们想要的html,说明网页是由js动态生成的。...因为我们可以用PyExecJS这个库,直接用Python调用并执行js代码。 这时候,WebStorm就派上用场了。新建一个js文件,把function o里涉及的代码全部抠下来。
大家好,又见面了,我是你们的朋友全栈君。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
大家好,又见面了,我是你们的朋友全栈君。 forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。...对于空数组不会执行回调函数 回调函数的参数 function(currentValue, index, arr) currentValue...当前元素的索引值 arr 可选。...当前元素所属的数组对象 之前没有注意 如何 跳出循环,一直做if 判断做出操作,直到有一次有这样的需求 才发现 break 和 return false 无效 let arr =...会遍历数组所有元素,只是执行到第4次,return false下面的代码不再执行而已 实际上没有达到效果 return fasle 只是中止本次继续执行,而不是终止循环 解决办法 可以通过抛出异常的方式终止循环
大家好,又见面了,我是你们的朋友全栈君。 敬请关注博客,后期不断更新优质博文,谢谢 Window对象的navigator属性引用的是包含浏览器厂商和版本信息的Navigator对象。...这样的一种情况是,当需要解决存在于某个特定 的浏览器的特定版本中的特殊的bug时。Navigator对象有4个属性用于提供关于运行中的浏览器的版本信息,并且可以使用这些属性进行浏览器嗅探。...userAgent 浏览器.在它的USER-AGENT HTTP头部中发送的字符串。这个属性通常包含appVersion中的所有信息,并且常常也可能包含其他的细节。...Navigator属性的复杂性正说明了浏览器嗅探对于处理客户端兼容性问题是没有太大帮助的。在Web的早期,人们写了大量的浏览器特定代码用于测试类似于navigator.appName 的属性。...//name和number都是字符串,对于不同的浏览器输出的结果也是不一样的,检测结果如下: J| //”webkit”:Safari或Chrome;版本号是Webkit的版本号 //
大家好,又见面了,我是你们的朋友全栈君。 不管是在实际项目中还是在面试的时候我们大都会碰到算法问题,比如排序啊,比较大小啊之类的这些最基本的算法。我总结了一些,以后在碰到在慢慢补充。...1.排序问题 1.1冒泡排序 冒泡排序算法就是依次比较大小,小的的大的进行位置上的交换。...,里面的循环完整执行,从j=0执行到j=6,这也就是第一遍排序,结果是将最大的数排到了最后,这一遍循环结束后的结果应该是[8,34,21,53,12,95] //当i=1的时候,里面的循环再次完整执行,...由于最大的数已经在最后了,没有必要去比较数组的最后两项,这也是j<arr.length-1-i的巧妙之处,结果是[8,34,21,12,53,95] //说到这里,规律就清楚了,每次将剩下数组里面最大的一个数排到最后面...,当第一个循环执行到最后的时候,也就是i=6,此时,j=0,只需要比较数组的第一和第二项,比较完毕,返回。
大家好,又见面了,我是你们的朋友全栈君。...如何做到多重排序 js有一个sort排序函数,使用array.sort(function)传入排序函数就可以很做到排序 array.sort((a,b)=>{ return a-b; }) 注意一点就是返回结果决定了...a和b的位置, 如果返回结果<0 ,那么a排在b的前面 返回结果 = 0 a 和b的相对位置不变 返回结果>0 b排在a的前面 游戏中的背包列表排序 对游戏中的背包来说,背包里有武器和饰物,先按照类型,...==b.id, 那么就意味着a.id ===b.id就要对id进行排序 这样就去除多余的else,代码也很简洁 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
requestAnimationFrame() 他的作用就是代替定时器做更加流畅高性能的动画,做可以匹配设备刷新率的动画,他解决了定时器做动画时间间隔不稳定的问题(也就是解决定时器做动画不流畅的问题)。...不同的是这个方法你只需要传入一个回调函数,不需要其他参数,那么你就疑惑了不用指定时间间隔怎么做动画?? 时间间隔自然是有的,但时间间隔由设备的系统决定(不受其他任务的影响)。...通常来你传入的回调函数每秒会执行60次,但是如果你的设备的游览器遵循W3c的标准,那么回到函数每秒执行的次数会与你设备的刷新率相匹配。...高性能且不会出现动画卡顿 会有游览器兼容问题 总结这篇文章的原因是最近在写一个vue项目的需要实现点击回到顶部的功能,由于是移动端的项目,移动端的设备刷新率不能统一,于是就用到了这个api,然后发现是真的香...我已经将回到顶部的功能封装成了一个组件(组件源码点这里),在学习vue的小伙伴可以去参考下我的代码,也希望各位大神给点建议。
大家好,又见面了,我是你们的朋友全栈君。...typeof的返回值共有七种: number, boolean, string, undefined, object, function,symbol(ES6以上版本才有); 1、number typeof...(10); typeof(NaN); //NaN在JavaScript中代表的是特殊非数字值,它本身是一个数字类型。...); typeof({}); typeof([]); 6、function typeof (Array) typeof(Date) 7、symbol typeof Symbol() // ES6提供的新的类型...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
大家好,又见面了,我是你们的朋友全栈君。...在前端日常开发中,正常会遇到这中场景,需要将html代码片段转为JS中的变量,方便JS代码中调用,常规的操作就是手工复制用加号连接,但是这个操作着实费时,完全就是体力活,也没有啥技术含量,因此就有了HTML...在线转换JS工具,它可以在线将html代码转换成js代码,您只需要将需要转换的代码放置于代码框内,然后点击对应的转换按钮。...html在线转换js 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
领取专属 10元无门槛券
手把手带您无忧上云