数据类型
在JS中一共有两大数据类型
1.基本数据类型
(1)Number 数值类型
在JavaScript中无论整数还是小数都是属于数值类型的
//例:
let num = 3.14;
console.log(typeof num);//number
let num = 123;
console.log(typeof num);//number
(2)String 字符串类型
在JavaScript中无论单引号还是双引号括起来的都是属于字符串类型的
相同引号不能嵌套,不同引号可以嵌套,双引号不能放双引号,单引号不能放单引号
给变量加上引号, 那么变量将变为一个常量
//例:
let res = typeof ('abc');
let res = typeof ("abc");
console.log(res);
(3)Boolean 布尔类型
在JavaScript中比较特殊,只有两个取值true/false
//例:
let res = typeof true;
let res = typeof false;
console.log(res);//boolean
(4)Undefined 未定义类型
在JavaScript中未定义类型比较特殊,只有一个值undefined
//例:
let num;//由于没有给num这个变量初始化,所以这个变量中保存的数据默认是undefined
console.log(num);//输出num变量中保存的数据
let res = typeof num;//利用typeof检查num中保存的数据是什么类型的,也就是说检查undefined是属于什么类型
console.log(res);//undefined
(5)Null 空类型
2.引用数据类型
Object 对象类型
3.typeof操作符
在JavaScript中为了方便我们检测某一种数据类型属于哪一种数据类型,JavaScript提供了一个名称叫做typeof的操作符
格式: typeof 需要检测的数据;
typeof操作符会将检查的结果以字符串的形式返回给我们
//利用typeof检测123这个常量是属于哪一种数据类型的,并且将检测的结果保存到res这个变量中
let res = typeof 123;
let res = typeof 3.14;
console.log(res);
转为字符串类型
1.将Number类型转换为字符串类型
2.将String类型转换为字符串类型
3.将Undefined类型转换为字符串类型
4.将Null类型转换为字符串类型
在JavaScript中如果想将以上的四种基本数据类型转换为字符串类型,常用的方法有三种:
1.对于Number和Boolean类型来说,可以通过 变量名称.toString()的方式来转换
注意点:在谷歌浏览器控制台中如果是Number类型是蓝色的,String类型是灰色的
变量名称.toString是对拷贝的数据进行转换,所以不会影响原有的数据
不能使用常量直接调用toString方法,因为常量是不能改变的
//例:
let value = 123;
console.log(value);
console.log(typeof value);
//以下代码含义:将value中存储的数据拷贝一份,然后将拷贝的数据转换为字符串之后返回
let str = value.toString();
console.log(str);
console.log(typeof str);
let str = 123.toString();//错误,常量不能转换
//Boolean类型转换字符串类型
let str = true;
let str2 = true.toString();
console.log(typeof str2);//string
2.可以通过String(常量or变量);转换为字符串
//注意点:
变量名称.toString()的方式前面不能是常量,因为常量不能被改变
String(常量or变量),因为根据传入的值重新生成一个新的值并不是修改原有的值.
let str = String(123);
console.log(str);
console.log(typeof str);
//Undefined转换字符串
let value = undefined;
console.log(value);
console.log(typeof value);
//以下代码含义:根据传入的数据重新生成一个新的字符串
let str = String(value);
console.log(str);
console.log(typeof str);
//Null转换字符串
let value = null;
console.log(value);
console.log(typeof value);
let str = String(value);
console.log(str);
console.log(typeof str);
//Number转换字符串
let value = 123;
console.log(value);
console.log(typeof value);
let str = String(value);
console.log(str);
console.log(typeof str);
//Boolean转换字符串
let value = true;
console.log(value);
console.log(typeof value);
let str = String(value);
console.log(str);
console.log(typeof str);
3.通过 变量or常量 + "" /变量or常量+ ''转换为字符串
//变量例:
let value = 123;
let str = value + '';
let str = value + "";//
console.log(str);
console.log(typeof str);
//常量例:
let str = 123 + '';//+''或者+""底层的本质其实就是调用String()函数
console.log(str);
console.log(typeof str);
转为数值类型
1.将String类型转换为数值类型
- 如果字符串中都是数值,那么就正常转换
- 如果字符串是一个空串"",那么转换之后的0
-如果字符串中不仅仅是数字,那么转换之后是NaN
2.将Boolean类型转换为数值类型
- true转换之后是1
- false转换之后是0
3.将Undefined类型转换为数值类型
- 转换之后是NaN
4.将Null类型转换为数值类型
- 转换之后是0
空字符串/false/null/转换之后都是0,其他正常转换
在JavaScript中如果想将以上四种基本数据类型转换为数值型,常用的方法有三种:
1.通过Number(常量or变量);方式来转换
//将String类型转换为数值类型
变量:
let str = "123";
console.log(str);
console.log(typeof str);
let num = Number(str);
console.log(num);
console.log(typeof num);
常量:
let num = Number("123");
console.log(num);
console.log(typeof num);
//注意点:如果字符串中没有数据,那么转换的结果是0
let str = "";
let num = Number(str);
console.log(num);
console.log(typeof num);
//注意点:如果字符串中的数据不仅仅是数值,那么转换的结果是NaN
//NaN === Not a Number
let str = "12px";
let num = Number(str);
console.log(num);//NAN
console.log(typeof num);//number
//布尔类型的true,转换之后结果是1,false转换之后的结果是0
let flag = true;
let num = Number(flag);
console.log(num);//1
console.log(typeof num);
//Null类型转换结果是0
let flag = null;
let num = Number(flag);
console.log(num);//1
console.log(typeof num);
//Undefined转换结果是NaN
let flag = undefined;
let num = Number(flag);
console.log(num);//1
console.log(typeof num);
2.用数学中的加号+来转换
let str = "123";
let num = +str;
console.log(num);//123
console.log(typeof num);//number
注意点:虽然通过+/-都可以将其他类型转换为数值类型,但是会改变数值的正负性
+/-底层本质上就是调用了Number函数
let str = "123";
let num = -str;
console.log(num);
console.log(typeof num);
3.parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)
注意点:parseInt/parseFloat都会从左至右的提取数值,一旦遇到非数值就会立即停止,停止的时候如果没有提取到数值,那么就返回NaN
parseInt/parseFloat都会将传入的数据当做字符串来处理
//parseInt提取整数
let str = "12px";
let num = parseInt(str);
console.log(num);//12
console.log(typeof num);
//parseInt提取整数
let str = "3.14px";
let num = parseFloat(str);
console.log(num);//3.14
console.log(typeof num);
//非数值停止
let str = "a12px";
let num = parseInt(str);
console.log(num);//NaN
console.log(typeof num);
//
let value = true;
let num = parseInt(value);
console.log(num);//返回NaN,相当于parseInt("true"),没有数值,所以返回NaN
console.log(typeof num);
转换为布尔类型
1.将String类型转换为布尔类型
只要字符串中有内容都会转换为true,只要字符串中没有内容才会转换为false
// let str = "abc";//true
// let str = " ";//true
let str = "";//false
let flag = Boolean(str);
console.log(flag);
console.log(typeof flag);
2.将Number类型转换为布尔类型
只有数值是0才会转换为false,其他的都会转换为true
如果是NaN也会转换为false
//let num = 999;//true
//let num = -123;//true
//let num = -0;//false
let num = 0;//false
let flag = Boolean(num);
console.log(flag);
console.log(typeof flag);
//注意点:在JavaScript中NaN属于number类型
let num = NaN;
console.log(typeof num);//number
3.将Undefined类型转换为布尔类型
Undefined会转换为false
let num = undefined;
let flag = Boolean(num);
console.log(flag);
console.log(typeof flag);
4.将Null类型转换为布尔串类型
Null会转换为false
let num = null;
let flag = Boolean(num);
console.log(flag);
console.log(typeof flag);
总结:
在JavaScript中如果想将基本数据类型转换为布尔类型,那么只需要调用Boolean(常量or变量)
空字符串/0/NaN/undefined/null 会转换为false,其他都是true
网友评论