数据类型
为什么需要数据类型?
在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。
数据类型分类
JS 把数据类型分为两类,简单数据类型,复杂数据类型 (complex)
①简单数据类型 (基本数据类型/原始类型 (primitive)) ====>7 种
1.Number====>数字类型,包含 整数型(如21 )和浮点型(如0.21)
JavaScript中数值的最大和最小值
alert(Number.MAX_VALUE); // 1.7976931348623157e+308(最大值)
alert(Number.MIN_VALUE); // 5e-324(最小值)
alert(Infinity); // Infinity Infinity ,代表无穷大,大于任何数值
alert(-Infinity); // -Infinity -Infinity ,代表无穷小,小于任何数值
alert(NaN); // NaN NaN ,Not a number,代表一个非数值
isNaN() 用来判断一个变量是否为非数字的类型,返回 true (不是数字)或者 false(是数字)
2.Boolean====>布尔类型,如 true, false, 等价于 1 和 0;
布尔类型有两个值:true 和 false ,其中 true 表示真(对),而 false 表示假(错)。
布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0。
3.String ====>字符串类型, 如”张三“, 注意咱们JS里面,字符串都带引号 ' ' , " " ,单引号双引号都可,成对(外单内双/外双内单)
==>字符串转义符==>转义符都是 \ 开头的
\n换行符,n 是 newline 的意思
\ \斜杠 \
\'' 单引号
\"”双引号
\ttab 缩进
\b空白 退格
==>字符串长度....字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的 length 属性可以获取整个字符串的长度。
var strMsg = "我是帅气多金的程序猿!";
alert(strMsg.length); // 显示 11
==>字符串拼接,多个字符串之间可以使用 + 进行拼接,其拼接方式为 字符串 + 任何类型 = 拼接之后的新字符串
经常会将字符串和变量来拼接,变量可以很方便地修改里面的值
拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串
//1.1 字符串 "相加"alert('hello'+' '+'world');// hello world
//1.2 数值字符串 "相加"alert('100'+'100');// 100100
//1.3 数值字符串 + 数值alert('11'+12);// 1112
变量是不能添加引号的,因为加引号的变量会变成字符串
如果变量两侧都有字符串拼接,口诀“引引加加 ”,删掉数字,变量写加中间
4.undefined ===>var a; 声明了变量a ,但是没有给值, 此时 a 默认值为 undefined(undefined 表示一个变量自然的、最原始的状态值)
5.null=====>var a = null ; 声明了变量 a 为空值( null 则表示一个变量被人为的设置为空对象,而不是原始状态。)
6. BigInt====>BigInt 类型是JS中一个基础的数值类型,可表示任意精度的整数。
7. Symbol===>符号(Symbols)类型是唯一且不可修改的原始值,并且可以用来作为对象的键(key)
②复杂数据类型 (complex)
object
Array
RegExp
Date
Math
Function
获取变量数据类型
type of 可用来获取检测变量的数据类型
var num = 18;
console.log(typeof num) // 结果 number
字符串类型的转换
通常会实现3种方式的转换:
1.转换为字符串类型 2.转换为数字型 3.转换为布尔型
1.转换为字符串类型
toString() 和 String() 使用方式不一样。
三种转换方式,更多第三种加号拼接字符串转换方式, 这一种方式也称之为隐式转换。
2.转换为数字型
注意 parseInt 和 parseFloat 单词的大小写,这2个是重点
隐式转换是我们在进行算数运算的时候,JS 自动转换了数据类型
案例:
var year = prompt('请您输入您的出生年份');
var age = 2018 - year; // year 取过来的是字符串型 但是这里用的减法 有隐式转换
alert('您今年已经' + age + '岁了');
3.转换为布尔型
代表空、否定的值会被转换为false ,如 ''、0、NaN、null、undefined
其余值都会被转换为 true
console.log(Boolean('')); // false
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean('小白')); // true
console.log(Boolean(12)); // true