随笔分类 - JS
JavaScript
摘要:ECMAScript数组与其他语言中的数组都是数据的有序列表,但与其他语言不同的是,ECMAScript数组的每一项可以保存任何类型的数据。而且ECMAScript数组的大小是可以动态调整的,即可以随着数据的添加自动增长。 创建数组的基本方式有两种: 第一种是使用Array构造函数: 第二种是使用数
阅读全文
摘要:Object是ECMAScript中使用最多的一个类型,虽然Object的实例不具备多少功能,但对于在应用程序中存储和传输数据而言,它们是非常理想的选择。 创建Object实例有两种方式: 1.new操作符后跟Object构造函数 2.字面量表示法 对象字面量是对象定义的一种简写形式,目的在于简化创
阅读全文
摘要:1. 执行环境(execution context) 定义了变量或函数有权访问的其他数据,决定了他们各自的行为。每个执行环境都有一个与之关联的变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中,虽然我们编写的代码无法访问这个对象,但解析器在处理数据时会在后台使用
阅读全文
摘要:ECMAScript变量有两种不同数据类型的值:基本类型值 和 引用类型值。基本类型值指的是简单的数据段,引用类型值指那些可能由多个值构成的对象。 5种基本类型: Undefined、Null、Boolean、Number、String。这五种基本数据类型是按值访问的,因为可以操作保存在变量中的实际
阅读全文
摘要:ECMAScript定义了3个乘性操作符: 乘法、除法、求模。在操作数为非数值的情况下会先调用Number()函数执行自动的类型转换。 求模(求余)操作符由一个百分号( % )表示。
阅读全文
摘要:布尔操作符一共有三个: 非(Not)、与(AND)、或(OR) 逻辑非操作符也可用于将一个值转换为与其对应的布尔值。而同时使用两个逻辑非操作符,实际上就会模拟Boolean()转型函数的行为。最终结果与对这个值使用Boolean()函数相同。 逻辑与操作符由两个和号(&&) 逻辑与属于短路操作,即如
阅读全文
摘要:ECMA-262 描述了一组用于操作数据值的操作符,包括算术操作符(如加减)、位操作符、关系操作符、相等操作符。ECMAScript操作符能够适用于很多值,例如字符串、数字值、布尔值甚至对象。不过在应用于对象时,相应的操作符通常会调用对象的valueOf() toString()方法,以便取得可操作
阅读全文
摘要:6.String 类型 String类型用于表示由0个或多个16位Unicode字符组成的字符序列,即字符串。字符串可以有双引号("")或单引号('')表示。 var firstName = "Nicholas"; var lastName = 'Zakas'; String数据类型包含一些特殊的字
阅读全文
摘要:ECMAScript中有5种简单数据类型(也成为基本数据类型): Undefined、Null、Boolean、Number、String; 1种复杂数据类型: Object,Object本质上是由一组无序的名值对组成的。 ECMAScript不支持任何创建自定义类型的机制,所有值最终都将是上述6种
阅读全文
摘要:ECMAScript 语法大量借鉴了C及其他类C语言。 1.区分大小写 ECMAScript中的一切(变量、函数名和操作符)都区分大小写。这也就意味着,变量名test和变量名Test分别表示两个不同的变量。 2.标识符 所谓标识符,就是指 变量、函数、属性的名字,或者函数的参数。标识符可以是按照下列
阅读全文
摘要:1.JavaScript实现 一个完整的JavaScript实现应该由下列三个不同的部分组成: 核心(ECMAScript) 文档对象模型(DOM) 浏览器对象模型(BOM) 2.<script>元素 <script>的6个属性: async: 可选,表示应该立即下载脚本,但不妨碍页面中的其他操作,
阅读全文
摘要:任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量。 私有变量包括函数的参数、局部变量和在函数内部定义的其它函数。 在这个函数中,有三个私有变量: num1、num2和sum。在函数内部可以访问这几个变量。但在函数外部则不能访问他们。 如果在这个函数内部创建一个闭包,那么
阅读全文
摘要:JavaScript没有块级作用域的概念。这意味着在语句中定义的变量,实际上是在包含函数中而非语句中创建的。 在这个函数中定义了一个for循环。而变量i的初始值被设置为0。在其他语言中。变量i定义在for循环的语句块中。循环一旦结束,i 就会被销毁。 可是在JavaScript中。变量 i 属于ou
阅读全文
摘要:闭包是指有权访问另一个函数作用域中变量的函数。 创建闭包的常见方式,就是在一个函数内部创建另一个函数。本质上讲,闭包就是讲函数内部和函数外部连接起来的一座桥梁。 在函数a 中嵌套了函数b,并将函数b返回。 在执行完 var c = a() 后,变量c实际上指向了函数b,再执行c()后就会弹出一个窗口
阅读全文
摘要:递归函数: 函数通过名字调用自身 上述代码时一个经典的递归阶乘函数。当执行下面的代码时会出错: 以上代码先把factorial()函数保存在变量anotherFactorial()中,然后将factorial变量设置为null, 结果指向原始函数的引用只剩下一个。但在接下来调用anotherFact
阅读全文
摘要:定义函数的方式有两种:一种是函数声明;另一种是函数表达式 1.函数声明 函数声明的语法: 关于函数声明, 它的一个重要的特征就是函数声明提升(function declaration hoisting), 意思是在执行代码之前会先读取函数声明。可以把函数声明放在调用它的语句后面。 2.函数表达式 函
阅读全文
摘要:5.寄生式继承 与寄生构造函数和工厂模式类似,创建一个仅用于封装继承过程的函数,该函数在内部以某种方式来增强对象,最后返回对象。 在上述例子中,createAnother函数接收了一个参数,也就是将要作为新对象基础的对象。 anotherPerson是基于person创建的一个新对象,新对象不仅具有
阅读全文
摘要:4. 原型式继承 借助原型可基于已有的对象创建新对象。同时还不必因此创建自定义类型。 在object()函数内部,先创建了一个临时性的构造函数,然后将传入的对象作为这个构造函数的原型。最后返回这个临时类型的一个新实例。 从本质上讲,object()对传入其中的对象执行了一次浅复制。 原型式继承要求必
阅读全文
摘要:2.借用构造函数 为解决原型中包含引用类型值所带来的问题, 我们使用一种叫做 借用构造函数(constructor stealing)的技术(又叫伪造对象或经典继承)。 这种技术的基本思想:在子类构造函数内部调用超类型构造函数。 通过使用apply()和call()方法可以在新创建的子类对象上执行构
阅读全文
摘要:4. 组合使用构造函数模式和原型模式(Hybrid) 构造函数模式用于定义实例属性 原型模式用于定义方法和共享的属性。 5.动态原型模式(Dynamic) 通过检查某个应该存在的方法是否有效,来决定是否需要初始化原型。 6.寄生构造函数(Parasitic) 这种模式的基本思想是创建一个函数,该函数
阅读全文
浙公网安备 33010602011771号