基本数据类型「In JavaScript」

基本数据类型

JavaScript 在声明变量时不需要声明其类型,赋什么值就是什么类型。

JavaScript 的基本数据类型有五种。

分别是:

Number类型,默认值为 0。

var a = 1;
var b = Number.MAX_Value;//最大值
var c = Number.MIN_Value;//最小值

Boolean类型,默认值为 false。

String类型,默认值为 "" ,双引号还是单引号没有区别。

Undefined类型,只声明不赋值即为 Undefined。

var a;
console.log(a); //undefined

Null类型,声明变量并赋值 null 即得到 Null 类型。

var a = null;

Number类型与NaN

我们经常会看见 NaN 这个单词,刚开始我以为它也是一种数据类型。其实并不是,其全写是 Not a Number,表示不是数字。

现在我理解为 NaN 为 Number 的一种衍生品,只有与进行 Number 类型数据有关的操作并且发生错误时才会出现 NaN 。

比如说:

//有减号运算,本来应该隐式转换成Number类型的,但是由于字符串是hello,就会报错NaN
console.log("hello" - 100);

为了避免出现 NaN ,我们应该了解其他基本类型与 Number 进行运算后会有什么结果。

String 类型

Number 类型与 String 类型进行加法,得到的结果是 String 类型的(字符串拼接,String类型的隐式类型转换,很抱歉这里先讲了,下面马上你也将看到这部分的知识)。所以也就无所谓 NaN 的问题了。

而如果是其他运算,比如减乘除,如果 String 类型里的值是数字,那么就可以成功运算,结果隐式类型转换成 Number,不会出现NaN,否则 NaN。

console.log("hello" - 100);//NaN
console.log("100" - 99);//1

Boolean 类型

Boolean 如果参与计算,true 是当做 1 来看的,false 是当 0 来看的。不会出现 NaN 的情况。

console.log(true + 1);//2
console.log(false + 1);//1

Undefined 类型

Undefined 类型不能转换成数字,因此参与加减乘除的话,必定是 NaN。

var a;
console.log(a + 1);//NaN 

Null 类型

Null 代表空,如果与数字进行加减乘除,那么得到的还是数字。

思考 Null 与 Undefined :

Null代表空,相当于什么也没有因此对于其与数字相加来说等于数字本身。

Undefined代表未定义的,相当于是有东西的,但是没说具体是什么东西,所以其与数字相加之后就是一坨东西与数字相加,结果肯定是NaN。

如何判断其他类型是否为数字?即是否能与数字正常相加减。

isNaN() 用来判断非数字,并返回 true 或者 false 。

如果返回 true,代表是 NaN 即不能转换成数字。

如果返回 false,代表不是 NaN 即能转换成数字。

注意,这里是 false 才代表能转换成数字!!

数据类型转换

五大基本数据类型是可以互相转换的。 

转换成 String 型

转换成字符型有种方法。

1. toString() 方法

通过使用 变量.toString() 方法将变量转换成字符型。

值得一提的是,并不是其他所有数据类型都可以使用这个方法。 

只有 Number 和 Boolean 这两种数据类型才可以使用,Undefined 和 Null 是不可以使用的。

var num = 1;
var String1 = num.toString();//"1"
var bol = true;
var string2 = bol.toString();"true"
var und = undefined;
var string3 = und.toString();//报错
var nul = null;
var string4 = nul.toString();//报错

2. 使用 String() 方法

对于其他四种类型,String() 方法都是适用的。

var und = undefined;
var string1 = String(und);//"undefined"
var nul = null;
var string2 = String(nul);//"null"

3. 使用隐式类型转换

任何类型的数据与 String 类型的数据相加之后得到的结果都是 String 类型的,这称为隐式类型转换。

var num = 1;
var result = "2" + num;//"21"

转换成 Number 型

转换成 Number 类型有种方法。

1. 使用 parseInt 方法

此方法的结果是输入参数的整数,直接截取出整数,后面的小数不要。

var num1 = "666.666";
var string1 = parseInt(num1);//666
//带有单位的数据也能直接获取
var num2 = "666.666px";
var string2 = parseInt(num2);//666

2. 使用 parseFloat 方法

此方法相对于上一个方法来说完全一样,但是可以获取小数。

3. 使用 Number() 方法

Number() 对数据进行强制类型转换,注意,带单位的数据并不能使用这个方法。

var num1 = "666.666";
var num2 = "666.666px";
var str1 = Number(num1);//666.666
var str2 = Number(num2);//NaN

4. 隐式类型转换

 除了加法之外,其他数据类型进行减、乘、除、取余运算,结果都会自动转换成 Number 类型。

console.log("123" - "12");//Number类型111
console.log(123 - "12");//Number类型111

转换成 Boolean 型

转换成布尔型只有个方法,Boolean()。 

0、NaN、""、null,undefined 转换之后是 false。否则都是 true。

即只有代表空、或者否定的才会被转换成 false。

typeof 获取数据类型

typeof 关键字可以获得变量的数据类型。

使用方法:

var age = 18;
console.log(typeof age);

posted @ 2022-06-17 22:47  东东咚咚东  阅读(50)  评论(0编辑  收藏  举报