js引用类型

这段时间在看js高程这本书,看到第五章讲了引用类型,觉得比较重要所以写下这篇笔记。写的比较随意,完全是为了自己再理清一遍。

1. 引用类型

1.1 Object

大多数引用类型实际上是Object类型的实例。所有的对象都有toLocaleString()、toString()、valueOf()方法。创建方法有两种:构造函数法和对象字面量表示法。分别表示如下:

1
2
3
4
5
6
7
8
var stu = new Object();
stu.name = "yang";
stu.age = 20;
//常用的是对象字面量表示法
var stu = {
name:"yang",
age:20
}

1.2 Array

创建方法有两种:构造函数方法和数组字面量方法。
数组的操作方法有栈方法:push()和pop();队列方法:push()和shift();反向队列:unshift()和pop();
重排序方法:reverse(),sort(compareFunction)
sort()用法

1
2
3
4
5
6
7
8
9
10
11
12
13
var arr = ["color","amy","yellow","purple","red"];
function compare (element1,element2) {
if (element1<element2) {
return -1;
}
else if (element1 > element2) {
return 1;
}
else{
return 0;
}
}
arr.sort(compare);

操作方法:

  • 删除:splice(0,2)删除前两项
  • 插入:splice(起始位置,要删除的项数[插入时这项始终为0],个数不限的要插入的项)
  • 替换:splice(2,1,”green”),从位置2开始删除一项,替换成green

迭代方法
每个迭代方法的参数都是一个函数,参数为item,index,array

名称 返回值
every() 每一项都返回True,结果为True
some() 有一项返回True,结果为True
filter() 返回符合条件的item
map() 每一项进行映射后返回
forEach() 无返回值

1.3 Date

表示时间的对象

1.4 RegExp

实例方法:exec(str),返回包含第一个匹配项信息的数组,和test(str),返回true或false

1.5 Function

函数在js中也是一种对象,可以作为函数参数和返回值,具体属性和方法在此不详述。

2. 基本包装类型:

2.1 Boolean

2.2 Number

toFixed()
toExponential()
toPrecision()

2.3 String

  • 字符串操作:concat() slice() substring() substr()
  • 字符串位置:indexOf(goalstr,startindex),lastIndexOf()
  • 删除所有空格:trim()
  • 字符串大小写转换:toLowerCase() toUpperCase()
  • 模式匹配:match(RegExp) search(RegExp) replace(RegExp,replace | function(match,pos,originalText)) split()
  • 字符串比较:localeCompare(str)
  • 根据字符ASC编码转换成字符:fromCharCode()
  • HTML方法:anchor(name) big() bold()等

3. 单体内置对象:Global和Math

3.1 Global对象

不属于任何对象的属性和方法都是Global对象的属性和方法,也就是说,没有所谓的全局变量和全局函数,它们其实都属于Global对象

  • encodeURI() encodeURIComponent() decodeURI() decodeURIComponoent()
  • eval():相当于一个完整的ECMAScript解析器,接收要执行的ECMAScript字符串。使用时需要特别谨慎,尤其是在它执行用户输入数据的情况下。
  • Golbal对象属性,如以下的值和构造函数都属于Global对象
属性 说明
undefined 特殊值undefined
NaN 特殊值NaN
Infinity 特殊值Infinity
Object 构造函数Object
Array 构造函数Array
Function 构造函数Function
  • window对象

3.2 Math对象:

3.2.1 Math对象的属性如下:

属性 说明
Math.E 自然对数的底数,即常量e的值
Math.LN10 10的自然对数
Math.LOG2E 以2为底e的对数
Math.PI π的值
Math.SQRT1_2 1/2的平方根

3.2.2 min()和max()方法

1
Math.min(23,4,43,13,45);  //4

要找到数组中的最大或最小值,可以像下面这样使用apply()方法

1
2
var values = [12,23,42,2,5,43,25];
var max = Math.max.apply(Math,values);

3.2.3 舍入方法

  • ceil() 向上舍入
  • floor() 向下舍入
  • round() 四舍五入

3.2.4 random()方法

返回介于0和1之间的一个随机数,如下面的例子返回一个1到10之间的随机数

1
var temp = Math.ceil(Math.random()*10);

返回一个lowercase到uppercase之间的随机数

1
2
3
4
function selectFrom (lowervalue,uppervalue) {
var choices = uppervalue - lowervalue +1;
return Math.floor(Math.random()*choices+lowervalue);
}

3.2.5 其他方法

方法 说明
Math.abs(num) 返回数值的绝对值
Math.sin(x) 返回x的正弦值
Math.cos(x) 返回x的余弦值
Math.exp(num) 返回e的num次方
Math.log(num) 返回num的自然对数
Math.sqrtnum) 返回num的平方根