2014年4月2日

javascript中的装箱和拆箱操作

摘要: 1,装箱:把基本数据类型转换为对应的引用类型的操作称为装箱,把引用类型转换为基本的数据类型称为拆箱。在《javascript高级程序设计》中有这样一句话:每当读取一个基本类型的时候,后台就会创建一个对应的基本包装类型对象,从而让我们能够调用一些方法来操作这些数据。var s1 = "some text";var s2 = s1.substring(2);如上所视,变量s1是一个基本类型值,它不是对象,所以它不应该有方法。但是js内部为我们完成了一系列处理(即我们称之为装箱),使得它能够调用方法,实现的机制如下:(1)创建String类型的一个实例;(2)在实例上调用指定的方 阅读全文

posted @ 2014-04-02 11:27 wenber 阅读(6074) 评论(1) 推荐(1) 编辑

2014年4月1日

javascript中的垃圾回收

摘要: 1引用计数垃圾回收核心:跟踪记录对象被引用的次数。思路是如果一个对象A被赋值给了一个变量v,则该对象A的引用计数值加1,如果变量v又被赋予其他值了,比如a="str",则该对象A的引用计数值减1.当这个引用计数值变成0时,就表明它所占的内存空间可以被回收了。1 var A={b:4};2 var v=A;//此时A的引用计数值为13 var vv=A; //此时A的引用计数值为24 v=9;//A的引用计数值为15 vv="hah";//A的引用计数值为0,当垃圾收集器下次运行时,A就被回收如果出现了循环引用:1 var A={b:4,c:null};2 阅读全文

posted @ 2014-04-01 15:36 wenber 阅读(1058) 评论(1) 推荐(0) 编辑

2014年3月31日

javascript中的类方法、构造方法、原型方法的对比

摘要: 如果你已经接触js很久了,那么应该可以看看我总结的是否正确,如果你刚开始学习,那么通过我的总结,你可以更快的区别他们,记得我刚接触js时,这一块反正是模糊了很久!1,长相的区别:1 function Class(){ //声明一个类2 this.constructMethod = function(){}; //添加构造构造方法3 };4 Class.classcMethod = function(){}; //添加类方法 5 Class.prototype.protocMethod=function(){};//添加原型方法2,用法的区别:1 Class.classMet... 阅读全文

posted @ 2014-03-31 19:17 wenber 阅读(1577) 评论(1) 推荐(1) 编辑

手把手教你如何加入到github的开源世界!

摘要: 我曾经一直想加入到开源项目中,但是因为没有人指导流程,网上看了很多,基本都是说了个大概,如果你也是一个初出茅庐的人,那么,我将以自己提交的一次开源代码为例,教会你步入开源的世界。1,首先登陆到https://github.com平台上注册一个自己的账号,这个过程我就不演示了2,然后在左上部分输入一个开源项目的名字,我选择的是jvalidator,回车搜索。3,在搜索结果页面找到如下如图所示的项目,单击项目名称。4,此时,你已经进入到了rinh/jvalidator的项目主页了,单击右上角的fork按钮,就把这个项目拉到你的账户下了,你就可以加入到这个项目中了5,此时,页面已经跳转到你的账户下的 阅读全文

posted @ 2014-03-31 10:02 wenber 阅读(39977) 评论(18) 推荐(27) 编辑

2014年3月30日

布局中以图换字的低级实现和高级实现

摘要: 日常的布局中,经常会涉及到我们用一张优雅的图片标题去代替普通的问题标题。但是我们在布局中会始终写上标题相关的内容文字,然后将其隐藏起来。前段时间参加了公司伟大的瑶姐的一次关于布局中以图换字的分享。今天我将其中实用的两种方法分享给大家。如有不足,请指正,如果你还有其他方法,请告知我。1,低级方法:这种方法就是直接影藏掉文字,只显示图片。实现如下:1 5 6 7 团购最低价,越团越便宜8 9 或者:1 5 团购最低价,越团越便宜 效果如下:2,高级实现:图片资源能正常加载时显示图片,图片资源加载不出来就显示汉字,这个是不是很叼了?呵呵!可以这么来做:1 6 ... 阅读全文

posted @ 2014-03-30 16:56 wenber 阅读(1026) 评论(2) 推荐(0) 编辑

javascript原型继承中的两种方法对比

摘要: 在实际的项目中,我们通常都是用构造函数来创建一个对象,再将一些常用的方法添加到其原型对象上。最后要么直接实例化该对象,要么将它作为父类,再申明一个对象,继承该父类。而在继承的时候有两种常用方式,今天我们就来稍作探讨1 //父类2 function Person(name){3 this.name = name;4 };5 6 // 子类7 function Student(sex){8 Person.apply(this,arguments); //继承父类的构造函数9 this.sex=sex;10 };1,继承Prototype:1 Student.prototy... 阅读全文

posted @ 2014-03-30 10:55 wenber 阅读(1052) 评论(2) 推荐(0) 编辑

2014年3月29日

四道腾讯的javascript面试题

摘要: 今天整理自己的文件夹时,发现了曾经面试腾讯实习生时的被问挂了的面试题,我将它们整理好了供大家借鉴。当时要求的是手写代码。汗啊,我那时弱爆了!1,将给定数组转换为一个随机数组 1 Array.prototype.shuffle=function(){ 2 var resultArr=[]; 3 var len=this.length; 4 5 while(len){ 6 var _index=parseInt(Math.random()*len); 7 resultArr.push(this... 阅读全文

posted @ 2014-03-29 21:34 wenber 阅读(1423) 评论(4) 推荐(0) 编辑

从javascript的循环问题来看待闭包本质

摘要: 第一次接触这个问题还是在我刚开始学js的时候,当时就是一头雾水,时隔一年多了,突然又想起了这个问题,在这个春气盎然的周末,我就坐下来研究下并把结果和大家分享下;先看代码:demo.html 1 2 3 4 5 闭包循环问题 6 9 10 11 段落0 12 段落1 13 段落2 14 段落3 15 段落4 16 17 26 27 每次循环就为对应的编号段落上添加一个click事件,事件的回调函数是执行一个alert();如果你以前没这么用过的话,估计也会认为单击某个段落就会弹出这个段落相应的编号0,1,2,3,4。但实际上是都是弹出5;网上已经有很多讨论的博客了,他们给出了很... 阅读全文

posted @ 2014-03-29 13:22 wenber 阅读(1217) 评论(4) 推荐(0) 编辑

2014年3月28日

让你的javascript代码高大上

摘要: 1,创造简短的写法你可以这么写:1 var slice = Array.prototype.slice;2 slice.call(arguments); //转化成数组也可以这么写:(ie9+)1 var unboundSlice = Array.prototype.slice; 2 var slice = Function.prototype.call.bind(unboundSlice);3 slice(arguments);//转化成数组还可以这么写:1 (function(slice){2 slice(); //可以直接调用该方法3 })(Array.prototype... 阅读全文

posted @ 2014-03-28 12:09 wenber 阅读(2190) 评论(9) 推荐(8) 编辑

2014年3月27日

谈谈contentWindow 和contentDocument以及 iframe

摘要: 1,contentWindow:是用来获取子窗口的window对象的,它兼容各大浏览器,用法如下document.getElementById("iframeId").contentWindow 这样简单的一句就得到了iframe包含页面的window对象;2,contentDocument:是用来获取子窗口的document对象的,主流浏览器都支持和ie8+支持,用法如下document.getElementById("iframeId").contentDocument这样简单的一句就得到了iframe包含页面的document对象;以上两种方法是在 阅读全文

posted @ 2014-03-27 17:11 wenber 阅读(2765) 评论(0) 推荐(0) 编辑

导航