摘要: 编程语言中,引用类型的数据占用内存中的空间比较大,最终都要释放这些内存以便他们能被再用。javascript中,字符串,对象,数组没有固定大小。javascript中有垃圾收集的方法来释放。注:不同浏览器的垃圾收集器也是不一样的,同一浏览器的不同版本垃圾收集器也可能有所不同。例1:程序中使用的变量再也无法引用这个对象了.var s = "hello";var u = s.toUpperCase();s = u; //s和u都指向了“hello”大写后的字符串运行这段代码后,程序中没有变量再引用"hello"字符串了,系统一检测到这一事实后,就会释放该字符 阅读全文
posted @ 2012-06-27 22:16 zzu-han 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 不管何种语言,在进行运算操作之前,进行验证是非常重要的,可以避免一些简单的错误出现。1 如进行DOM方法获取节点之前的验证。if(document.getElementById) var myBtn = document.getElementById("btn");//用if验证是否有这个方法,因为getElementById为document的一个指向方法的属性,如果未定义会返回undefined,undefined转换为bool类型为false;2 在函数中有可选参数的时候,对可选参数是否存在进行验证。可以用||或者if判断。function add(a,b,c){ a 阅读全文
posted @ 2012-06-27 16:07 zzu-han 阅读(205) 评论(0) 推荐(1) 编辑
摘要: 闭包从smalltalk开始,几乎所有知名动态语言都支持闭包,javascript也不例外。闭包的定义非常晦涩——闭包,是指语法域位于某个特定的区域,具有持续参照(读写)位于该区域内自身范围之外的执行域上的非持久型变量值能力的段落。这些外部执行域的非持久型变量神奇地保留它们在闭包最初定义(或创建)时的值(深连结)。闭包与函数的关系就好像动态与静态,结构与实例的关系。javascript中闭包是通过function实现的。闭包的“闭”指闭包的内部环境对外部的不可见,简单地说,即闭包的领域是对外封闭的。我通常认为闭包是一种引用结构,至少在javascript中是这样的,javascript中的闭包 阅读全文
posted @ 2012-06-27 15:09 zzu-han 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 在实现原型继承时,用到Cat.prototype = new Animal(); 每一个类创建时都有prototype对象,prototype对象中有constructor属性,指向它的构造函数,这里我们重新定义了prototype对象,因此之前的prototype对象的值时完全删除了。解决办法:Cat.prototype.constructor = Cat; Cat 不需要带括号。constructor属性指向Cat构造函数。 阅读全文
posted @ 2012-06-26 15:12 zzu-han 阅读(143) 评论(0) 推荐(0) 编辑
摘要: javascript是在ECMAScript接口规范下的一种动态编程语言。目前记下学习过程中了解到的javascript的一些特性,只写与其他语言类似的,一样的东西就不在这里啰嗦了。一:松散类型的二:没有块级作用域三:没有函数重载四:作用域链五:活动对象六:变量对象七:匿名函数 阅读全文
posted @ 2012-06-20 23:58 zzu-han 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 函数--可以说是ECMAScript中最有意思的部分了。函数实际上是对象,每个函数都是Function类型的实例。函数名实际上是一个指向函数对象的指针。除了我们常见的两种函数声明方式,函数声明与函数表达式,还有一种使用Function构造函数创建,例://Function构造函数方式var sum = new Function("num1","num2","return num1+num2");alert(sum(1,3));解释:函数是对象,函数名是指针。function sum(num1.num2){ return num1 + 阅读全文
posted @ 2012-06-20 15:30 zzu-han 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 确定两个变量是否相等在编程中极为重要,使用异常的多。基础认识ECMAScript提供两组操作符:相等和不相等——先转换再比较全等和不全等——仅比较而不转换相等和不相等在不同数据类型时,遵循以下基本原则。如果有个一是布尔值,则先将其转换为数字——false转换为0,true转换为1如果一个是字符串,另一个是数值,则将字符串转换为数字在比较如果有一个操作数是对象,另一个不是则调用对象的valueOf()方法,用得到的原始值进行比较。alert("1" == 1); // true 数字和字符串比较alert(true == 1); // true 布尔类型和数字比较alert( 阅读全文
posted @ 2012-06-18 15:45 zzu-han 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 被误解的WEB标准自从2004年阿捷翻译了《网站重构》这本书,网站重构这个词就慢慢的必成了css+div,甚至等同起来,一些朋友把标准跟重构也混淆了,css+div跟标准也混淆了。这里有很多误读的成份。《网站重构》这本书一直围绕着一个思想:使用WEB标准重构网站21世纪最大冤案table(表格)用来加载数据等,table被包裹的内容必须全部下载下来才能展示出来,否则是一点也不展示,这是其缺点即Table被打死,用table的网站就被鄙视,一棒子打死。我想任何东西都有两面性,table对于数据的展示还是很方便的,排版方便什么是WEB标准WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三 阅读全文
posted @ 2012-06-18 00:08 zzu-han 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 属性或方法说明constructor对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。prototype对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。hasOwnProperty(property)判断对象是否有某个特定的属性。必须用字符串指定该属性(例如,o.hasOwnProperty(”name”))。isPrototypeOf(object)判断该对象是否为另一个对象的原型。propertyIsEnumerable(property)判断给定的属性是否可以用for…in语句进行枚举。toString()返回对象的原 阅读全文
posted @ 2012-06-17 00:25 zzu-han 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 1-1 构造函数入门Object和Array是原生构造函数,在运行时会自动出现在执行环境中。同时,也可以创建自定义的构造函数,从而定义自定义对象类型的属性和方法。例:function Person(name, age, job){ this.name = name; this.age = age; this.job = job; this.sayName = function(){ alert(this.name); }}var person1 = new Person("han",22,"designer");var person2 = new ... 阅读全文
posted @ 2012-06-16 23:49 zzu-han 阅读(212) 评论(0) 推荐(0) 编辑