数据的分类
静态数据
静态数据是指一些永久性的数据,一般以文件的形式存储在硬盘上,比如文档、图片、视频等。
动态数据
- 动态数据是在程序运行过程中,动态产生的临时数据,一般存储在内存中,内存的存储空间一般都比较小。
- 计算机关闭之后,动态产生的临时数据就会被清除。
- 当运行某个程序时,整个程序就会被加载到内存中,在程序运行过程中,会产生各种各样的临时数据,这些临时数据都是存储在内存中的。当程序停止运行或者计算机强制关闭时,这个程序产生的所有临时数据都会被清除。
数据类型
-
Number 数值(基本数据类型)
在JavaScript中无论是整数还是小数都是属于数值类型的。
在谷歌浏览器的控制台中,如果是number类型是蓝色的 -
String 字符串(基本数据类型)
在JavaScript中无论是通过单引号还是双引号括起来的内容都是属于字符串类型的。
在谷歌浏览器的控制台中,如果是string类型是灰色的 -
Boolean 布尔值(基本数据类型)
在JavaScript中布尔类型只有两个取值true/false -
Undefined 未定义(基本数据类型)
在JavaScript中未定义类型比较特殊,只有一个取值undefine -
Null 空值(基本数据类型)
-
Object 对象(引用数据类型)
如何检测数据类型?
在JavaScript中为了方便我们检测某一种数据是属于什么数据类型的,提供了一个操作符typeof
格式:typeof 需要检测的数据;
//利用typeof检测123这个常量是属于什么数据类型的,并且把检测的结果保存到res这个变量中.
//let res = typeof 3.14;
//console.log(res);
let num;
//以下代码的含义是输出num变量中保存的数据
//由于没有给num这个变量进行初始化,所以这个变量中保存的数据默认是undefined
console.log(num);
//利用typeof检查num中保存的数据是什么类型的
//也就是说利用typeof检查undefined是属于什么类型的
let res = typeof num;
console.log(res);
数据类型转换
转换为字符串类型
1.将Number类型转换为字符串类型
2.将Boolean类型转换为字符串类型
3.将undefined类型转换为字符串类型
4.将null类型转换为字符串类型
在JavaScript中如果想将以上的四种基本数据类型转换为字符串类型,常用的方法有三种:
1.对于Number类型和Boolean类型
来说,可以通过变量名称.toString()
的方式来转换;
注意点:变量名称.toString()
是对拷贝的数据进行转换,所以不会影响到原有的数据。
let value = 123;
console.log(value);
console.log(typeof value);
let str = value.toString();
console.log(str);
console.log(typeof str);
2.可以通过String(常量or变量);
转换为字符串类型;
注意点:String(常量or变量);
可以是常量也可以是变量,因为是根据传入的值重新生成一个新的值,并不是修改原有的值;
let value = undefined;
console.log(value);
console.log(typeof value);
//以下代码的含义:根据传入的数据重新生成一个新的字符串
let str = String(value);
console.log(str);
console.log(typeof str);
3.通过变量or常量 + " " / 变量or常量 + ' '
转换为字符串.
注意点:变量or常量 + " " / 变量or常量 + ' '
可以是常量也可以是变量,因为是根据传入的值重新生成一个新的值,并不是修改原有的值;
let value = 123;
let str = value + '';//+" "或者+''底层的本质就是调用String()函数
console.log(str);
console.log(typeof str);
转换为Number类型
1.将String类型转换为数值类型
如果是纯数字的字符串,则直接将其转换为数字;
如果字符串中有非数字的内容,则转换为NaN;
如果字符串是一个空串或者是一个全是空格的字符串,则转换为0.
2.将Boolean类型转换为数值类型
true 转成 1
false 转成 0
3.将undefined类型转换为数值类型
转换为NaN
4.将null类型转换为数值类型
转换之后是0
在JavaScript中如果想将以上的四种基本数据类型转换为数值类型,常用的方法有三种:
1.通过Number(常量or变量);
方式来转换;
let str = '123';
console.log(str);
console.log(typeof str);
let num = Number(str);
console.log(num);
console.log(typeof num);
let num = Number("456");
console.log(num);
console.log(typeof num);
注意点:
- 如果字符串中没有数据或者只有空格,那么转换的结果为0;
- 如果字符串中不仅仅是数值,那么转换的结果也为NaN;(NaN == not a number);
- 如果是空类型,那么转换之后的结果是0;
- 如果是未定义类型,那么转换之后的结果是NaN.
2.通过数学运算中的+或者-
来转换;
注意点:
虽然通过 +/-
都可以将其它类型转换为数值类型,但是 - 会改变数值的正负性
;
+/-
本质上就是调用了Number函数;
3.通过parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)
let str = '12px';
let num = parseInt(str);
console.log(num);
console.log(typeof num);
注意点:
parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)
都会从左至右地提取数值,一旦遇到非数值,就会立即停止,如果停止的时候还没有提取到数值,那么就返回NaN.
转换为布尔类型
1.将Number类型转换为布尔类型
只有数值是0时才会转换为false;其他的都会转换为true.
2.将String类型转换为布尔类型
只要字符串中有内容,都会转换为true,只有字符串中没有内容,才会转换为false.
如果是NaN也会转换为false
3.将undefined类型转换为布尔类型
undefined会转换为false.
4.将null类型转换为布尔类型
null会转换为false.
在JavaScript中如果想将以上的四种基本数据类型转换为布尔类型,那么只需要调用Boolean(常量or变量)
let str = 'abc';//true
let str = ' ';//true
let str = '';//false
let flag = Boolean(str);
console.log(flag);
console.log(typeof flag);
注意点:
在JavaScript中NaN属于Number类型.