![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
Simon_ITer
转到开源中国https://my.oschina.net/keysITer/blog
展开
-
JavaScript数组的高级用法-reduce和reduceRight详解
reduce 方法(升序)语法: array1.reduce(callbackfn[, initialValue])参数定义array1必需。一个数组对象。callbackfn必需。一个接受最多四个参数的函数。对于数组中的每个元素,reduce 方法都会调原创 2016-07-24 13:32:58 · 9013 阅读 · 0 评论 -
js控制四个数字加空格(银行卡)并且支持插入数字(解决光标跳动问题)
一般来说,为了便于用户输入,银行卡号会每四个数字用空格隔开,这个在前端使用正则表达式不难做到,但是容易出现不能从数字中间插入的问题:光标移动到中间,输入一个数字后光标便自动跳转到最右了。上述问题非常影响用户体验,经过一段时间的研究,我用以下办法解决了此问题:Input这里使用了type=”tel”,这样是为了在移动端调出数字键盘,H5的新特性pattern也可以实现,但是这个属性的兼容性并不是很好原创 2016-10-17 15:45:27 · 5152 阅读 · 3 评论 -
JavaScript设计模式——策略模式
javaScript设计模式——策略模式 策略模式(Strategy):将定义的一组算法封装起来,使其相互之间可以替换。封装的算法具有一定独立性,不会随客户端变化而变化。商品促销问题 问题描述:超时年底促销,部分商品5折销售,部分9折,普通用户满100返30,高级VIP用户满100返50…对于前端,一般的处理方式可能是写多个方法,针对不同的优惠策略选择不同的方法来处理。如://100返3原创 2016-10-12 16:36:52 · 624 阅读 · 1 评论 -
原生js解决微信在iOS上无法修改title的问题
通常情况下,我们使用document.title=”标题名”来动态的修改标题,但是此方法在微信iOS端并没有用,查了不少资料,终于解决这个问题啦。现在把代码分享出来给大家function wxSetTitle(title) { document.title = title; var mobile = navigator.userAgent.toLowerCase(); if原创 2016-09-26 17:15:44 · 3257 阅读 · 0 评论 -
Ionic中自定义popup写法以及点击backdrop隐藏popup的directive写法
网上提供的popup例子使用的是template,使用title、subtitle等参数来设置样式,但是这样在很多时候并不能满足我们的需求的(ionic自带样式本身就丑),所以这时候可以通过templateURL来写出我们想要的样式。效果原样式:自定义后的样式(不敢说有多好看,但是至少还是有点进步的,这是之前在Windows下面截的图,其实在手机中会好很多):实现一.建立一个popup.html文原创 2016-09-20 17:53:53 · 5124 阅读 · 1 评论 -
ES5对象的的创建及属性状态维护分析
在说属性之前,我们先来了解一下ES5的新方法,Object.create()函数。新的对象创建方法在旧的“原型继承”观念中,它的本质上是“复制原型”,即:以原型为模板复制一个新的对象。然而我们应该注意到一点事实:在这个思路上,“构造器函数”本身是无意义的。更确切的说,构造器函数对实例的修饰作用可有可无,例如://在构造器中修饰对象实例function MyObject(){ this.yy原创 2016-09-07 17:12:06 · 916 阅读 · 0 评论 -
微信应用号开发教程
转载不了 去我的开源中国博客看吧 https://my.oschina.net/keysITer/blog/750125转载 2016-09-23 12:03:50 · 496 阅读 · 0 评论 -
【ionic框架bug】slidebox在使用model或popover后width变为0的解决方案
【ionic框架bug】slidebox在使用model或popover后width变为0的解决方案问题描述 如果在silideBox上使用缓存,那么在进入另一个state之后,打开一个Popover或者一个Modal,再返回原来的页面,则slideBox的width变为0,即看不见silideBox的内容了。解决方案一.使用ng-if即不使用缓存,但是这样的弊端就是没有缓存-.-,其实原理就原创 2016-09-20 10:54:16 · 1105 阅读 · 0 评论 -
搭建本地nodeJs服务器
这里关于nodeJs环境的搭建就不再赘述了。目录结构这里是我的项目中大概的目录结构,其实说明的主要是一个相对路径的关系,具体放在什么地方都可以 ——bin |__mine.js |__server.js ——build |__index.html废话不多说,直接上代码:代码server.js:var PORT原创 2016-08-26 11:22:14 · 533 阅读 · 0 评论 -
JS中值类型与引用类型分析
JavaScript中的值类型与引用类型 数据类型 值/引用类型 备注 undefined 值类型 无值 number 值类型 boolean 值类型 string 值类型 字符串在赋值运算中会按照引用类型的方式来处理 function 引用类型 object 引用类型 在JavaScript中,“全等(=原创 2016-08-10 20:30:03 · 2536 阅读 · 0 评论 -
通过经典题目来理解多种闭包实现方式
在之前的文章中也有提及此题,这里更详细的说一下。 需求:生成十个按钮,内容分别是1~10,点击每个按钮输出当前的序号,即点击1输出1。for (var i = 1; i <= 10; i++) { var doc = document.createElement('button'); doc.innerHTML = i; //错误写法 doc.onclick =原创 2016-09-12 18:33:25 · 2284 阅读 · 0 评论 -
语句或语句块中的闭包问题
一般情况下,当一个函数实例被创建时,它唯一对应的一个闭包也就被创建。在下面的代码中,由于外部的构造器函数被执行两次,因此内部的foo函数也被创建了两个函数实例(以及闭包)并赋值给this对象的成员:function MyObject() { function foo() {} this.method = foo;}obj1 = new MyObject();obj2 = new原创 2016-09-12 18:26:59 · 551 阅读 · 0 评论 -
Highcharts数据提示框动态显示非x轴非y轴数据
以下是在webApp中的效果,长按浮动显示数据提示框,web端就是鼠标hover时显示可以看到图表中的’4-立项阶段‘是X轴数据,count:6是Y轴数据,price数据就是需要动态显示的数据。PS:图表中看不到price的值是因为服务器没有数据,本地亲测可用。首先定义一个json格式数组://因为测试图表x轴有7个数据,所以此处定义长度为7.var labelsArray = [{name:原创 2016-08-19 10:27:42 · 2467 阅读 · 4 评论 -
Angular.element和$document的使用方法分析,代替jquery
AngularJs是不直接操作DOM的,但是在平时的开发当中,我们有的时候还是需要操作一些DOM的,如果使用原生的JS的话操作过于麻烦,所以大家一般都是使用jQuery,jQuery虽然好用,但是AngularJs是不建议和JQuery同时使用的,所以AngularJs给我们也提供了一些操作DOM的方法———Jqlite下面以addClass()方法为例给大家讲解一下Jqlite的使用:查阅官方提原创 2016-08-18 12:50:38 · 5297 阅读 · 0 评论 -
多种DOM事件处理程序分析及跨浏览器的事件解决方案
一.HTML事件处理程序缺点:高耦合,修改事件的时候需要同时修改js和HTML页面二.DOM0级事件//添加事件var btn = document.getElementById('btn');btn.onclick = function(){ alert('Hello World!');}//删除事件btn.onclick = null;原创 2016-08-17 11:29:33 · 652 阅读 · 0 评论 -
闭包简单练习及分析
题目简述编写十个button,内容分别是1到10,点击其中的一个button则输出当前的序号,即点击1输出1。解题思路这里的十个button样式都是一样的,只是内容不同,显然使用js动态添加较为方便,很多人可能会这样写:<script type="text/javascript"> for (var i = 1; i <= 10; i++) { var doc = docume原创 2016-08-16 11:27:23 · 429 阅读 · 0 评论 -
JavaScript中实现继承的几种方式的使用和分析
首先来看一段代码:function Person(){}function Student(){}Student.prototype = Person.prototype;//1Student.prototype = new Person();//2Student.prototype = Object.create(Person.prototype)//3第一种方式(不可取):原创 2016-07-25 23:26:12 · 777 阅读 · 0 评论 -
使用pushState实现微信“返回”按钮控制单页应用页面的无刷新跳转
请到我的开源中国博客查看:https://my.oschina.net/keysITer/blog/759668原创 2016-10-19 10:36:51 · 3789 阅读 · 0 评论