1.为什么需要数据类型
在计算机中不同数据所占用的存储空间是不同的,为了方便与把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。
1.1变量的数据类型是什么?
变量的数据类型是根据你所赋的值来确定的。
2.数据类型
在js中数据类型分为2类,简单数据类型( Number数值, string字符串, Boolean布尔, Undefined未定义, Null空)和复杂数据类型(object数组)
数据类型 | 说明 |
---|---|
Number | 数字型,包含整数值和浮点数值(小数),比如1,0.01,-2 |
String | 字符串类型,在js中字符串都是带引号的比如“abc” ,“123” |
Undefind | 未定义型,指的是在声明变量是没有给值,比如var a;此时的a = undefind |
Null | 空值 |
Boolean | 布尔类型,ture或false |
2.1 Number
number的三个特殊值
●Infinity .代表无穷大,大于任何数值
●-Infinity ,代表无穷小,小于任何数值
●NaN , Not a number ,代表-一个非数值,not a number
isNaN()
isNaN() 用来判断是否为非数字类型,是的话输出ture,不是的话输出false
console.log(isNaN('abc'));
2.2String
字符串型可以是引号中的任意文本,其语法为双引号“”和单引号‘’
字符串之间可以使用嵌套关系,单引号嵌套双引号或者双引号嵌套单引号,但是不能同类之间嵌套或者单双引号搭配
字符串转义符
类似HTML里面的特殊字符,字符串中也有特殊字符,我们称之为转义符转义符都是\开头的。
\n 换行 \斜杠\ \”双引号 \t tab缩进 \b空格
检测获取字符串长度length
var cmm = '12113213211321';
console.log(cmm.length);
字符串的拼接
●多个字符串之间可以使用+进行拼接,其拼接方式为字符串+任何类型=拼接之后的新字符串
●拼接前会把与字符串相加的任何类型转成字 符串,再拼接成一-个新的字符串
●只要有字符串和其他类型拼接,那么最终结果的数据类型还是字符串
●字变量不要直接写到字符串里面,是通过和字符串相连的方式实现的
+号口诀:数值相加,字符相连
变量和字符串相连口诀:引引加加(例:’我‘+age+’岁了’)(age赋值为20)
console.log('我要' + '回家')
console.log(12+12);
console.log('123' + 123);
console.log('嘻嘻' + 1);
Boolean布尔型
布尔型包含两个值:ture(对)和false(错),参与加法运算时ture当做1来看,false当做0来看。
Undefind未定义
如果一个变量声明,但是没有赋值,那么它就属于Undefind数据类型(未定义数据类型)
var a ; //此时a为undefind
console.log(a + 1); //结果为nan,得出undefind和数字类相加都算作是nan
console.log(a + 'cai') //结果为'undefindcai',得出的结果为字符串
Null空值
var b = null; //定义一个空值
console.log(b + 1); //得出结果为1
console.log(b + 'cai'); //得出结果为'nullcai'
typeod 检测数据类型
var num = 10; //定义num变量为10
console.log(typeof num); //使用tupeod检测变量num,得出结果为number
console.log(typeof 'xixi'); //使用typeof检测‘xixi’,得出结果为string字符串
var a; //定义一个变量但是不赋值
console.log(typeof a); //typeof检测变量a为undefind
var age = prompt('请输入你的年龄') //用prompt创建一个用户输入框,用户输入数字后检测
consol.log(typeof age) //虽然说输入的是数字,但是检测结果却是string,所以得出由prompt输入的值都是字符型的
数据类型的转换
- 转换为字符串类型
- toString() (只需要了解的方法)
var num = 10;
var str = num.toString()
console.log(typeof str) //检测结果是string
- String () (仅需要了解)
var num = 10;
console.log(String(num))
console.log(typeof num) //检测结果是string
- 拼接法 (重要) 从上面的案例中得出了任何数据类型只要和字符串类型相连接,那么连接后的值都是字符串类型的,也称之为隐式转换
console.log(10 + 'ccc') //得出结果为10ccc,属于字符串类型
- 转换为数字型
- parseInt(变量) 注意:parseInt转换后的数值是取整的--注意大小写--
var age = prompt('输入你的年龄') //prompt中输入的数值类型都是string
console.log(parseInt(age)); //利用parseInt(变量)的方法将之转换为数字型
console.log(parseInt('120px')); //结果为120
console.log(parseInt('csacasca')) //结果为NaN
2.paseFloat(变量) 注意:paseFloat的效果和ParseInt效果基本一致,但是它可以取浮点数--注意大小写--
console.log(parseFloat('3.1415')) //输出结果为3.1415
console.log(parseFloat('120px')); //结果为120
console.log(parseFloat('csacasca')) //结果为NaN
3.利用Number(变量)
console.log(Number('122')); //输出结果为122
console.log(Number('1.22')); //输出结果为1.22
4.利用- * / 进行隐形转换
console.log('12' - 12); //结果为0,且0成为了number数据类型
5.转换为Boolean型
●代表空、否定的值会被转换为false ,如"、0、NaN、 null、 undefined
●其余值都会被转换为true
console. log (Boolean('')); // false
console.1og (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