随笔分类 - JS高级程序设计
摘要:1.全局作用域 2.关于尝试访问未声明变量 3.窗口位置 4.移动窗口的位置,以下代码是在IE浏览器中测试,Chrome浏览器没有效果。 5.窗口大小 注意:将浏览器最大化,高度为984px(?除去上面标签栏的高度) 6.调整浏览器窗口,在IE浏览器中测试
阅读全文
摘要:递归函数:一个函数通过名字调用自身的情况构成的。eg: # 正常情况下,以上函数是没有问题的,但是如果出现以下操作,会出现问题。原因是即使先把factorial保存到anotherFactorial变量后,再将factorial置为null,但是当我们在调用anotherFactorial的时候,在
阅读全文
摘要:定义函数的两种常见的方法: 1 . 函数声明 2. 函数表达式 # 差异 (1)函数声明 ,具有函数声明提升的特征。 (2)函数声明的函数的name属性为函数的名称;使用函数表达式定义的函数在ES5中,name属性为空字符串,在ES6中为函数的名称。 # 函数声明提升 函数声明 函数表达式 # 注意
阅读全文
摘要:js的数据属性:P139(1)[[Configurable]](2)[[Enumerable]](3)[[Writable]](4)[[Value]] 使用Object.definerPropert()方法修改属性的默认值,接收的参数:(1)属性所在的对象(2)属性的名字(3)一个描述符对象(Con
阅读全文
摘要:# 上次讲到用构造函数的模式来创建对象,相对于工厂模式,解决可对象识别的问题。 # 如上,是使用构造函数模式创建对象的形式。使用构造函数的主要问题是,每个方法都要在每个实例上重新创建一次。其实质可以效果等同于以下形式: # 从以上代码看,虽然 person1和person2都有一个sayname方法
阅读全文
摘要:1.构造函数也是一般函数,以下创建一个构造函数。 (1)使用构造函数的方式调用 (2)使用普通函数调用 2.可以使用call()或是apply()在特定的对象作用域中调用Person函数。
阅读全文
摘要:一.创建对象的常见方法 (1)Object构造函数创建单个对象,早期的JavaScript开发人员经常使用该模式创建新对象。 (2)使用对象字面量的方法创建单个对象,后来该方法成为创建这种对象的首选方法 #思考# 使用以上两种方法都可以创建单个对象,但是这些方式的不足是:使用同一接口创建很多对象,会
阅读全文
摘要:一.位置方法 ECMAScript5为数组实例添加了两个位置:indexOf()和 lastIndexOf()。这两个方法接收两个参数:要查找的项和(可选的)表示查找起点位置的索引(如在数组[7,8,9,1,0]中,“7”在第一个位置,它的索引是0。)。其中,indexOf()方法从数组的开头(位置
阅读全文
摘要:一.操作方法 1.concat()方法 基于当前数组中的所有项创建一个新数组。具体说,是先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给concat()方法传递参数的情况下,它只是复制当前数组并返回副本。 eg: 注意:上面代码中,我把变量名设置为na
阅读全文
摘要:一.转换方法 所有的对象都具有toLocaleString(),toString()和valueOf()方法。调用toString()方法会返回由数组中的每个值的字符串拼接而成的一个以逗号分隔的字符串。而调用valueOf()返回的还是数组。 valueOf() 方法返回 Array 对象的原始值。
阅读全文
摘要:1. instanceof操作符(ECMAScript3) 对于一个网页,或者是一个全局作用域而言,使用instanceof操作符来检测数组就可以得到满意的结果。 语法:if(value instanceof Array){ //对数组执行某些操作 } eg: 注意: instanceof操作符在存
阅读全文
摘要:Array类型: ECMAScript数组的每一项可以保存任何类型的数据,数组的大小是可以动态调整的。 创建数组的基本方式: (1)使用Array构造函数 注意: 给构造函数传递一个值时,如果传递的是数值,则会按照该数值创建包含给定项数的数组;如果传递的是其他类型的参数,则会创建包含那个值的只有一项
阅读全文
摘要:引用类型 在ECMASCript中,引用类型是一种数据结构,将数据和功能组织在一起,引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。(注意:尽管ECMAScript从技术上讲是一门面向对象的语言,但是它不具备传统面向对象语言所支持的类和接口等基本结构。) 1.Obiect
阅读全文
摘要:JavaScript的自动垃圾收集机制 执行环境会负责管理代码执行过程中使用的内存,编写JavaScript程序时,所需内存的分配以及无用内存的回收完全实现自动管理。 原理: 找出那些不再继续使用的变量,然后释放其占用的内存。为此,垃圾收集器会按照固定的时间间隔(或代码执行中预定的收集时间)周期性地
阅读全文
摘要:1.执行环境:执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为, 每个执行环境都有一个与之相关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。 2.全局执行环境: 最外围的一个执行环境。在web浏览器中,全局执行环境被认为是window对象,因此所有的全局变量和函数都是作
阅读全文
摘要:1.基本类型和应用类型的值 ECMAScript变量可能包含两种不同数据类型的值: 基本类型值——简单的数据段。(5种基本的数据类型,按值访问,因为可以操作保存在变量中的实际的值。) 引用类型值——多个值构成的对象。(引用类型的值是保存在内存中的对象。) 注意: javascript不允许直接访问内
阅读全文
摘要:1.ECMAScript中的函数使用function关键字来声明。 eg: 注意: 在有return语句的函数中,函数会在执行完return语句后停止并立即退出。因此,位于return语句之后的任何代码都永远不会执行。 eg: 以上代码执行后,会出现内容为“10”的警告框,但是不会出现内容为“Hel
阅读全文
摘要:1.if语句 2.do-while语句:后测循环语句,循环体内的代码至少执行一次。 3.while语句:前测循环语句。 4.for语句:前测循环语句。 注意:在ECMAScript中不存在块级作用域,因此在循环内部定义的变量也可以在外部访问到。 eg: 以上代码的执行效果是,弹出从0到9的警告框,这
阅读全文
摘要:ECMA-262用于操作数据值的操作符包括: 算术操作符 位操作符 关系操作符 相等操作符 ECMAScript操作符的不同之处在于:它能够适用于很多值,包括字符串,数字值,布尔值,甚至是对象。(在应用于对象时,相应的操作符通常会调用对象的valueOf()和(或)toString()方法,以便取得
阅读全文
摘要:1.ECMAScript数值的范围 由于内存的限制,在大多数浏览器中,ECMAScript能够拿保存的数据的范围是 5e-324 ~ 1.7976931348623157e+308,其中最小的数值保存在Number.MIN_VALUE中,最大的数值保存在Number.MAX_VALUE中。 如果在计
阅读全文
浙公网安备 33010602011771号