源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javascript中常用编程知识

  • 时间:2020-05-16 10:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javascript中常用编程知识
[b]1.null 与 undefined [/b] * 从一个对象中获取某个属性,如果该对象及其 prototype 链 中的对象都没有该属性的时候,该属性的值为 undefined 。 * 一个 function 如果没有显式的通过 return 来返回值给其调用者的话,其返回值就是 undefined 。有一个特例就是在使用new的时候。 * JavaScript 中的 function 可以声明任意个形式参数,当该 function 实际被调用的时候,传入的参数的个数如果小于声明的形式参数,那么多余的形式参数的值为 undefined 。 * null为空对象,注意与空的对象({})的区别。 简单来说,对于所有变量,只要声明后还没有指定初始值 ,那么他就是undefined,如果是Object类型用来表示空引用的概念,那么就是用null来表示。 [b]2.if 表达式 [/b] * Null总是为假(false) * Undefined总是为假(false) * Number+0,-0 或是 NaN 的时候为假,其它值为真 * String空字符串的时候为假,其它值为真 * Object总是为真(true) [b]3.Array[/b] JavaScript 中的数组(Array)和通常的编程语言,如 Java 或是 C/C++ 中的有很大不同。在 JavaScript 中的对象就是一个无序的关联数组,而 Array 正是利用 JavaScript 中对象的这种特性来实现的。在 JavaScript 中,Array 其实就是一个对象,只不过它的属性名是整数,另外有许多额外的属性(如 length)和方法(如 splice)等方便地操作数组。 [b]4.new 运算符 [/b] JavaScript 中并没有 Java 中的类(class)的概念,而是采用构造器(constructor)的方式来创建对象。在 new 表达式中使用构造器就可以创建新的对象。由构造器创建出来的对象有一个隐含的引用指向该构造器的 prototype 。 [b]5.prototype [/b] prototype是javascript原型继承的核心概念,大家一定在某个javascript类库里面见过 Array.prototype.push.call()这样的用法,所以归根结底prototype是一个对象。我们可以通过 prototype给native class添加一些有用的方法,也可以通过prototype实现继承。如果对prototype比较感兴趣,可以在ff里面通过__proto__来访 问指定对象的原型链。 [b]6.scope chain [/b] 执行上下文(execution context)是 ECMAScript 规范中用来描述 JavaScript 代码执行的抽象概念。所有的 JavaScript 代码都是在某个执行上下文中运行的。在当前执行上下文中调用 function 的时候,会进入一个新的执行上下文。当该 function 调用结束的时候,会返回到原来的执行上下文中。如果 function 调用过程中抛出异常,并没有被捕获的话,有可能从多个执行上下文中退出。在 function 调用过程,也可能调用其它的 function,从而进入新的执行上下文。由此形成一个执行上下文栈。 注:如果对scope chain比较感兴趣,可以在ff里面通过__parent__属性来访问函数的scope chain,比较遗憾的是ff的js引擎SpiderMonkey对这个属性的支持不是很完美,出现内部函数的时候会出错,所以建议用Rhino (http://developer.mozilla.org/en/docs/Rhino)。 注:这里需要提的是注意函数表达式和函数声明对scope chain的影响。 [b]7.closure [/b] 闭包也算是js比较常用的特色功能了,一般我们在java里面执行完毕的一个函数,内部变量将全部被回收,但在javascript中,我们可以通过某些方法,使执行完的函数的内部变量依然存在,并且可访问,这样就构成了一个闭包。 当然,什么东西都有两面性,闭包给我们带来好处的时候,也会带来不少的麻烦,比如一个不留神就产生了内存的泄漏,所以我们需要合理的应用这些技术。如果要 深入学习闭包,建议去看几个js library(prototype,jquery,mootools),里面有一些很经典的闭包应用,比如bind方法等,这里就不多赘述。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部