数据类型
为什么需要数据类型?
在计算机中,不同的数据所占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用储存空间,于是定义看不同 的数据类型
数据类型的分类
1.简单数据类型
2.复杂数据类型
简单数据类型
1.Number:数字型,包含整型值和浮点型值
2.Boolean:布尔值如true/false,等价于1和0
3.String:字符串类型 '张三'
4.Undefined
5.Null:空值
数字型进制
最常见的进制有二进制/八进制/十进制/十六进制
1.八进制:0~7我们程序里面数字前面加0表示八进制
var num1=010
console.log(num1)//010八进制转换为10进制就是8
2.16进制数字序列范围:0-9以及A-F
var num=0xA
在JS中八进制前面加0,十六进制前面加0x
数字型范围
最大值:Number.MAX_VALUE,这个值为1.7976931348623157e+308
最小值:Number.MAX_VALUE,这个值为5e-32
数字型三个特殊值
infinity,代表无穷大,大于任何数值
-infinity,代表无穷小,小于任何数值
NaN,Not a number,代表一个非数值
isNaN用来判断非数字并且返回一个值
如果是数字返回的是false,如果不是数字返回的是true
console.log(isNaN(12))-->结果是false
字符串类型
字符串可以是引导中的任意文本,其语法为""双引号或者''单引号
JS可以用单引号嵌套双引号,或者用双引号嵌套单引号(外双内单,外单内双)
var name='我是"高富帅"一个'
var name="我是'高富帅'一个"
字符串转义符 (都是用\开头写在引号内的)
\n--->代表换行符,n是newline的意思
\\--->代表斜杠\
\'--->代表'单引号
\"-->代表"双引号
\t-->代表tab缩进
\b-->代表空格,b是blank的意思
字符串长度
通过字符串length的属性获取字符串长度
var name='我是第一个 去干活的人'
console.log(name.length)//结果显示的是11
字符串拼接
多个字符串之间可以使用+进行拼接,其拼接方式为字符串+任何类型=拼接之后的新字符串
console.log('沙漠'+'骆驼')//'沙漠骆驼'
console.log('pink老师'+18)//'pink老师18'
console.log(12+12)//24
console.log('12'+12)//'1212'
+口诀:数值相加,字符相连 变量和字符串相连的口诀:引引加加
var age=18
console.log('pink老师'+age+'岁')
布尔类型
布尔类型有两个值:true(1)/false(0)
Undefined(未定义数据类型)和Null(空值类型)
一个声明后没有被赋值的变量会有一个默认值undefined(如果进行相连或者相加时间,注意结果)
var str;
console.log(str)//显示undefined
var de=null
console.log(de+1)//1
检测变量的数据类型
检测方式:在 typeof 后面加小括号执行,将要检测的数据放在小括号内部
var num=10
console.log(typeof(10))//number
console.log(typeof num)//number
var num1=null
console.log(typeof num1)//object
字面量
字面量是在源代码中一个固定值的表示法,通俗来说,就是字面量表示如何表达这个值\
数字字面量:8 9 10
字符串字面量:'pink老师'
布尔值字面量:true false
数据类型转换
转换为数字类型
规律
1.字符串转数字
如果转换的字符串是纯数字组成的,那么直接转换为数字
如果转换的字符串是空字符串或者空白字符串,那么直接转换为数字0
其他类型的字符串(不是空/空白/纯数字字符串)会转换为NoN:表示的是一个number的数字,但是没有办法通过常规的数字表明它,所以只能使NaN表示
2.布尔值转数字
false转换为0
true转换为1
3.undefined转数字
undefined转换为NaN(非数值)
4.Null转数字
d.null转为0
方法一: Number(数据)(可以用于任何数据类型,将其转换为数字类型)
console.log(typeof (Number('102.5')), Number(102.5))//number 102.5
方法二:parseInt数据
会将Number类型,并且值是整数(直接忽略小数点以后的值,并不会四舍五入)
在转换的时候,如果是纯数字字符串或者是数字开口的字符串,那么会转换为数字,否则就是NaN
方法三:parseFloat数据
转换结果与parseInt一样,但是在转换小鼠的时候会保留小数点后的数字
方法四:拓展知识:在实际开发中数据类型 - 0
转换为字符串类型
方法一: 变量.toString(),注意undefined和null不能用这个方法
var str1 = 100
console.log(typeof (str1.toString()), str1.toString());/* string 100 */
方法二:String(变量)
console.log(typeof (String(str1)), String(str1));/* String 100 */
方法三: 变量+''
console.log(typeof (str1 + ''), str1 + '');/* String 100 */
转换为布尔值 Boolean(变量)
1.数字转换为布尔值,只有0是转换为false,其他都为true
2.字符串转换为布尔值,只有空字符串会转换为false,其他都是true
3.NaN.undefined和null转换为布尔值就是false
/*1.数字转换为布尔值,只有0是转换为false,其他都为tru*/
var num1 = 100
var num2 = 0
var num3 = -1
console.log(num1, '-->', Boolean(num1));/100-->true */
console.log(num2, '-->', Boolean(num2));/0-->false */
console.log(num3, '-->', Boolean(num3));/*
/* 2字符串转换为布尔值,只有空字符串会转换为false,都是true */
var str1 = 'abc100'
var str2 = '100'
var str3 = '我是猪'
var str4 = '100abc'
var str5 = ''
var str6 = ' '
var str7 = '0'
console.log(str1, '-->', Boolean(str1));'abc100'-->true */
console.log(str2, '-->', Boolean(str2));'100'-->true */
console.log(str3, '-->', Boolean(str3));/* ''-->true */
console.log(str4, '-->', Boolean(str4));'100abc'-->true */
console.log(str5, '-->', Boolean(str5));''-->false */
console.log(str6, '-->', Boolean(str6));/* '-->true */
console.log(str7, '-->', Boolean(str7));'0'-->true */
/* 3.undefined和null转换为布尔值就是false */
var nul1 = null
var und1 = undefined
console.log(nul1, '-->', Boolean(nul1));/* null-->false */
console.log(und1, '-->', Boolean(und1));/* undefined-->false */