再学JS--数据类型转换之显式转换

JavaScript019

再学JS--数据类型转换之显式转换,第1张

在JavaScript中,只有6种值可以被转换为false,其他都会被转换为true

可以通过Number函数将类型转换成数字类型,如果不传参数的话,返回+0;如果参数无法被转换为数字,则返回NaN

如果通过Number转换函数传入一个字符串,它会试图将其转换成一个整数或浮点数,而且会忽略所有前导0,如果有一个字符不是数字,结果都会返回NaN。

parseInt只解析整数,parseFloat则可以解析整数和浮点数,如果字符串前缀是0x或0X,parseInt将其解释为十六进制数,parseInt和parseFloat都会跳过任意数量的前导空格,尽可能解析更多数值字符,并忽略后面的内容。如果第一个非空字符是非法的数字直接量,将最终返回NaN

使用String函数将类型转换成字符串类型,如果String不传参数,返回空字符串。

原始值到对象的转换非常简单,原始值通过调用String()、Number()或者Boolean()构造函数,转换为它们各自的包装对象。

null和undefined属于例外,当将它们用在期望是一个对象的地方都会造成一个类型错误,而不是执行正常的转换。

所有对象(包含数组和函数)都会被转换为true

JavaScript有两个不同的方法来执行转换,toString和valueOf

所有对象除了null和undefined之外的任何值都具有toString方法,通常情况下,它和使用String方法返回的结果是一致的。

然而JavaScript下的很多类根据各自的特点,定了更多版本的toString方法,例如:

另一个转换对象的函数时valueOf,表示对象的原始值。默认的valueOf方法返回这个对象本身,数组、函数、正则简单的继承了这个方法,也会返回对象本身。日期是一个例外,它会返回它的一个内容表示:1970年1月1日以来的毫秒数

对象转字符串可以概括如下:

<script type="text/javascript">

function maxNum()

{

//获取两个文本框的值

var x = document.getElementById("num1").value

var y = document.getElementById("num2").value

//强制转换为数值型

x = parseFloat(x)

y = parseFloat(y)

if(x<y)

{

alert("最大数是:"+y)

}

else

{

alert("最大数是:"+x)

}

}

</script>

第一个数是:<input type="text" id="num1"/><br/>

第二个数是:<input type="text" id="num2"/><br/>

<input type="button" onclick="maxNum()" value="计算"/>

</body>

分析:

这一个程序非常简单,但是包含的信息量不少。

document.getElementById()类似于CSS中的id选择器,而document.getElementById("num1").value表示选取id为num1的元素并获取它的值。这个方法经常用到,大家要记一下。我们在后续课程会给大家详细讲解。

这里用到了函数调用的其中一个方式“在事件中调用函数”。<input type="button" onclick="maxNum()"/>表示在按钮点击的时候执行函数maxNum()。

此外,还有一点要注意的是:有些同学呀,在定义这个函数的时候定义的函数名是max,然后发现出错了!oh~,其实那是你忽略了很基础的一点,那就是自己定义的函数名是不能与JavaScript内部定义的函数名相同。

用纯js的话下面这样写:

<span id="a">10</span><span id="b">11</span>

<span id="c"></span>

<script>

 var a=document.getElementById("a").innerHTML

 var b=document.getElementById("b").innerHTML

 var c=Number(a) + Number(b)

 document.getElementById("c").innerHTML=c

</script>

parseFloat或者parseInt转换下,不然会当做字符串拼接的。我们这里用的Number来转换,此外还有parseFloat或者parseInt这两个转换函数。

另外,如果你会jQuery的话获取字符串内容那儿可以更加简单点。

<script>

 var a=$("#a").html()

 var b=$("#b").html()

 var c=Number(a) + Number(b)

 $("#c").html(c)

</script>