随笔分类 -  JavaScript

摘要:昨天尝试了使用关联数组找出出现次数最多的项,今天就反向思维去掉重复的项。昨天对关联数组的定义还是不是很清楚。今天看了看百科,算是明白了:关联数组和数组类似,由以名称作为键的字段和方法组成。它包含标量数据,可用索引值来单独选择这些数据,和数组不同的是, 关联数组的索引值不是非负的整数而是任意的标量。这些标量称为Keys,可以在以后用于检索数组中的数值。关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片。每张卡片上半部分是索引而下半部分是数值。JavaScript的对象本质就是一个关联数组。先写一个简单的方法测试下var arr=['b','b','c 阅读全文
posted @ 2014-03-01 12:54 PiLee 阅读(328) 评论(0) 推荐(0)
摘要:一个字符串或数组,如何找到出现次数最多的字符或者项?先构造个biggest函数function biggest(str){document.write(str+'中');var obj={};for(var i=0;i");}其中也要考虑到有可能两个字符出现的次数相通,所以要进行下判断,相同的话就要将maxkey补上它。调用biggest()方法var str1 = "WeAreNeverEverGettingBackTogether";var str2 = "AABBCCDD";var str3 = ['张三' 阅读全文
posted @ 2014-02-28 16:45 PiLee 阅读(240) 评论(0) 推荐(0)
摘要:开始刷票啦,投票攻略,无限投方法!清除页面Cookie,然后Bla Bla Bla...哈哈,做粉丝的时候难免要投票,清除Cookie又总是无限投的秘诀。但是话说自己真真的一次创建cookie都没有,只记得以前看过一篇博客说每个cookie不应大于4kb,要包含名字,值,还有有效期,创建的方法是document.cookie来今天自己瞎搞搞,算是初次尝试cookie,不过自己脑海还是有很多问题比如cookie和session的区别,我只知道一个是存在客户端(浏览器),一个存在服务器端。但是创建cookie一般用客户端创建还是服务器端呢?这个之后自己再多看看一些文章研究研究,先写个小demo练练 阅读全文
posted @ 2014-02-27 22:11 PiLee 阅读(559) 评论(0) 推荐(0)
摘要:之前在哪看到一篇文章,有一个问题就是倒序输出字符串有哪些方法?突然觉得似乎应该有很多,赶快先开个随笔想想。第一反应,直接就是反着嘛。。。var str="abcd";var newstr="";for(var i=str.length-1;i>=0;i--){ newstr += str[i];}alert(newstr);第二反应就是split()函数。。感觉多此一举?var str="abcd";var _str=str.split("");var newstr="";for(var 阅读全文
posted @ 2014-02-25 16:55 PiLee 阅读(208) 评论(0) 推荐(0)
摘要:用惯了jQuery的$.ajax(),的确写个回调函数又方便又快。但是不会用原生的JS AJAX可不行啊,其实也没有想象的复杂,初涉原生的AJAX还是先拿解析JSON数据来练练手。新建一个json.txt{"info": [{"name":"zhangsan","age":"26"},{"name":"lisi","age":"27"},{"name":"wangwu",&qu 阅读全文
posted @ 2014-02-25 16:19 PiLee 阅读(171) 评论(0) 推荐(0)
摘要:BOM的核心对象是window,它表示浏览器的一个实例。在浏览器中,window对象有双重角色1.1全局作用域var age=29;function sayAge(){alert(this.age);}alert(window.age);//29sayAge();//29window.sayAge();//29 阅读全文
posted @ 2013-12-01 21:02 PiLee 阅读(159) 评论(0) 推荐(0)
摘要:function fuctionName(arg0,arg1,arg2){//函数体}不要这样做if(condition)function sayHi(){alert("Hi");}else{function sayHi(){alert("Yo");}}ECMAScript中属于无效语句。可以这样做var sayHi;if(condition){sayHi=function(){alert("Hi");};}else{sayHi=function(){alert("Yo");};}1.递归function fact 阅读全文
posted @ 2013-11-28 14:26 PiLee 阅读(295) 评论(0) 推荐(0)
摘要:1.工厂模式function createPerson(name,age,job){var o=new Object();o.name=name;o.age=age;o.job=job;o.sayName=function(){alert(this.name);};return o ;}var person1=createPerson("NIcholas",29,"Software Engineer");var person2=createPerson("Greg",27,"Doctor");工厂模式虽然解决了创建 阅读全文
posted @ 2013-11-28 13:14 PiLee 阅读(148) 评论(0) 推荐(0)
摘要:var person={name:"Nicholas",age:29,job:"Software Engineer",sayName:function(){alert(this.name);}};1.属性类型(1)数据属性[[configurable]]:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认为true。[[Enumerable]]:表示能否通过for-in循环返回属性。默认为true。[[Writable]]:表示能否修改属性的值。默认为true。[[Value]]:包含这个属性的数据 阅读全文
posted @ 2013-11-28 10:58 PiLee 阅读(154) 评论(0) 推荐(0)
摘要:min()和max()var max=Math.max(3,54,32,16);alert(max);//54var min=Math.min(3,54,32,16);alert(min);//3ceil(),floor(),round()alert(Math.ceil(25.9));//26alert(Math.ceil(25.5));//26alert(Math.ceil(25.1));//26alert(Math.round(25.9));//26alert(Math.round(25.5));//26alert(Math.round(25.1));//25alert(Math.floo 阅读全文
posted @ 2013-11-27 21:15 PiLee 阅读(212) 评论(0) 推荐(0)
摘要:Global(全局)对象1.URI编码方法2.eval()方法eval()放大就像是一个完整的ECMAScript解析器,它只接受一个参数,即要执行的ECMAScript(或JavaScript)字符串eval("alert('hi')");等价于alert("hi");eval()之星的代码可以引用在包含环境中定义的变量var msg="hello world";eval("alert(msg)");//"hello world"4.window对象Web浏览器都是将这个全局对 阅读全文
posted @ 2013-11-27 21:04 PiLee 阅读(158) 评论(0) 推荐(0)
摘要:String 类型是字符串的对象包装类型var stringObjiect = new String("hello world");String 类型的每个实例都有一个length属性,表示字符串中包含多个字符var stringValue="hello world";alert(stringValue.length);//"11"注意,即使字符串中包含双字节,每个字符也仍然算一个字符。1.字符方法两个用于访问字符串中特定字符的方法是charAt()和charCodeAt()var stringValue="hello wo 阅读全文
posted @ 2013-11-27 19:07 PiLee 阅读(277) 评论(0) 推荐(0)
摘要:每个函数都包含两个属性:length和prototype其中length属性表示希望接收的命名参数的个数function sayName(name){alert(name);}function sum(num1,num2){return num1+num2;}function sayHi(){alert("hi");}alert(sayName.length);//1alert(sum.length);//2alert(sayHi.length);//0sayName()函数定义了一个参数,因此length的属性值为1sum()定义了两个所以为2,而sayHi()没有定义所 阅读全文
posted @ 2013-11-27 14:36 PiLee 阅读(345) 评论(0) 推荐(0)
摘要:arguments.callee 消除耦合现象例子function factorial(num){if(num<=1){return 1;}else{return num*arguments.callee(num-1) //arguments保存函数参数,callee是个指针,指向拥有这个arguments对象的函数}}在这个重写够的factorial()函数的函数体内,没有再引用函数名factorial。这样无论函数使用时使用的是什么名字,都可以保证正常完成递归调用。函数内部另一个特殊对象是this.this引用的是函数据以执行的环境对象——或者可以说是this值(当在网页的全局作用域 阅读全文
posted @ 2013-11-27 14:27 PiLee 阅读(131) 评论(0) 推荐(0)