JavaScript常用内置函数

常用的内置函数

在使用JavaScript语言时,除了可以自定义函数之外,还可以使用JavaScript的内置函数,这些内置函数是由JavaScript语言自身提供的函数。主要有一下这些
 
函数
说明
parseInt()
将字符型转换为整形
parseFloat()
将字符型转换为浮点型
isNaN()
判断一个数值是否为NaN
isFinite()
判断一个数值是否有限
eval()
求字符串中表达式的值
encodeURI()
将URI字符串进行编码
decodeURI()
对已编码的URI字符串进行解码
(1) parseInt() 函数
parseInt() 函数可解析一个字符串,并返回一个整数。
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
当忽略参数 radix , JavaScript 默认数字的基数如下:
如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
parseInt(string, radix)
string:必需。要被解析的字符串。
radix:可选。表示要解析的数字的基数(几进制的数据)。该值介于 2 ~ 36 之间。
    <script>
        document.write(parseInt("10"));   //结果为:10
        document.write(parseInt("10.33"));   //结果为:10
        document.write(parseInt("34 45 66"));   //结果为:34
        document.write(parseInt(" 60 "));   //结果为:60
        document.write(parseInt("40 years"));   //结果为:40
        document.write(parseInt("He was 40"));   //结果为:NaN
        document.write(parseInt("10", 10));   //结果为:10
        document.write(parseInt("010"));   //结果为:10
        document.write(parseInt("10", 8));   //结果为:8
        document.write(parseInt("0x10"));   //结果为:16
        document.write(parseInt("10", 16));   //结果为:16
    </script>
var demo = "123";
var num = parseInt(demo);
console.log(typeof (num) + ":" + num);    //答案显示 number:123

var demo = true;
var num = parseInt(demo);
console.log(typeof (num) + ":" + num);    //答案显示 number: NaN

var demo = false;
var num = parseInt(demo);
console.log(typeof (num) + ":" + num);    //答案显示 number: NaN

var demo = 123.45;
var num = parseInt(demo);
console.log(typeof (num) + ":" + num);    //答案显示 number: 123,此处是直接去掉小数,不是四舍五入

var demo = "10";
var num = parseInt(demo, 16);
console.log(typeof (num) + ":" + num);    //答案显示 number: 16

var demo = "3";
var num = parseInt(demo, 2);
console.log(typeof (num) + ":" + num);    //答案显示 number: NaN  。二进制没有3

var demo = "b";
var num = parseInt(demo, 16);
console.log(typeof (num) + ":" + num);    //答案显示 number: 11

var demo = "123abc";
var num = parseInt(demo);
console.log(typeof (num) + ":" + num);    //答案显示 number: 123

var demo = "100px";
var num = parseInt(demo);
console.log(typeof (num) + ":" + num);    //答案显示 number: 100

注意: 从数字类开始看,看到非数字为止,返回原来的数。

注意: 开头和结尾的空格是允许的。

注意:如果字符串的第一个字符不能被转换为数字,那么 parseInt() 会返回 NaN。

注意: 在字符串以"0"为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数。
 
(2) parseFloat() 函数
parseFloat() 函数可解析一个字符串,并返回一个浮点数。
该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。
parseFloat(string)
string:必需。要被解析的字符串。
    <script>
        document.write(parseFloat("10"));   //结果为:10
        document.write(parseFloat("10.00"));   //结果为:10
        document.write(parseFloat("10.33"));   //结果为:10.33
        document.write(parseFloat("34 45 66"));   //结果为:34
        document.write(parseFloat("   60   "));   //结果为:60
        document.write(parseFloat("40 years"));   //结果为:40
        document.write(parseFloat("He was 40"));   //结果为:NaN
    </script>
var demo = "100.25";
var num = parseFloat(demo);
console.log(typeof (num) + ":" + num);    //答案显示 number: 100.25

var demo = "100.2.3";
var num = parseFloat(demo);
console.log(typeof (num) + ":" + num);    //答案显示 number: 100.2

var demo = "100.2abc";
var num = parseFloat(demo);
console.log(typeof (num) + ":" + num);    //答案显示 number: 100.2

注意: 从数字类开始看,看到非数字为止,返回前面的数

注意:  开头和结尾的空格是允许的。
 
注意:  如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。
 
(3) isNaN() 函数
isNaN() 函数用于检查其参数是否是非数字值。
如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。
isNaN(value)
value:必需。要检测的值。
    <script>
        document.write(isNaN(123));   //结果为:false
        document.write(isNaN(-1.23));   //结果为:false
        document.write(isNaN(5 - 2));   //结果为:false
        document.write(isNaN(0));   //结果为:false
        document.write(isNaN("Hello"));   //结果为:true
        document.write(isNaN("2005/12/12"));   //结果为:true
    </script>

需要注意的是,isNaN() 函数其实并不能像它的描述中所写的那样,数字值返回 false,其他返回 true。实际上,它是判断一个值能否被 Number() 合法地转化成数字。

这中间有什么区别呢,主要提现在一些特别的情况如下:
 1、 数字形式的字符串。例如 "123"、"-3.14",虽然是字符串型,但被 isNaN() 判为数,返回 false。("12,345,678","1.2.3" 这些返回 true)
 2、空值。null、空字符串""、空数组[],都可被Number()合法的转为0,于是被isNaN认为是数,返回false。(undefined、空对象{}、空函数等无法转数字,返回true)
 3、布尔值。Number(true)=1,Number(false)=0,所以isNaN对布尔值也返回false。
 4、长度为 1 的数组。结果取决于其中元素,即:isNaN([a])=isNaN(a),可递归。例如isNaN([["1.5"]])=false。
 5、数字特殊形式。例如"0xabc"、"2.5e+7",这样的十六进制和科学计数法,即使是字符串也能转数字,所以也返回false。
总之,很多时候不能用单纯用 isNaN() 取判断。
比如一个空值或者数组,甚至是包含字母和符号的字符串,它都有可能告诉你这是数值。还是要结合具体情况使用。
 
(4) isFinite() 函数
isFinite() 函数用于检查其参数是否是无穷大。
提示:  如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。
isFinite(value)
value:必需。要检测的数字。
    <script>
        document.write(isFinite(123));   //结果为:true
        document.write(isFinite(-1.23));   //结果为:true
        document.write(isFinite(5 - 2));   //结果为:true
        document.write(isFinite(0));   //结果为:true
        document.write(isFinite("Hello"));   //结果为:false
        document.write(isFinite("2005/12/12"));   //结果为:false
    </script>

(5)eval()函数

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。
如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。
eval( string )
string:必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。
    <script>
        eval("x=10;y=20;document.write(x*y)");   //结果为:200
        document.write("<br>" + eval("2+2"));   //结果为:4
        document.write("<br>" + eval(x + 17));   //结果为:27
    </script>

提示:eval() 是一个危险的函数,它使用与调用者相同的权限执行代码,所以尽可能的不要去使用它,以防被其他人员植入恶意代码,相似的 Function 就不容易被攻击。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值