数据类型的学习(1)

来源:互联网 发布:iphone4s蜂窝数据设置 编辑:程序博客网 时间:2024/05/22 19:29

NaN,非数值
这个数值用于表示一个本来要返回的值的操作数返回数值的情况
NaN不等于本身

针对NaN的这两个特点,定义了isNaN()函数,这个函数会尝试将这个值转换为数值。
例如:
alert(isNaN(NaN)); 返回true
alert(isNaN(10); 返回false
alert(isNaN("10"); 返回false 同上都是10
alert(isNaN(blue);返回ture
alert(isNaN(true)返回false 这里转换为了数值1

isNaN()也适用于对象,但是对象调用isNaN()函数时会先掉调用valueof(),然后确定这个该方法返回的值是否可以转换为数值,如果不能,则基于这个返回值在调用toString()方法,再测试返回值。


数值转换部分

有三个函数可以把非数值转换为数值:

  1. Number();
    true和false转换为1和0
    null返回0
    undefine返回NaN
    字符串中只包含数字,”123”会变成123,”011”则会变成11省略掉前面的0;
    “1.1”则会转换为1.1,会忽略前面的0
    “0xf” 16进制则会转换为10进制
    空字符串则会变为0;
    字符串包含除上述外则转换为NaN;

  2. parseInt();
    可以有第二个参数,解析进制,
    var num1=parseInt(“10”,2) 返回2
    var num2=parseInt(“10”,8) 返回8
    var num3=parseInt(“10”,16) 返回16

  3. parseFloat();
    只解析到一个小数点,并且忽略所有的前导0,只接收十进制数,其他同上

第一个即转型函数,可以用于任何数据类型,后两个则专门用于字符串和数值的转换

String部分

字符串一旦创建值就不可改变,要改变某个变量保存的字符串值,首先要销毁原来的值,然后再用另一个包含新值的字符串填充该变量
var lang=”java”;
lang =lang+”script”;
这个操作的步骤是,先创造一个java(4)+script(6)=10个字节大小的字符串,然后填充java和script,最后销毁java和script.

接下来就是将其他类型转换为String类型的toString()方法

var age=21;var PrintAge=age.toString();console.log(PrintAge);//"21"console.log(typeof(PrintAge);//string

null就转换为”null”
undefined就转换为”undefined”