JavaScript中共包含6种类型的预定义函数:
(1) eval函数
eval(expr) 将对expr进行求值。expr的最终结果应该是一个数字字符串,比如:“342”,‘34‘等,而不是像"fd32",'fda3‘这样。运用 eval()函数的目的是将字符串变为数字。expr可以是一个表达式,也可以是一个或多个JavaScript语句。
示例代码:
<html> <head> <title>test</title> <script language="JavaScript"> function computer(num) { return eval(num)+eval(num); } </script> </head> <body> <script language="JavaScript"> document.write(computer('322')); </script> </body> </html>
结果显示为:644;
如果num参数不为数字字符串,如:“24fd",则浏览器将不会显示任何东西。
(2) isFinite函数
isFinite(number)是用来确定参数是否是一个有限数值。即,如果该参数为非数字,正无穷数,或负无穷数,则返回false,否则返回true;如果是字符串类型的数字,将会自动转化为数字型。
示例代码:
<html> <head> <title>test</title> <script language="JavaScript"> function computer(num) { return isFinite(num); } </script> </head> <body> <script language="JavaScript"> document.write(computer('322')); </script> </body> </html>
结果显示为:true;
如果num参数不为数字字符串,如:“24fd",则会显示false。
(3)isNaN函数
isNaN(num)函数是用来计算一个参数以确定它是否为非数字,注意是非数字,初学者经常会误以为是数字,确定是否为数字则是用前面所说的isFinite();如果是参数是字符串类型的数字,将会自动转化为数字型。
示例代码:
<html> <head> <title>test</title> <script language="JavaScript"> function computer(num) { return isNaN(num); } </script> </head> <body> <script language="JavaScript"> document.write(computer('322')); </script> </body> </html>
现在则会显示:false,因为'322'虽是字符串,但是先转化为数字了;如果将参数num改为'fda32'则会显示true;
(4)parseInt和parseFloat函数
这两个函数都是装数字字符串转化为一个数值.具体的做法如下:
parseInt(str[,radix]) 前面那个str是数字字符串,如'111111111'后面那个radix是确定前面str的进制数,比如前那个'11111111'的radix就是 2,也就是说,这里应该写为parseInt('11111111',2)其结果就为255;再比如:parseInt('A',16)的结果为10.即按照radix这个基数,使前面那个str转化为十进制数.如果基数省略或者或者它与str的首字符相矛盾时,JavaScript基数是基于字符串 str的第一个字符,当第一个字符不能转换为基于基数的数字时,则返回NaN.
parseFloat(str) 直接提取数字部分,都是以十进制计算.即如果str的值为'11'那么计算结果就是11,而不是3或者B.如果处理的字符不是以数字开头,则返回NaN.如果字符后面出现非字符部分,则只取前面数字部分.
示例1:
<html> <head> <title>test</title> <script language="JavaScript"> function computer(num) { return parseFloat(num); } </script> </head> <body> <script language="JavaScript"> document.write(computer('1101')); </script> </body> </html>
结果显示:1101
示例2:
<html> <head> <title>test</title> <script language="JavaScript"> function computer(num,m) { return parseInt(num,m); } </script> </head> <body> <script language="JavaScript"> document.write(computer('111',2)); </script> </body> </html>
显示结果:7
(5)Number和String函数
Number和String函数主要用来将对象转换为数字或字符串:
1.转换为字符型:String(); 例:String(678)的结果为"678"
2.转换为数值型:Number(); 例:Number("678")的结果为678
<html> <head> <title>test</title> </head> <body> <script language="JavaScript"> document.write(Number('323')+Number('323')); </script> </body> </html>
结果显示为:646
<html> <head> <title>test</title> </head> <body> <script language="JavaScript"> document.write(String('323')+String('323')); </script> </body> </html>结果显示为:323323
(6)escape 和unescape函数
escapeunescape函数是将字符串进行编码和解码
注意,对于字母,数字,以及字符将返回它们本身.
示例1:
<html> <head> <title>test</title> </head> <body> <script language="JavaScript"> document.write(escape('hello world!')); </script> </body> </html>
结果显示为:hello%20world%21
示例2:
<html> <head> <title>test</title> </head> <body> <script language="JavaScript"> document.write(unescape('hello%20world%21')); </script> </body> </html>
结果显示为:hello world!