目录
一、数据类型介绍
1. 为什么需要有数据类型?
每一种编程语言都有自己的语法规则,在处理数据的时候,也会有自己的规则,不是任何数据都可以处理的。
2. 什么是数据类型?
js编译器在解析代码的时候,会产生各种不同的数据而不同的数据 运算 与存储 方式都不同计算机需要对这些数据进行分类,称之为数据类型。
3. 有哪些数据类型?
基本数据(boolean-布尔型、string-字符串型number-数字型、null-空型、undefined-未定义型
bigInt-大整数、symbol-符号性) 复杂数据类型(object-对象)
二、五种基本数据类型
1.String字符串类型
[string字符串类型]
所有被引号引起来的内容都是字符串类型
双引号 "123"
单引号 '123'
反引号 `123`
嵌套字符串: “我说‘123’ ”
声明字符串
let str = 'xxxxxxxx'
let str =123
2.number数字类型
一切数学中的数字
整数"123 "
负数 "-123"
小数 " 3.14 "
最值:
Number.MAX_VALUE //最大值
console.log(Number.MAX_VALUE); //1.7976931348623157e+308
Number.MIN_VALUE//最小值
console.log(Number.MIN_VALUE); //5e-324
console.log(Number.MAX_VALUE*2); //Infinity
console.log(Infinity); //特殊数值,无穷大
注意:NaN是属于number类型的
如果想要判断一个变量的值是否为数字,可以使用isNaN()进行判断
返回结果为布尔值,true表示变量的值不是数字,false表示变量的值是数字
console.log(isNaN(2));//输出结果为:False
console.Log(isNaN('aaa')); // 输出结果: true
let a = 3 - 'a'
console.log(a); //NaN,not a Number,不是一个数
3.布尔类型
true 真 条件成立
false 假 条件不成立
console.log(true);//打印出来为true
console.log( 'true' );//true
console.log(True); //错误 要严格区分大小写
4.underfined 未定义类型
underfined [未定义类型]
未定义型只有一个特殊的值undefined,表示声明的变量还未被赋值。
声明变量并赋值为未定义型的示例代码如下:
var a2;
console.log(a2); //输出结果:underfined
5.null类型
null : 空值 只有一个值 null
注意: null不等于空字符串(')或者0;
null与underfined的区别是null表示给变量赋予了空值
而underfined则表示变量没有被赋值
console.log( null ) //null
var a1 = null;
console.log(a1); //null
三、typeof检测数据类型
1.typeof 数据 2.typeof(数据)
语法结束:得到一个字符串来告诉你这个数据是一个什么类型。
123
typeof (123)
console.log(123);//123
console.log(typeof(123));//number
'123'
console.log(typeof ('123'));//String
'true'
console.log('true');//string
true
console.log(typeof(true));//boolean
false
console.log(typeof(false));//boolean
"underfined"
console.log(typeof("underfined"));//string
underfined
console.log(typeof(underfined));//underfined (未定义类型)
null
console.log(typeof(null));//object
console.log('aaa'*2);NaN
console.log(typeof (NaN));//number
console.log(typeof('aaa'*2));//number
let a ='2'+2
console.log(a);//22
console.log(typeof a);//string
console.log(typeof ('2'+2));//string
四、数据类型转换
1.隐式数据类型转换
(1) +运算符
如果两个操作数中有一个为字符串(string),那么JS就认为要进行一个字符串的拼接。
console.log(2023 + '明天会更好');//2023明天会更好
console.log(typeof(2023 + '明天会更好'));//string
console.log(1010 + '1010');//10101010
console.log(typeof(1010 + '1010'));//string
如果 + 号两边并没有字符串,那么就是进行加法运算。
console.log( 0 + true); //1
console.log(typeof (0 + true ));//number
console.log( false ); //false
console. log( typeof ( false )); //boolean
console.log( 0 + false); //0
console.log( typeof (0 + false)); //number
console.log( typeof (NaN)); //number
console.log( 0 + NaN ); //NaN
console.log( 0 + null); //0
console.log( 0 + undefined ); //NaN
console.log( typeof (0 + undefined)); //number
(2)其他运算符
直接将另外一种数据类中转化为number,然后进行运算。
console.log( 2023 +'明天会更好'); //2023明天会更好
console.log( typeof (2023 +'明天会更好' )); //string
console.log(2023 *'明天会更好' ); //NaN
[总结]
十号 前后有字符串类型 就会把前后的值转化为字符串
+号 前后是其他类型 就会进行数学运算
数学运算中 就会进行一种隐式数据类型转换 把其他类型转化为数字类型
布尔类型-数字类型: true为1,false为0
null空类型-数字类型: 把null转化为数字0
undefined未定义类型-数字类型: 把undefined类型转化为number数字类型中的NaN
2.显示数据类型转换
(1) Number(value)
Number(value)方法用于把值转换为数值
console.log(Number("1.2")); //1.2
console.Log(Number(undefined));//NaN
console.log(Number(false)); //0
console.log(Number('123abc')); //NaN
console.log(Number('true')); //NaN
console.log(Number(true)); //1
console.log(Number(null)); //0
console.log(Number(NaN))//NaN
parseInt(value)将值转换为整数
parseFloat(value)将值转换为浮点数/小数
console.log(parseInt( 123.6 )); //123
console.log(parseFloat('123.6')); //123.6
如果转换的数值包含字符串,则只转换字符串开头的部分数值。
console.log(parseInt( '123.6abc')); //123
console.log(parseFloat('123.6abc')); //123.6
(2) Boolean(value)
Boolean(value)图数用于把值转换为布尔值。
如果value为空字符串、0、undefined、null、false,那么将返回false,否则将返回true。
console.log(Boolean ("")); //false
console.log(Boolean)(' '); //true(有空格)
console.log(Boolean (undefined)); //false
console.log(Boolean (false)); //false
console.log(Boolean ('false')); //true
console.log(Boolean(0)); //false
console.log(Boolean(null)); //false
console.log(Boolean (NaN));//false
console.log(Boolean ("a")); //true
console.log(Boolean ('2')); //true
console.log(Boolean (2)); //true
(3)string(value)
string(value)可以将任意类型转换为字符串型数据。
console.log( typeof String('1.2')); //string
console.log( typeof String(2)); //string
console.log( typeof String(false)); //string
console.log( typeof String(null)); //string
console.log(123);
console.log('123' );
String(123) //通过转换 已经从number类型的123变成了string类型123
console.log( String(123));
console.log( typeof String(123)); String//String 要大写
总结
1.数据类型转换就是把一种数据类型转换成另外一种数据类型
2.隐式转换是通过运算符(+ - * /)来转换 显式转换是通过方法来转换(Boolean()Number()String())
3.隐式转换有两种情况 一种是有+号运算符 遇见字符串 做拼接 一种没有加号运算符 做运算
4.null转化为数字类型是0 转化为布尔类型是false
5. undefined转化为数字类型是NaN 转化为布尔类型是false
6. NaN转化为数字类型就是NaN 转化为布尔类型是false
7. false转化为数字类型就是0 转化为布尔类型就是false
8. true转化为数字类型是1 转化为布尔类型是true
9.‘false’转化为数字类型就是NaN 转化为布尔类型true
10. ‘1234’转化为数字类型 就是1234 转化为布尔类型就是true
五、数组
1.数组简介
数组属于复杂数据类型,数组是存储一系列值的集合,它是由一个或多个元索组成的,各元素之间使用逗号“,”分隔。
数组中的每个元素由“索引”和“值”构成。
索引: 也可称为“下标”,用于识别元索,以数字表示,默认情况下从0开始依次递增。
值:元素的内容,可以是任意类型的数据。
[1,2,3,4,5]
['1' ,'2',3 ']
[false,true,null]
[undefined]
[1,'a',2,'b' ]
2.创建数组
方法一: 通过new Array()方式创建数组
let arr1 = new Array()//创建了一个空数组
new关键字用于创建新的对象
Array () 表示的是创建的是一个数组对象
arr是这个数组对象名字,可以自己随便取名字
let关键字用于声明变量 就是说给一个数组取名为arr
console.log(arr1); //[]
let arr2 = new Array(3) //创建有3个空元索的数组
console.log(arr2); //[empty,empty,empty]
let arr3 = new Array(1,2,3) //创建包含3个元索的数组
console.log(arr3); //[123]