严格意义上,js中所有的全局变量、全局方法都是不存在的,因为这些变量方法都存在于Global对象中。Global对象不能直接new,也不能直接使用,在Scripting引擎初始化时被实例化,并且使其中的方法、属性可立即使用。
对于Global对象中的方法,可以直接使用。如前面使用的parseInt()就属于Global中的方法。
简单点理解就是:Global定义了一堆的方法,这些方法在任何js代码中都可直接使用。
encodeURI():类似于android中的URLEncoder.encode(),将uri进行加密。
decodeURI():跟encodeURI()相反,对传入的值进行解密。两者示例如下:
var uri = "https://www.baidu.com/s?wd=百度傻逼"; document.write(encodeURI(uri));//输出值为result。此处就直接使用encodeURI,不需要new Global对象。 var result = "https://www.baidu.com/s?wd=%E7%99%BE%E5%BA%A6%E5%82%BB%E9%80%BC"; document.write(decodeURI(result));//输出值为uriencodeURIComponent():类似于encodeURI(),也是为uri进行加密。但会将“:”、“/”等符号也进行加密。
decodeURIComponent():与encodeURIComponent()对应,用encodeURIComponent()加密的uri,用decodeURI无法完全解密。这两个方法最常用。如下:
var uri = "https://www.baidu.com/s?wd=百度傻逼"; document.write(encodeURIComponent(uri));//输出值为result var result = "https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%E7%99%BE%E5%BA%A6%E5%82%BB%E9%80%BC"; document.write(decodeURIComponent(result));//输出值为uri
escape()与unescape():前者是对文字进行加密,后者进行解密的。同encodeURI等类似,只不过两者加密得到的值不同。
eval(String):计算某个字符串,并执行其中的js代码,该方法可以将string格式的数据转换成相应的对象或者执行其中的js代码。类似于android中的JSONObject obj = new JSONObject(s),它可以将string格式的jsonobject转换成JSONObject对象,然后再进行解析。如:可将string形式的数组转换中js中实实在在的数组。参数中要含有要计算的js表达式或者要执行的语句。返回通过计算string得到的值。如:
var ju = "var a = 10;var b = 20;document.write(a*b);"; eval(ju);//执行js语句,得到变量a,b,并且同时执行document.write()语句 alert(a); document.write("<br />") var r1= eval("2*2;");//r1 === 4;eval执行了参数中的2*2语句。 document.write(typeof(r1)+"----"+r1);//输出为:number----4 document.write("<br />") //将一个字符串格式的数组转换成js中的数组对象 var arrayStr = "[\"var c = 10;\",\"var d = 20;\",\"c+d;\",3]"; var array = eval(arrayStr);//array为一个数组 for(var a in array) document.write(array[a]); document.write("<br />") //将一个string格式的对象通过eval转换成js中的对象。 var objStr = "{name:\"这是name\",age:13}"; var obj = eval("("+objStr+")");//这里比较特别,必须在前后加上(),否则不成功 document.write(obj.name);//调用对象中的属性
注意:在将string类型的对象转换成js对象时,必须在前后加上()。
parseInt()与parseFloat():将string转换成number类型。
isNaN():is not a number,如果不是一个数字返回true,否则返回false。string类型的变量如果只由纯数字和小数点组成,该方法也返回true。如:
function write(params){ document.write(params); document.write("<br/>"); } var s = "00000."; write(isNaN(s));//false var b = "89643250a"; write(isNaN(b));//true,因为最后含有字母
日期类型。
getFullYear():获取当前年。
getMonth():获取月。从0开始。
getDate():获取日。
getDay():获取星期。
getHours():获取时。
getMinutes():获取分
getSeconds():获取秒
getTime():获取当前时间的毫秒值。如下:function write(params){ document.write(params); document.write("<br/>"); } var date = new Date(); write(date.getFullYear());//年 write(date.getMonth() + 1);//月 write(date.getDate());//日 write(date.getHours());//时 write(date.getMinutes());//分 write(date.getSeconds());//秒 write(date.getDay());//星期 write(date.getTime());//毫秒值