Global
基础
严格意义上,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));//输出值为uri
encodeURIComponent():类似于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,因为最后含有字母
Date
日期类型。
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());//毫秒值