随笔分类 - 《JavaScript权威指南学习》
摘要:内容要点: 一.数组类型 判断它是否为数组通常非常有用。在ES5中,可以使用Array.isArray()函数来做这件事情: Array.isArray([]); //=>true Array.isArray({}); //=>false 二.类数组对象 JS数组的有一些特性是其他对象所没有的: 1
阅读全文
摘要:内容要点: ES5中定义了9个新的数组方法来遍历、映射、过滤、检测、简化和搜索数组。 概述:首先,大多数方法的第一个参数接收一个函数,并且对数组的每个元素(或一个元素)调用一次该函数。 如果是稀疏数组,对不存在的元素不调用传递的函数。 在大多数情况下,调用提供的函数使用三个参数:数组元素、元素的索引
阅读全文
摘要:内容要点: 一.join() Array.join()方法将数组中所有元素都转化为字符串并连接在一起,返回最后生产的字符串。 可以指定一个可选的字符串在生产的字符串中来分隔数组的各个元素。如果不指定分隔符,默认使用逗号。 var a = [1,2,3]; //创建一个包含三个元素的数组 a.join
阅读全文
摘要:一.数组概念 数组是值的有序结合。每个值叫做一个元素,而每个元素在数组中都有一个位置,用数字表示,称为索引。 JS数组是无类型的:数组元素可以是任意对象,并且同一个数组中的不同元素也可能有不同的类型。数组的元素甚至也可能是对象或其他属性,这允许创建复制的数据结构,如对象的数组和数组的数组。 JS数组
阅读全文
摘要:内容要点: 一.JSON.stringify()和JSON.parse() 1.对象序列化(serialization)是指将对象的状态转换为字符串,也可将字符串还原为对象。ES5提供了内置函数JSON.stringify()和JSON.parse()用来序列化和还原JS对象。 这些方法都使用JSO
阅读全文
摘要:内容要点: 每一个对象都有与之相关的原型(prototype)、类(class)和可扩展性 一.原型属性 1.对象的原型属性是用来继承属性的,这个属性是如此重要,以至于我们经常把 "0的原型属性"直接叫做"o的原型"。 2.原型的属性是在实例对象创建之初就设置好的:通过对象直接量创建的对象使用Obj
阅读全文
摘要:内容要点: 一.ES5中查询和设置属性的API 1.可以通过这些API给原型对象添加方法,并将它们设置成不可枚举的,这让它们看起来更像内置方法。 2.可以通过这些API给对象定义不能修改或删除的属性,借此 "锁定" 这个对象。 3.数据属性的4个特性: 值(value)、可写性(writable)、
阅读全文
摘要:友情链接: 47道HTTP面试题总结 98道vue面试题总结 内容要点: 一.对象属性 对象属性是由名字、值和一组特性构成的。在ES5中,属性值可以用一个或两个方法替代,这两个方法就是getter和setter。由getter和setter定义的属性称做 "存储器属性",它不同于 "数据属性",数据
阅读全文
摘要:内容要点: 一.for/in循环 1.for/in循环可以在循环体中遍历对象中所有可枚举的属性(包括自有属性和继承的属性),把属性名称赋值给循环变量。对象继承的内置方法不可枚举,但在代码中给对象添加的属性都是可枚举的(除非用到下文中提到的一个方法将它们转化为不可枚举的)。例如: var o = {x
阅读全文
摘要:内容要点: js对象可以看做属性的集合,我们经常会检测集合中成员的所属关系 判断某个属性是否存在于某个对象中,可以通过in运算符,hasOwnPreperty()和propertyIsEnumerable()方法来完成这个工作,甚至仅通过属性查询也可以做到这一点。 一.in运算符 in运算符的左侧是
阅读全文
摘要:内容要点: 一.delete运算符可以删除对象的属性。它的操作数应当是一个属性访问表达式。让人感到意外的是,delete只是断开属性和宿主对象的联系,而不会去操作属性中的属性: delete book.author; //book不再有属性author delete book["main title
阅读全文
摘要:内容要点: 一.数组元素通过字符串索引而不是数字索引,这种数组就是我们所说的关联数组,也称散列、映射或字典。 二.继承 1.JS对象具有"自有属性",也有一些属性是从原型对象继承而来的。 2.假设要查询对象o的属性x,如果o中不存在x,那么将会继承在o的原型对象中查询属性x。如果原型对象中也没有X,
阅读全文
摘要:内容要点: 一.每一个JS对象(null除外)都和另一个对象相关联。"另一个"对象就是我们熟知的原型,每一个对象都从原型继承属性. 二.所有通过对象直接量创建的对象都具有同一个原型对象,并可以通过JS代码Object.prototype获得对原型对象的引用。 三.通过关键字new和构造函数调用创建的
阅读全文
摘要:内容要点: 一.对象定义 对象是JS的基本数据类型。对象是一种复合值:它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值。 对象也可看做是属性的无序集合,每个属性都是一个名/值对。 属性名是字符串,因此我们可以把对象看成是从字符串到值的映射。这种基本的数据结构还有很多种叫法,比如:"散
阅读全文
摘要:内容要点: 一.throw语句 所谓异常是当发生了某种异常情况或错误时产生的一个信号。 抛出异常就是用信号通知发生了错误或异常状况。 捕获异常时指处理这个信号,即采取必要的手段从异常中恢复。 在JS中,当产生运行时错误或者程序使用throw语句时就会显示地抛出异常。使用try/catch/final
阅读全文
摘要:一.typeof运算符 typeof是一元运算符,放在其单个操作数的前面,操作数可以是任意类型。返回值为表示操作数类型的一个字符串。 例如: typeof x 返回值 undefined "undefined" null "object" true或false "boolean" 任意数字或NaN
阅读全文
摘要:内容要点: 一.in运算符 in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象。如果右侧的对象拥有一个名为左操作数数值的属性名,那么表达式返回true。 例如: var point=["x":1,"y":2]; var a="x" in point; //true:
阅读全文
摘要:内容要点: 一. 严格相等运算符" " 首先计算其操作数的值,然后比较这两个值,比较过程没有任何类型转换: 1.如果两个值类型不同,则它们不相等。 2.如果两个值都是null或者都是undefined,则它们不相等。 3.如果两个值都是布尔值true或都是布尔值false,则它们不相等。 4.如果其
阅读全文
摘要:JS数据类型转换方法主要有三种: 转换函数、强制类型转换、利用js变量弱类型转换。 一.转换函数 parseInt()和parseFloat()两个转换函数。 前者把值转换成整数,后者把值转换成浮点数。 只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not
阅读全文
摘要:内容要点 一.相似性 var a= undefined; var b= null; if(a==b){ alert("相等"); } 二.用法 1.null表示"没有对象",即该处不应该有值。 典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象。 (2) 作为对象原型链的终点。 2.un
阅读全文