什么是数据
- 生活中无时无刻都在跟数据打交道
- 例如:人的体重、身高、收入、性别等数据等
- 在我们使用计算机的过程中,也会接触到各种各样的数据
- 例如: 文档数据、图片数据、视频数据等
数据分类
静态数据
- 静态数据是指一些永久性的数据,一般存储在硬盘中。硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件
- 存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没坏,这些数据永远都在
- 哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。
动态数据
- 动态数据指在程序运行过程中,动态产生的临时数据,一般存储在内存中。内存的存储空间一般都比较小,现在普通计算机的内存只有8G左右,因此要谨慎使用内存,不要占用太多的内存空间
- 存储的时长:计算机关闭之后,这些临时数据就会被清除
- 哪些是动态数据:当运行某个程序(软件)时,整个程序就会被加载到内存中,在程序运行过程中,会产生各种各样的临时数据,这些临时数据都是存储在内存中的。当程序停止运行或者计算机被强制关闭时,这个程序产生的所有临时数据都会被清除。
- 既然硬盘的存储空间这么大,为何不把所有的应用程序加载到硬盘中去执行呢?主要原因就是内存的访问速度比硬盘快N倍
静态数据和动态数据的相互转换
- 从磁盘加载到内存(静到动)
- 从内存保存到磁盘(动到静)
数据的计量单位
- 不管是静态还是动态数据,都是0和1组成的
- 数据越大,包含的0和1就越多
1 B(Byte字节) = 8 bit(位)
// 00000000 就是一个字节
// 111111111 也是一个字节
// 10101010 也是一个字节
// 任意8个0和1的组合都是一个字节
1 KB(KByte) = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
JavaScript数据类型
- 为程序员我们最关心的是内存中的动态数据, 因为我们写的程序就是在内存中的
- 程序在运行过程中会产生各种各样的临时数据, 为了方便数据的运算和操作, JavaScript也对这些数据进行了分类, 提供了丰富的数据类型
- 在JavaScript中一共有六种数据类型
JavaScript基本数据类型
-
String
字符串类型
在JavaScript中无论是整数还是小数都属于数值类型 -
Number
数值类型
在JavaScript中无论是通过单引号还是双引号括起来的内容都属于字符串类型 -
Boolean
布尔值类型
在JavaScript中布尔类型比较特殊,只有两个取值true
和false
-
Null
空值类型 -
Undefined
未定义类型
在JavaScrip中也比较特殊,只有一个取值undefined
JavaScript引用类型
-
Object
对象类型
数据类型检测
在JavaScript中可以用 typeof
操作符来检测数据类型, typeof
操作符会将检查的结果以字符串的形式返回给我们
let a = 666;
console.log(typeof a); // number
console.log(typeof 123); // number
console.log(typeof 3.14); // number
let b = 'abcd';
console.log(typeof b); // string
console.log(typeof 'abc'); // string
console.log(typeof "abc"); // string
let c = true;
console.log(typeof c); // boolean
console.log(typeof true); // boolean
console.log(typeof false); // boolean
let d;
console.log(typeof d); // undefined
JavaScript数据类型转换
转换为字符串类型
将数值类型Number
转换为字符串类型
- 通过
toString()
可以将数值类型转换为字符串类型
let value = 123;
console.log(value); // 123
console.log(typeof value); // number
// 将 value 中的内容拷贝一份,然后将拷贝的数据转化为字符串返回
// toString() 方法是对拷贝的数据进行转换,不会影响到原数据
let str = value.toString();
console.log(str); // 123
console.log(typeof str); // string
- 可以通过
String()
将数值类型转换为字符串类型
let value = 123;
console.log(value); // 123
console.log(typeof value); // number
let str = String(value);
console.log(str); // 123
console.log(typeof str); // string
- 可以通过
变量 + ""
或变量 + ''
将数值类型转换为字符串类型
let value = 123;
let str1 = value + ''; // 123
let str2 = value + ""; // 123
console.log(typeof str1); // string
console.log(typeof str2); // string
将布尔类型Boolean
转换为字符串类型
- 通过
toString()
可以将布尔类型转换为字符串类型
let value = true;
console.log(value); // true
console.log(typeof value); // boolean
// 将 value 中的内容拷贝一份,然后将拷贝的数据转化为字符串返回
// toString() 方法是对拷贝的数据进行转换,不会影响到原数据
let str = value.toString();
console.log(str); // true
console.log(typeof str); // string
- 可以通过
String()
将布尔类型转换为字符串类型
let value = true;
console.log(value); // true
console.log(typeof value); // boolean
let str = String(value);
console.log(str); // true
console.log(typeof str); // string
- 可以通过
变量 + ""
或变量 + ''
将布尔类型转换为字符串类型
let value = true;
let str1 = value + ''; // true
let str2 = value + ""; // true
console.log(typeof str1); // string
console.log(typeof str2); // string
将未定义undefined
类型转换为字符串类型
- 可以通过
String()
将未定义类型转换为字符串类型
let value = undefined;
console.log(value); // undefined
console.log(typeof value); // undefined
// 根据传入的参数重新生成一个字符串
let str = String(value);
console.log(str); // undefined
console.log(typeof str); // string
- 可以通过
变量 + ""
或变量 + ''
将布尔类型转换为字符串类型
let value = undefined;
let str1 = value + ''; // undefined
let str2 = value + ""; // undefined
console.log(typeof str1); // string
console.log(typeof str2); // string
将空类型null
转换为字符串类型
- 可以通过
String()
将空类型转换为字符串类型
let value = null;
console.log(value); // null
console.log(typeof value); // object
let str = String(value);
console.log(str); // null
console.log(typeof str); // string
- 可以通过
变量 + ""
或变量 + ''
将布尔类型转换为字符串类型
let value = null;
let str1 = value + ''; // null
let str2 = value + ""; // null
console.log(typeof str1); // string
console.log(typeof str2); // string
将常量转换为字符串类型
- 可以通过
String()
将常量换为字符串类型
let value = String(123);
console.log(typeof value); // string
- 可以通过
变量 + ""
或变量 + ''
将数值类型转换为字符串类型
let value1 = 123 + '';
let value2 = 123 + "";
console.log(value1); // 123
console.log(typeof value1); // string
console.log(value2); // 123
console.log(typeof value2); // string
转换为数值类型
字符串转换为数值类型
- 通过
Number()
方式来转换
let str = '123';
console.log(str); // 12
console.log(typeof str); // string
let value = Number(str);
console.log(value); // 123
console.log(typeof value); // number
let res = Number('456');
console.log(res); // 456
console.log(typeof res); // number
// 如果字符串中没有数据,那么转换的几个为 0
// 如果字符串中的数据不仅仅是数值,那么转换结果是 NaN
let str1 = ' ';
let value1 = Number(str1); // 0
console.log(typeof value1); // number
let str2 = '12px';
let value2 = Number(str2); // NaN
console.log(typeof value2); // number
- 通过数学运算中的加号和减号来转换
// 通过加号和减号可以将其他类型转化为数值类型,但会改变其正负性
// 加号和减号本质是调用了Number函数
let str = '123';
let value = +str;
// let value = -str; // -123
console.log(value); // 123
console.log(typeof value); // number
- 通过
parseInt()
或parseFloat()
来转换
// parseInt()和 parseFloat()都会从左至右提取数值,一旦遇到非数值就会立即停止
// 停止的时候还有没提取到数值,则返回NaN
// parseInt()和 parseFloat()都将传入的数据当做字符串处理
let str1 = '12px';
let str2 = '3.14px';
let res1 = parseInt(str1); // 12
let res2 = parseInt(str2) // 3
let res3 = parseFloat(str2) // 3.14
布尔类型转换为数值类型
- 通过
Number()
方式来转换
// 如果布尔类型 true,那么转换之后的结果是 1
// 如果布尔类型 false,那么转换之后的结果是 0
let flag = true;
let value = Number(flag);
console.log(value); // 1
console.log(typeof value); // number
- 通过数学运算中的加号和减号来转换
未定义转换为数值类型
- 通过
Number()
方式来转换
// 如果是未定义类型,那么转换之后的结果是`NaN`
let flag = unddefined;
let value = Number(flag);
console.log(value); // NaN
console.log(typeof value); // number
- 通过数学运算中的加号和减号来转换
空类型转换为数值类型
- 通过
Number()
方式来转换
// 如果是空类型,那么转换之后的结果是0
let flag = null;
let value = Number(flag);
console.log(value); // 0
console.log(typeof value); // number
- 通过数学运算中的加号和减号来转换
转换为布尔类型
在JavaScript中想要将基本类型转换为布尔类型,只需调用 boolean()
- 将字符串类型转换为布尔类型
只要字符串中有内容都会转换为true
,只有字符串中没有内容才会转换为false
let str = 'abc';
let flag = Boolean(str);
console.log(flag); // true
console.log(typeof flag); // boolean
- 将数值类型转换为布尔类型
只有数值是0时才会转换为false
,其他都会转换为true
NaN
也会转换成false
let num = 888;
let flag = Boolean(num);
console.log(flag); // true
console.log(typeof flag); // boolean
- 将未定义类型转换为布尔类型
let num = undefined;
let flag = Boolean(num);
console.log(flag); // false
console.log(typeof flag); // boolean
- 将空类型转换为布尔类型
let num = null;
let flag = Boolean(num);
console.log(flag); // false
console.log(typeof flag); // boolean
基本包装类型
之所以能够访问基本数据类型的属性和方法,是因为在运行的时候系统自动将基本数据类型包装成了对象类型
let str = "www.jianshu.com";
// let str = new String(str);
console.log(str.length);
str.split(".");