AUBREY

SOMETIMES LOVE JUST AIN'T ENOUGH

JavaScript高级程序设计(第5章 引用类型)(2)

5.6 Page 118 基本包装类型


还有三个特殊的引用类型:Boolean、Number、String。(后台会自动为他们创建对应的基本包装类型对象)

引用类型与基本包装类型的主要区别是对象的生存期。使用new操作符创建的引用类型实例,在执行流离开当前作用域之前都一直保存在内存中。二自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,随后立即被销毁。

 

5.6.1 Page 120 Boolean类型(不建议使用,略)

 

5.6.2 Page 120 Number类型

toFixed() 方法:会按照指定的小数位返回数值的字符串表示,且会自动舍入

 

实例:

var num = 10.005;
alert(num.toFixed(2));     //"10.01"

toExponential() 方法:会返回以e表示法表示的数值的字符串形式。

实例:

var num = 10;
alert(num.toExponential(1));     //"1.0e+1"

toPrecision() 方法:可能会返回固定大小(fixed)格式或者指数(exponential)格式,具体看哪种最合适。

实例:

var num = 99;
alert(num.toPercision(1));   //"1e+2"
alert(num.toPercision(2));   //"99"
alert(num.toPercision(3));   //"99.0"

 

5.6.3 Page 122 String类型


1、字符方法

charAt():

var a = "Hello world";
alert(a.charAt(1));    //"e"

 

charCodeAt():

var a = "Hello world";
alert(a.charCodeAt(1));    //101(小写字母e的字符编码)

直接访问个别字符的方法:

var a = "Hello world";
alert(a[1]);    //"e"

2、字符串操作方法

concat() 拼接字符串:

var a = "Hello";
var b = a.concat("world","!");
alert(b);    //"Hello world !"

另外还有slice()、subString()方法:这两个方法都会返回被操作字符串的一个子字符串,接受一或两个参数,参数一是自字符串的开始位置;参数二:slice()和subString()指最后一个字符后面的位置

3、字符串位置方法

indexOf(): 从左往右检索

lastIndexOf():从右往左检索

var a = "Hello world";
alert(a.indexOf("o"));   //4
alert(a.lastIndexOf("o");  //7
alert(a.indexOf("o",6));   //7
alert(a.lastIndexOf("o",6);  //4

4、trim()方法:创建一个字符串的副本,并删除前置及后缀的所有空格,并返回结果。

var a = "    Hello world   ";
var b = a.trim();
alert(b);    //"Hello world"

5、字符串大小写转换方法

toLowerCase()、toUpperCase()

toLocaleLowerCase()、toLocaleUpperCase()   //针对地区的,用这个比较保险

var a = "Hello world";
alert(a.toLocaleLowerCase());   //"hello world"

6、字符串的模式匹配方法

match():等同于RegExp的exec()方法,匹配

var text = "cat, bat, sat, fat";
var pattern = /.at/;
var matches = text.match(pattern);
alert(matches.index);   //0
alert(matches[0]);      //"cat"

search():返回字符串中第一匹配项的索引,接受唯一一个参数,由字符串或RegExp对象指定的一个正则表达式。

var text = "cat, bat, sat, fat";
var pos = text.search(/at/);
alert(pos);     //1

replace():替换

var text = "cat, bat, sat, fat";
var a = text.replace("at","ond");
alert(a);   //"cond, bat, sat, fat"
a = text.replace(/at/g, "ond");
alert(a);   //"cond, bond, sond, fond"

7、LocaleCompare()方法:比较两个字符串,并返回-1、0、1其中一个值。

-1:字符串在字母表中应该排在参数字符串之前

0:字符串等于参数字符串

1:字符串在字母表中应该排在参数字符串之后

var a = "yellow";
alert(a.localeCompare("brick"));   //1
alert(a.localeCompar("yellow"));   //0
alert(a.localeCompare("Zone"));    //-1

8、fromCharCode()方法:接收一或多个字符编码,并将它们转换为字符。

alert(String.fromCharCode(104,101,108,108,111));  //"hello"

5.7 Page 130 单体内置对象


内置对象:由ECMAScript实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了。如:Object、Array、String、Global、Math。

 

 

5.7.1 Page 131 Global对象

 

1、URI编码方法

URI:Uniform Resource Identifiers,通用资源标识符

 

encodeURI():对URI进行编码,以便发送给浏览器。不会对本身属于URI的特殊字符进行编码,比如冒号、正斜杠、问号和井字号。

encodeURIComponent()对URI进行编码,以便发送给浏览器。会对任何非标准字符进行编码。

decodeURI():解码encodeURI()编码

decodeURIComponent()解码encodeURIComponent()编码

var uri = "http://www.wrox.com/illegal value.htm#start";
alert(encodeURI(uri));//"http://www.wrox.com/illegal%20value.htm#start"
alert(encodeURIComponent(uri));//"http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start"

2、eval()方法:会将传入的字符串当做 JavaScript 代码进行执行

 

具体也不知道有什么用,目前就记录个实例供理解吧。

var a = "Aubrey";
eval("alert(a)");    //Aubrey
eval("function sayHi(){
alert('Hi');
}
");
SayHi();  //Hi

3、Global对象的属性

image.png

 

4、window对象

ECMAScript虽然没有指出如何直接访问Global对象,但是Web浏览器都是将这个全局对象作为window对象的一部分加以实现的。因此在全局作用域中声明的所有变量和函数,都成为了window对象的属性。

 

5.7.2 Page 134 Math对象

 

1、Math对象的属性

 

Math.E:  自然对数的底数,即常量e的值

Math.LN10:  10的自然对数

Math.LN2:  2的自然对数

Math.LOG2E:  以2为底e的对数

Math.LOG10E:  以10为底e的对数

Math.PI:  π的值

Math.SQRT1_2:  1/2的平方根(即2的平方根的倒数)

Math.SQRT2:  2的平方根


2、min()max()方法

用于确定一组数值中的最大值和最小值。

var a = Math.max(3,12,52,48);
alert(a);   //52

var b = Math.min(3,12,52,48);
alert(b);   //3

3、舍入方法

Math.ceil()  :  向上取大舍入

Math.floor()  :  向下取小舍入

Math.round()  :  标准四舍五入

alert(Math.ceil(25.1));    //26  
alert(Math.floor(25.9));    //25
alert(Math.round(25.6));    //26

4、Math.random()  :  返回大于等于0小于1的随机数

alert(Math.floor(Math.random()));    //0

5、其他方法  Page 136

image.png

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注