一.为什么需要数据类型
1.在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间于是定义了不同的数据类型
2.var num;//这里num 不确定属于哪种数据类型
var num=10 //num属于数字型
!js的变量数据类型是只有程序在运行过程,根据等号右边的值来确定的
二.数据类型的分类
1.简单数据类型:
Number String Boolean Undefined Null
1.)数字型Number
console.log(Number.MAX_VALUE); //最大值
console.log(Number.MIN_VALUE); //最小值
console.log(Number.MAX_VALUE*2);//无穷大 Infinity
console.log(-Number.MAX_VALUE*2);//无穷小 -Infinity
console.log(100-"数字"); //NaN 非数字
isNaN() 用来判断非数字 返回一个值 如果是数字返回false 若果不是数字返回true
console.log(isNaN(12));//false 12是一个数字所以返回false
console.log(isNaN("数字"));//true
2.)字符串型String
"字符串" 'string' '12' 带单引号或者双引号的是字符串
var str="我是一个'白富美'的程序员"//字符串有嵌套关系 外双内单或外双内单
console.log(str);
\n 换行符 n是newline的意思 \b 空格
var str1="我是一个'白富美'的程序员"
console.log(str1);
3.)布尔型Boolean
var flag=true//flag布尔型
var flag1=false//flag1布尔型
console.log(flag+1);//true参与加法运算当1来看
console.log(flag1+1);//flase参与加法运算当0来看
4.)undefined
如果一个变量声明未赋值 就是undefined 未定义数据类型
var str
console.log(str);
var variable=undefined
console.log(variable+'genius');//undefinedgenius
console.log(variable+1);//NaN undefined和数字相加最后结果是NaN
5.)NULL 空值
var space=null
console.log(space+"genius");//nullgenius
console.log(space+1);//1
2.复杂数据类型:
object 对象 ,function方法 函数 ,Arr 数组
三.获取字符串长度
var str ='my name is genius'
console.log(str.length);//17
1.字符串拼接 +
字符串拼接 +(字符串可以和任何类型拼接)
console.log('沙漠'+'骆驼');//字符串的沙漠骆驼
console.log("genius"+18);//genius18
console.log("genius"+true);//geniustrue
console.log(12+12);//24 两个数字型的相加
console.log("12"+12);//1212
变量不要写到字符串里面,是通过和字符串相连的方式实现
console.log("genius"+18);//genius18
console.log("genius"+18+"岁")//genius18岁
var age=18
console.log("genius"+age+"岁")//genius18岁
2. 练习:显示年龄
弹出一个输入框 让用户输入年龄(用户输入)
把用户输入的值用变量保存起来 把刚才输入的年龄与所要输出的字符串拼接(程序内部处理)
弹出警示框(输出结果)
var age=prompt("请输入你的年龄")
var str='您今年已经'+age+"岁了"
alert(str)
四.获取数据类型typeof
var num=10
console.log(typeof num);//number
var str="genius"
console.log(typeof str);//string
var flag=true
console.log(typeof flag);//Boolean
var var1=undefined
console.log(typeof var1);//undefined
var var2=null
console.log(typeof var2);//object
注:prompt 取过来的值是字符型的