【javaScript】全局函数

在JavaScript中内置了几个系统函数,这些系统函数可以在JavaScript代码中随时随处调用,因此也称为全局函数。

函数说明
eval(expr)执行字符串expr中的javaScript代码
decodeURI(encodedURI)将encodedURI进行解码
decodeURIComponent(encodedURI)将URI组件进行解码
encodeURI(URI)将URI进行编码
encodeURIComponent(String)将URI组件进行编码
escape(string)将string进行编码
isFinite(number)判断number是不是无穷大
isNaN(testValue)判断testValue是否为NaN
Number(objRef)将objRef转换为数字
parseFloat(str)将str转换为浮点型数据
parseInt(str,[,radix])将str转换为整型数据
String(objRef)将objRef转换成字符串
unescape(string)将string进行编码

一:eval(expr)   执行字符串expr中的javaScript代码

var str="1+2";
document.write(str);
document.write(eval(str));

 以上是一个最简单的例子第一行输出是“1+2”,第二行输出是“”3“,eval执行了str中的语句

二:isFinite(number)  检测一个值是否是无穷大

//以下代码返回false
document.write(isFinite(Infinity),"<br>");
document.write(isFinite(-Infinity),"<br>");
document.write(isFinite(NaN),"<br>");
//以下代码返回true
document.write(isFinite(123),"<br>");
document.write(isFinite(true),"<br>");
document.write(isFinite("123"),"<br>");
//以下代码返回false
document.write(isFinite("abc"),"<br>");

 以上代码中Infinity式javaScript中的常量表示无穷大,而-Infinity则表示负无穷大,NaN也是一个常量表示不是数字

根据上面的代码,这个函数是判断是不是有穷大,当是数字或者布尔型返回true,"123"可以隐式转换成数字型

而数字型,无穷大,非数字都是false

三:isNaN(testValue)   检测一个值是否是非数字

//以下代码返回true
document.write(isNaN(NaN),"<br>");
document.write(isNaN("abc"),"<br>");
document.write(isNaN(undefined),"<br>");

//以下代码返回false
document.write(isNaN(Infinity),"<br>");
document.write(isNaN(123),"<br>");
document.write(isNaN(true),"<br>");
document.write(isNaN("123"),"<br>");
document.write(isNaN(null),"<br>");

NaN非数字,和字母都返回true,值得注意的是undefined(未定义),也不是数字

而布尔型,数字型,null都被javaScript认定是数字返回false

四:parseInt(str,[,radix])    转换成整数

 str:被转换的字符串

radix:用于说明被转换数字的进制,默认是10进制,这个参数是可以省略的,这里我感觉非10进制不太重要,所以不总结这个参数了

javaScript中有两个函数可以转换成整数parseInt(str),Number(str),下面这个例子来说明两个函数之间的区别

var str01="123";
var str02="abc";
var str03="123abc";
var str04="abc123"
//返回123
document.write(parseInt(str01),"<br>");
//返回123
document.write(Number(str01),"<br>");
//返回NaN
document.write(parseInt(str02),"<br>");
//返回NaN
document.write(Number(str02),"<br>");
//返回123
document.write(parseInt(str03),"<br>");
//返回NaN
document.write(Number(str03),"<br>");
//返回NaN
document.write(parseInt(str04),"<br>");
//返回NaN
document.write(Number(str04),"<br>");
//返回NaN
document.write(parseInt(null),"<br>");
//返回0
document.write(Number(null),"<br>");
//返回NaN
document.write(parseInt(undefined),"<br>");
//返回NaN
document.write(Number(undefined),"<br>");

 通过以上例子可以清楚的看到:在转换过程中Number()函数遇到不能转换的字符串,将会返回NaN,而如果parseInt()函数遇到不能转换的字符串,它将转换到不能转换为止。这就是两个函数的唯一区别

实际上,parseInt()函数是被设计来把字符串转换成整数,而Number()函数是设计用来把对象转换整数,而根据javaScript的机制,如果不是字符串和对象,容器会隐式转换,也就是自动转换成字符串或对象

所以我们看null被转换时null被封装为对象,而null对象转换成整形是0

四:字符串编码与解码

 escape(string):字符串 → ISO字符集中的16进制编码

unescape(string): ISO字符集中的16进制编码 →  ISO字符集中的16进制编码

 举个栗子:

var str="escape()函数和unescape()函数";
var escapeStr=escape(str);
var unescapeStr=unescape(escapeStr);

document.write("原始字符串是:",str,"<br>");
document.write("将字符串编码之后是:",escapeStr,"<br>");
document.write("将编码之后的字符串再解码是:",unescapeStr,"<br>");
 

输出是这样的:

原始字符串是:escape()函数和unescape()函数
将字符串编码之后是:escape%28%29%u51FD%u6570%u548Cunescape%28%29%u51FD%u6570
将编码之后的字符串再解码是:escape()函数和unescape()函数

相关推荐