1、引用类型的值(对象)是引用类型的一个实例。引用类型是一种数据结构。;
2、Object类型:
创建Object实例的方法有两种:第一,使用new操作符后跟Object构造函数 var person=new Object();第二,使用对象字面量表示法 var person={
name:"Nicholas",
age:29};
3、使用对象字面量语法时,属性名也可以使用字符串。使用对象字面量时,如果空留其花括号,则可以定义只包含默认属性和方法的对象。
4、JS访问对象属性时使用的都是点表示法,也可以使用方括号表示法来访问对象的属性,方括号内存放的是要访问的属性的字符串的形式。一般建议采用点表示法
5、Array类型
创建数组的基本方式有两种:第一,使用Array构造函数:var colors=new Array()或者var colors=new Array("blue","red","green"); 第二,使用数组字面量表示法,数组字面量时由一对包含数组项的方括号表示,多个数组项之间以逗号隔开,var colors=["blue","red","green"];
6、数组的length属性不是只读的,通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。
7、使用Array.isArray()方法,最终确定某个值是不是数组。
8、数组继承的toLocaleString()、toString()和valueOf()方法,在默认的情况下都会以逗号分隔的字符串形式返回数组项,而如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。
9、栈方法:栈是一种后进先出的数据结构,最新添加的项最早被移除。而在栈中项的插入和一处只发生在栈的顶部。push()和pop()方法。push()方法可以接收任意数量的参数,把它们诸葛添加到数组的末尾,并且返回您修改后数组的长度,而pop()方法则从数组末尾移除最后的一项,减少数组的length值,然后返回移除的项。
10、队列方法:先进先出push()想数组末端添加项,shift()移除数组中第一项并且返回该项。unshift()能在数组的前端添加任意个项并且返回新数组的长度。使用unshift()和pop()方法可以实现在数组的前端添加项,在数组的末端移除项。
11、重排序方法:reverse()和sort()使用reverse犯法会反转数组的项的顺序。
12、操作方法:concat()方法可以基于当前的数组中的所有项创建一个新数组。这个方法会先创建当前数组的一个副本,然后将其接收到的参数添加到这个副本的末尾,最后返回新构建的数组。
13、slice()方法,主要作用是项数组的中部插入项:
删除:只需要指定两个参数:要删除的第一项的位置和要删除掉的项数。
插入:要三个参数,起始位置,0(要删除的个数),要插入的项
替换:三个参数,起始位置,要删除掉的项数、要插入的任意数量的项。
14、位置方法:indexOf()和lastIndexOf(),这两个方法接收两个参数:要查找的项和表示查找起点的位置的索引(可选)这两个方法都是要返回要查找的项在数组中的额位置,要是没有找到的话就返回-1.
15、迭代方法:5个迭代方法。每个迭代方法都接收两个参数:要在每一项上运行的函数和运行该函数的作用域对象(可选)-影响this的值。
every():对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true
filter():对数组中的每一项运行给定的函数,返回该函数会返回true的项组成的数组。
forEach():对数组中的每一项运行给定的函数,该方法没有返回值
map():对数组中的每一项运行给定的函数。返回每次函数调用的结果组成的数组
some():对数组中的每一项运行给定的函数,如果该函数对任一项返回true,则返回true。
归并方法:reduce()和reduceRight()
16、Date类型两个方法:Date.parse():接受一个表示日期的字符串参数,然后尝试根据这个字符串返回相应日期的毫秒数和Date.UTC(). Date.now()方法:返回表示调用这个方法时的日期和时间 毫秒数。
17、RegExp类型
正则表达式:var expression =/pattern/flags;
flags的匹配模式有三种:g :表示全局模式;i:表示区分大小写;m:表示多行模式
另一中创建正则表达式的方式是使用构造函数:
var pattern=/[bc]at/i;
var pattern2=new RegExp("[bc]at","i");
18、RegExp实例方法:exex()该方法主要是为捕获而设计的,接收一个参数,即要应用模式的字符串,然后返回包含第一个匹配信息的数组。第二个方法时test(),他接受一个字符串参数,在模式与该参数匹配的情况下返回true,否则返回false。
19、function类型:函数的定义:
(1)使用函数声明定义的: var sum(num1,num2){ return num1+num2;}
(2) 使用函数表达式定义:var sum=function(num1,num2){ return num1+num2;};
(3)使用构造函数方法定义:var sum=new Function("num1","num2","return num1+num2"); //不推荐
注意:使用不带圆括号的函数名是访问函数指针,而非调用函数。
19、函数内部的属性:两个特殊的对象:arguments和this;argiments对象有一个属性叫做callee,该属性一个指针,指向拥有这个arguments对象的函数。
20、每个函数都要两个属性:length()和prototype,其中length属性表示函数希望接收的命名参数的个数。prototype是保存他们所有势力方法的真正所在。
21、每个函数都包含两个非继承而来的方法:apply()和call();这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。apply方法接受两个参数:一个是其中运行函数的作用域,另一个是参数数组。apply()和call()真正强大的地方时它们可以扩充函数赖以运行的作用域。
22、基本类型和引用类型的布尔值有两个区别:
(1)typeof操作符对基本类型返回“boolean”,而对引用类型返回“object”
(2)由于Boolean对象是Boolean类型的实例,使用instanceof操作符测试Boolean对象会返回true,而测试基本类型的布尔值会返回false。
23、Number类型:
toFixed()方法会按照指定的小数位返回数值的字符串表示。
toExponential()该方法返回以指数表示法表示的数值的字符串形式。
toPrecision()可能返回固定大小的格式,也可能返回指数格式。
24、String类型:用于访问字符串中特定字符的方法是charAt()和charCodeAt()
三个创建新字符串的方法:slice(),substr(),substring().
trim()方法:创建一个字符串的副本,删除前置机后缀的所有空格,然后返回结果
大小写转换方法:toLowerCase()和toUpperCase()
字符串中匹配模式;match()方法,参数只有一个,要么是一个正则表达式,要么是一个RegExp对象。
查找模式:search(),参数只有一个,要么是一个正则表达式,要么是一个RegExp对象
替换字符串的操作:replace()方法,数只有二个,第一个要么是一个正则表达式,要么是一个RegExp对象,第二个是一个字符串或者函数
split()
比较两个字符串:localeCompare()
fromCharCode()方法:接收一个或者多个字符编码,然后将它们转换为一个字符串。
25 Global对象
不属于任何其他队项的属性和方法,最终都属于他的属性和方法
URI编码的方法:Global对象的encodeURI()和encodeURIComponent()可以对URI进行编码,一边发给浏览器
这两者的区别:encodeURI() 不会对自身的术语URI的特殊字符进行编码,如冒号、正斜杠、问号、井号
encodeURIComponent()会对任何遇到的非标准字符进行编码
dencodeURI()和dencodeURIComponent()分别进行解码 eval()函数
26 window对象:全局作用域中声明的所有变量和函数,都成了window对象的属性
27、MAth对象 min()和max()方法
28、舍入方法
Math.ceil()执行向上舍入
Math.floor()执行向下舍入
Math.round()执行四舍五入
Math.random返回大于等于0小于1的一个随机数