第5 章 引用类型(接上篇)
一、基本包装类型
借助基本包装类型可以使基本类型值可以被当作对象来访问,三种基本包装类型分别是:Boolean、Number 和 String。具有如下特征:
- 每个包装类型都映射到同名的基本类型;
- 在读取模式下访问基本类型值时,就会创建对应的基本包装类型的一个对象,从而方便了数据操作;
- 操作基本类型值的语句一经执行完毕,就会立即销毁新创建的包装对象。
二、String
1、字符访问方法
- charAt():返回给定位置的字符
- charCodeAt():返回给定位置的字符编码
var stringValue = "hello world";
alert(stringValue.charAt(1)); //"e"
alert(stringValue.charCodeAt(1)); //输出"101"
alert(stringValue[1]); //"e"(方括号加数字索引)
2、字符操作方法
- concat():将一或多个字符串拼接起来,返回拼接得到的新字符串;原字符串不变;
以下3个,基于字符串创建新子字符串并返回。两个参数:指定子字符串的开始位置,指定子字符串到哪里结束;如果第二个参数为空,则将字符串的长度作为结束位置。3个方法对原字符串不变。
- slice():第二个参数指定的是子字符串
最后一个字符后面的位置
;如果参数为负,将传入的负值与字符串的长度相加; - substring():第二个参数指定的是子字符串
最后一个字符后面的位置
;如果参数为负,会把所有负值参数都转换为 0; - substr():第二个参数指定的是返回的
字符个数
;如果参数为负,将负的第一个参数加上字符串的长度,而将负的第二个参数转换为 0;
var stringValue = "hello world";
alert(stringValue.slice(-3)); //"rld"
alert(stringValue.substring(-3)); //"hello world"
alert(stringValue.substr(-3)); //"rld"
alert(stringValue.slice(3, -4)); //"lo w"
alert(stringValue.substring(3, -4)); //"hel"
alert(stringValue.substr(3, -4)); //""(空字符串)
3、字符串位置方法
- indexOf():从字符串的开头向后搜索子字符串;
- lastIndexOf():从字符串的末尾向前搜索子字符串;
4、其他
- trim():创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果;原字符串不变;
- toLowerCase()、、toUpperCase():大小写转换;
- match():接受一个参数,要么是正则表达式,要么是RegExp 对象;返回了一个数组;
- search():接受一个参数,要么是正则表达式,要么是RegExp 对象;返回字符串中第一个匹配项的索引;如果没有找到匹配项,则返回-1;
- replace():替换,两个参数:RegExp 对象或者字符串,字符串或者函数;
var text = "cat, bat, sat, fat";
var result = text.replace("at", "ond");
alert(result); //"cond, bat, sat, fat"
result = text.replace(/at/g, "ond");
alert(result); //"cond, bond, sond, fond"
三、内置对象Global
Global是一个全局对象,所有在全局作用域中定义的属性和函数,都是 Global对象就是 对象的属性,如 isNaN()、isFinite()、parseInt()以及 parseFloat()都是Global的方法。
在web浏览器中Global对象就是window,在全局作用域中声明的所有变量和函数,就都成为了 window对象的属性。
1、URI 编码、解码方法
- encodeURI():对整个 URI进行编码,不会对本身属于 URI 的特殊字符进行编码,例如冒号、正斜杠、问号和井字号,只有空格被替换成了%20;
- encodeURIComponent():对 URI 中的某一段进行编码,会使用对应的编码替换所有非字母数字字符;
var uri = "http://www.wrox.com/illegal value.htm#start";
//"http://www.wrox.com/illegal%20value.htm#start"
alert(encodeURI(uri));
//"http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start"
alert(encodeURIComponent(uri));
- decodeURI():只能对使用 encodeURI()替换的字符进行解码。例如,可将%20 替换成一个空格,
- decodeURIComponent():可以解码任何特殊字符的编码
var uri = "http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start";
//http%3A%2F%2Fwww.wrox.com%2Fillegal value.htm%23start
alert(decodeURI(uri));
//http://www.wrox.com/illegal value.htm#start
alert(decodeURIComponent(uri));
2、eval()
eval()方法像是一个完整的 ECMAScript 解析器,只接受一个参数,即要执行的 ECMAScript字符串。
eval("alert('hi')");
// 等价于
alert("hi");
四、内置对象Math
1、min()和 max()
2、舍入方法
- Math.ceil():执行向上舍入,即它总是将数值向上舍入为最接近的整数;
- Math.floor():执行向下舍入,即它总是将数值向下舍入为最接近的整数;
- Math.round():执行标准舍入,即它总是将数值四舍五入为最接近的整数;
3、random()
Math.random()方法返回大于等于 0 小于 1 的一个随机数