javascript内置函数
JavaScript函数有2种,一种是程序员自定义的函数,另外一种是JavaScript内部事先已经定义好的函数(内置函数)。由于内置函数已经事先定义好了,所以在开发过程中,我们直接调用这个函数就ok了,这样极大方便我们的编程效率。
JavaScript的内置函数非常多,这里只给大家介绍一些使用频率非常高的函数。
我们要介绍的内置函数有7个:
(1)eval()函数
(2)isFinite()函数
(3)isNaN()函数
(4)parseInt()函数
(5)parseFloat()函数
(6)escape()函数
(7)unescape()函数
eval()函数
在JavaScript中,eval()函数可以把一个字符串当做一个JavaScript表达式一样去执行它。
语法:
eval(string)
说明:string表示一个字符串,是eval()函数必选参数。eval()函数是有返回值的,如果参数字符串是一个表达式,就会返回表达式的值。如果参数字符串不是表达式,也就是没有值,那么就会返回“undefined”。
举例:
<html>
<head>
<title></title>
<script type="text/javascript">
eval("document.write('<strong>JavaScript教程</strong> ')");
document.write("<br/>");
eval("x=10;y=20;document.write(x*y)");
document.write("<br/>");
eval("document.write('www.catroom.com.cn')");
document.write("<br/>");
</script>
</head>
<body>
</body>
</html>
在浏览器预览效果如下:
在此说明一下,虽然eval()函数很强大,但是在实际开发中,我们却很少用到。所以这个函数大家了解一下即可,不需要深究。
isFinite()函数
在JavaScript中,isFinite()函数用来确定某一个数是否是一个有限数值。
语法:
isFinite(number)
说明:
number参数是必选的,可以是任意的数值,例如整型、浮点型数据。
如果该参数为非数字、正无穷数和负无穷数,则返回false;否则的话,返回true。
如果是字符串类型的数字,就会自动转化为数字型。
举例:
<html>
<head>
<title></title>
<script type="text/javascript">
document.write("isFinite(123)的返回值为:");
document.write(isFinite(123)+"<br/>");
document.write("isFinite(3.1415)的返回值为:");
document.write(isFinite(3.1415)+"<br/>");
document.write("isFinite(8-6)的返回值为:");
document.write(isFinite(8-6)+"<br/>");
document.write("isFinite(0)的返回值为:");
document.write(isFinite(0)+"<br/>");
document.write("isFinite(\"JavaScript入门教程\")的返回值为:");
document.write(isFinite("JavaScript入门教程")+"<br/>");
document.write("isFinite(2020/05/03)的返回值为:");
document.write(isFinite(2020/05/03)+"<br/>");
</script>
</head>
<body>
</body>
</html>
在浏览器预览效果如下:
isFinite()函数语法很简单,实际开发也用得不多,大家看看就可以了。
isNaN()函数
在JavaScript中使用isNaN()函数来判断一个值是否是NaN值。如果该值为非数字值或NaN值,返回true,否则返回false。那什么叫NaN值呢?啊,很简单:
NaN = "Not a Number"(非数字值)
顾名而思义,现在大家都懂了什么叫NaN值吧。其实数字型数据(整型或浮点型)就不是NaN值,而非数字型(如字符串)就是NaN值。
语法:
isNaN(参数)
说明:
这里的参数可以是任何类型的数据,例如数字型、字符串型、日期时间型等。不过得注意一点,当参数是“字符串类型的数字”,就会自动转换为数字型。
例如:
123 //这不是NaN值
"123" //这也不是NaN值,因为“字符串类型的数字”会被自动转换为数字型
"abc123" //这是NaN值
举例1:
<html>
<head>
<title></title>
<script type="text/javascript">
document.write("isNaN (123)的执行结果是:");
document.write(isNaN (123)+"<br/>");
document.write("isNaN (3.1415)的执行结果是:");
document.write(isNaN (3.1415)+"<br/>");
document.write("isNaN (0)的执行结果是:");
document.write(isNaN (0)+"<br/>");
document.write("isFinite(\"www.catroom.com.cn\")的执行结果是:");
document.write(isFinite("www.catroom.com.cn")+"<br/>");
document.write("isFinite(2020/05/03)的执行结果是:");
document.write(isFinite(2020/05/03)+"<br/>");
</script>
</head>
<body>
</body>
</html>
在浏览器预览效果如下:
使用这个函数的典型情况就是检查parseInt()方法和parseFloat()方法的返回值。还有一种方法,便利可以与它自身进行比较,如果比较的结果不相等,那么它就是NaN。这是因为NaN是唯一与自身不等的值。
举例:
<html>
<head>
<title></title>
<script type="text/javascript">
var str1 = "test";
var str2 = "test123"
var str3 = "5/0";
str1 = parseInt(str1);
str2 = parseInt(str2);
str3 = parseInt(str3);
document.write("str1 = "+ str1 + "<br>");
document.write("str2 = " + str2 + "<br>");
document.write("str3 = " + str3 + "<br>");
if (isNaN(str1) == true) {
document.write("str1=" + str1 + " is not a number<br>");
}
if (isNaN(str2) == true) {
document.write("str2=" + str2 + " is not a number<br>");
}
if (isNaN(str3) == true) {
document.write("str3="+ str3 + " is not a number<br>");
}
</script>
</head>
<body>
</body>
</html>
在浏览器预览效果如下:
parseInt()函数和parseFloat()函数
在JavaScript中,parseInt()函数和parseFloat()函数功能类型,都是将“数字字符串”转化为一个数值。之前我们讲解的那几个函数可能用得不是很多,但是这两个函数在实际开发用得非常的多,大家要打醒十二分精神把这两个函数给记住。
parseInt()函数
parseInt()函数主要将首位为数字的字符串转化为数字。如果字符串不是以数字开头,则将返回NaN。
语法:
parseInt(数字字符串)
举例:
<html>
<head>
<title></title>
<script type="text/javascript">
var str = "10"+20;
var sum = parseInt("10")+20;
document.write(str+"<br/>");
document.write(sum);
</script>
</head>
<body>
</body>
</html>
在浏览器预览效果如下:
分析:大家可以看到,如果一个字符串跟一个数字相加,JavaScript会将数字转化为字符串,然后再进行相加。这一知识点,我们在“JavaScript表达式”这一节已经详细讲解了。不过,我们如果将数字字符串“10”使用parseInt()函数转换为数值型数据,则相加的结果就不是字符串了,而是数字型数据。大家稍微琢磨一下。
parseFloat()函数
parseFloat()函数主要将首位为数字的字符串转化为浮点型数字。如果字符串不是以数字开头,将返回NaN。
语法:
parseFloat(数字字符串)
举例:
<html>
<head>
<title></title>
<script type="text/javascript">
var str = "3.14"+20;
var sum = parseFloat("3.14")+20;
document.write(str+"<br/>");
document.write(sum);
</script>
</head>
<body>
</body>
</html>
在浏览器预览效果如下:
具体分析跟parseInt()函数的例子分析一样,在此不累赘解析。
escape函数和unescape()函数
escape函数
escape()函数主要作用就是对字符串进行编码,以便它们能在所有计算机上可读。
语法:
escape(charString)
说明:charString是必选参数,表示要进行编码的字符串或文字。escape()函数返回一个包含charString内容的字符串值(Unicode格式)。除了个别如“*@”之类的符号外,其余所有空格、标点符号以及其他非ASCII字符均可用“%xx”这种形式的编码代替,其中xx等于表示该字符的十六进制数。
举例:
<html>
<head>
<title></title>
<script type="text/javascript">
document.write(escape("hello lvye!"))
</script>
</head>
<body>
</body>
</html>
在浏览器预览效果如下:
分析:
空格符对应的编码是“%20”,感叹号对应的编码是“%21”,因此执行escape("hello lvye!")后结果为“hello%20lvye%21”。
unescape()函数
escape()函数和unescape()函数是刚好反过来的,前者是编码,后者是解码。
语法:
unescape(charString)
说明:
charString是必选参数,表示要进行解码的字符串。unescape()函数返回指定值的ASCII字符串。与escape()函数相反,unescape()函数返回一个包含charString内容的字符串值,所有以“%xx”十六进制形式编码的字符都用ASCII字符集中等价的字符代替。
举例:
<html>
<head>
<title></title>
<script type="text/javascript">
document.write(unescape("hello%20lvye%21"))
</script>
</head>
<body>
</body>
</html>
在浏览器预览效果如下:
分析:
空格符对应的编码是“%20”,感叹号对应的编码是“%21”,因此执行unescape("hello%20lvye%21")后结果为“hello lvye!”。