Javascript - 五个基本数据类型以及类型转换

数据类型.png

通过上图,我们可以知道,

number
string
boolean
null
undefined

五个属于基本数据类型

object

属于复杂数据类型。

Null类型

只有一个值的数据类型即null,null值表示一个空指针对象,因此typeof操作符检测null值时返回“object”。

Undefined类型

Undefined类型只有一个值即undefined。对未初始化的变量执行typeof操作符会返回undefined。因此显示的初始化变量依然是明智的选择,但不应该初始化为undefined。

无论在什么情况下都没有必要把一个变量的值初始化为undefined,但对于意在保存对象的变量则应明确的初始化为null值。这样做不仅体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined。

Boolean类型

Boolean类型有两个字面值:true和false。注意:true不一定等于1,false不一定等于0。

Number类型

Number类型包括整数和浮点数。

最小数值保存在Number.MIN_VALUE中,最大值保存在Number.MAX_VALUE中。如果某次计算的结果超出了javascript的数值范围则这个数值将被自动转换成特殊的Infinity值(负数则转换为-Infinity(负无穷),整数则转换为Infinity(正无穷))。

正或负的Infinity值无法参与下一次的计算。

使用isFinite()函数可以判断数值是否在最小值与最大值之间。

这里有一个特殊的标识符:NaN(Not a Number),任何涉及NaN的操作都会返回NaN,NaN与任何值都不相等。

javascript定义了isNaN(),这个函数会尝试将这个参数转换为数值然后再判断是否不是数值,注意判断结果,不是数值返回true,是数值返回false。

String类型

数值、布尔值、对象、字符串值都有toString()方法,但null和undefined值没有。

在不知道要转换的值是不是null或undefined的情况下,可以使用转型函数String(),这个函数能将任何类型的值转换为字符串。

类型转换

类型转换为String类型

转换成String类型的方式有两种:

  • 调用toString()方法
  • 调用String()函数
//boolean类型转string类型
//1.使用toString()方法
var fBool = false;
var tBool = true;

console.log(fBool.toString());  //"false"
console.log(tBool.toString());  //"true"
//2.使用String()函数
console.log(String(fBool));  //"false"
console.log(String(tBool));  //"true"

//number类型转String类型
var intNum = 123;
var floatNum = 123.45;

//1.使用toString()方法
console.log(intNum.toString());  //"123" 
console.log(floatNum.toString());  //"123.45"
//2.使用String()函数
console.log(String(intNum));  //"123"
console.log(String(floatNum));  //"123.45"

//null类型转String类型
var nullObj = null;

//1.使用toString()方法
//console.log(nullObj.toString());  //这里会报错:Uncaught TypeError: Cannot read property 'toString' of null
//2.使用String()函数
console.log(String(nullObj));  //"null"

//undefined类型转String类型
var undefinedVal = undefined;

//1.使用toString()方法
//console.log(undefinedVal.toString());  //这里会报错: Uncaught TypeError: Cannot read property 'toString' of undefined

//2.使用String()函数
console.log(String(undefinedVal));  //"undefined"

总结:
null和undefined不能使用toString()方法,但是可以使用String()函数;

类型转换为Number类型
//boolean类型转number类型
var tBool = true;
var fBool = false;

//1.通过Number()函数
console.log(Number(tBool));  //1
console.log(Number(fBool));  //0

//2.通过parseInt()函数
console.log(parseInt(tBool));  //NaN
console.log(parseInt(fBool));  //NaN

//string类型转number类型
var str1 = "123";
var str2 = "123.45";
var str3 = "10px";
//1.通过Number()函数
console.log(Number(str1));  //123
console.log(Number(str2));  //123.45
console.log(Number(str3));  //NaN

//2.通过parseInt()函数
console.log(parseInt(str1));  //123
console.log(parseInt(str2));  //123
console.log(parseInt(str3));  //10

//3.通过parseFloat()函数
console.log(parseFloat(str1));  //123
console.log(parseFloat(str2));  //123.45
console.log(parseFloat(str3));  //10

//undefined类型转number类型
var undefinedVal = undefined;

//1.通过Number()函数
console.log(Number(undefinedVal));  //NaN
//2.通过parseInt()函数
console.log(parseInt(undefinedVal));  //NaN

//null类型转number类型
var nullObj = null;

//1.通过Number()函数
console.log(Number(nullObj));  //0
//2.通过parseInt()函数
console.log(parseInt(nullObj));  //NaN

总结:

  • 可以通过三种方式转成数值类型,Number(),parseInt(),parseFloat();

  • boolean类型只能通过Number()进行转换;

  • string类型,使用Number()的时候,如果字符串中包含非数字的字符,那么就转换不成功,返回NaN;注意:空字符串返回的都是0
    使用parseInt()的时候,遇到非数字的字符之后就停止转换为数字。所以 "10px" 转成 10,另外如果第一个字符串就是非数字的字符,那么返回的是NaN,如:“abc” 返回 NaN
    使用parseFloat()的时候,当同时存在多个小数点的时候,以第一个小数点为主;

  • null类型,使用Number()的时候,返回0,使用parseInt()的时候,返回NaN;

  • undefined类型,使用Number()的时候,返回NaN,使用parseInt()的时候,返回NaN;

类型转换为Boolean类型
//number类型转boolean类型
var number1 = 123;
var number2 = -123;
var number3 = 0;

console.log(Boolean(number1));  //true
console.log(Boolean(number2));  //true
console.log(Boolean(number3));  //false

//string类型转boolean类型
var str1 = "";
var str2 = "   ";
var str3 = "name";

console.log(Boolean(str1));  //false
console.log(Boolean(str2));  //true
console.log(Boolean(str3));  //true

//null类型转boolean类型
var nullObj = null;

console.log(Boolean(nullObj));  //false

//undefined类型转boolean类型
var undefinedVal = undefined;

console.log(Boolean(undefinedVal));  //false

总结:

  • 空字符串返回false,字符串中都是空返回true

你可能感兴趣的:(Javascript - 五个基本数据类型以及类型转换)