首页 > 代码库 > 读javascript高级编程08-引用类型之Global、Math、String
读javascript高级编程08-引用类型之Global、Math、String
一、Global
所有在全局作用域定义的属性和方法,都属于Global对象。
1.URI编码:
encodeURI():主要用于对整个URI编码。它不会对本身属于URI的特殊字符进行编码。
encodeComponentURI():主要用于对URI中的某一部分进行编码,很常用的是对查询字符串参数进行编码。它会对所有非标准字符进行编码。
对应的解码方法是decodeURI()和decodeURIComponent。
var uri=‘http://www.cnblogs.com?a=1 2&b=陈&c=123‘;var a=encodeURI(uri);// http://www.cnblogs.com?a=1%202&b=%E9%99%88&c=123var b=encodeURIComponent(uri);// http%3A%2F%2Fwww.cnblogs.com%3Fa%3D1%202%26b%3D%E9%99%88%26c%3D123decodeURI(a);//√"http://www.cnblogs.com?a=1 2&b=陈&c=123"decodeURI(b);//×"http%3A%2F%2Fwww.cnblogs.com%3Fa%3D1 2%26b%3D陈%26c%3D123"decodeURIComponent(a);//√"http://www.cnblogs.com?a=1 2&b=陈&c=123"decodeURIComponent(b);//√http://www.cnblogs.com?a=1 2&b=陈&c=123
2.eval()方法
当调用eval()方法时,会执行参数中传入的语句,并把执行结果插入到原位置。
该方法执行的代码与当前调用环境具有相同的作用域链。
var a=1;eval(‘function test(){alert(a);}‘);test();//结果1
3.在web浏览器中,全局作用域的变量和方法都会成为window对象的属性。
var name=‘jing‘;function sayName(){console.log(name);}window.sayName(window.name);//jing
二、Math对象
Math对象包含了很多数据计算的属性和方法。常用的几个:
1.Math.min()和Math.max:计算一组数值中的最大值和最小值,参数可以任意多个数值。
Math.min(3,5,10,88,3);//Math.max(3,5,10,88,3)//88
当计算一个数组中的最大最小值时,可以这样调用:
var result=[3,5,10,88,3];Math.min(result);//错误,NaNMath.min.apply(Math,result);//3
2.舍入方法
Math.ceil():向上取整;
Math.floor():向下取整;
Math.round():四舍五入取整。
var data=http://www.mamicode.com/5.6;Math.ceil(data);//6Math.floor(data);//5Math.round(data);//6Math.round(5.4)//5
3.随机数random ()
Math.random()返回一个介于0和1之间的随机数,不包含0和1。
取一个整数范围内的随机数可以这样来计算:
result=(Math.random()*可能取值的总数+第一个可能的值)
三、String类型
1.字符方法
charAt(n):直接返回字符串中指定位置的字符;
charCodeAt(n):返回指定位置字符的字符编码。
var s="Javascript高级程序设计";console.log(s.charAt(10));//高console.log(s.charCodeAt(10));//39640
2.取子串
slice():第一个参数是子串开始位置索引,第二个参数是子串结束位置索引(不包括结束字符).
substring():第一个参数是子串开始位置索引,第二个参数是子串结束位置索引(不包括结束字符).
substr():第一个参数是子串开始位置索引,第二个参数是子串长度.
var s="提醒一下七夕节快到了";console.log(s.slice(4,7));console.log(s.substring(4,7));console.log(s.substr(4,3));
3.字符串模式匹配
search(reg):返回字符串中第一个匹配项的索引,如果匹配不到就返回-1。方法有一个参数,可以是正则表达式或者RegExp对象。
match(reg):该方法有一个参数,可以是正则表达式或者RegExp对象。
replace():替换子串。如果想替换所有匹配的子串,那么只能用正则表达式。
var s=‘http://www.cnblogs.com/1/1/‘var r=/\d+/g;s.search(r);//23s.match(r);//["1","1"]//只替换第一个匹配项s.replace(‘1‘,‘janes‘)//"http://www.cnblogs.com/janes/1/"//替换所有匹配项s.replace(r,‘janes‘);//"http://www.cnblogs.com/janes/"