这段时间在看js高程这本书,看到第五章讲了引用类型,觉得比较重要所以写下这篇笔记。写的比较随意,完全是为了自己再理清一遍。
1. 引用类型
1.1 Object
大多数引用类型实际上是Object类型的实例。所有的对象都有toLocaleString()、toString()、valueOf()方法。创建方法有两种:构造函数法和对象字面量表示法。分别表示如下:1
2
3
4
5
6
7
8var 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
13var 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
2var 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
4function 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的平方根 |