四、数据类型
(一)知识导读
(二)数据类型简介
在计算机中,不同数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型.
变量是用来存储值的所在处,它们有名字和数据类型.变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中.
JavaScript是一种弱类型的或者说动态的语言,这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定.
var num;//这里的num我们是不确定属于哪种数据类型的 var num=10;//这里的num是数字型
js的变量数据类型,是在程序运行的过程中,根据等号右边的值来确定的
js具有动态数据类型,这就意味着相同的变量可用作不同的类型
var x=6//数字类型 var x='bill';//字符串类型
(三)数字型Number
1.数据类型的分类:
-
简单数据类型:Number,String,Boolean,Undefined,Null
Number:数字型,包含整数和浮点数,21,0.32等. 默认值:0
Boolean:布尔值,true,false. 默认值:false
String:字符串类型,'张三' 默认值:''
Undefined: var a.声明了变量却没有赋值,此时a=undefined. 默认值:undefined
Null: var a=null;声明了变量a为空值. 默认值:null
-
复杂数据类型:object
2.数字型:
二进制,八进制,十进制,十六进制.
//十进制数字: var num=10; var PI=3.14; //八进制:程序中,数字前加0表示八进制 var num1=0o10; console.log(num1); //010=8 //十六进制:数字的前面加0x var=0x15;
不需要关心数字如何进制变换,只需要知道,八进制前面加0o,十六进制前面加0x
3.数字型范围:
alert(Number.MAX_VALUE); //1.79769e+308 alert(Number.MIN_VALUE); //5e-324
4.三个特殊值:
Infinity:无穷大,大于任何数值
-Infinity:无穷小(负的无穷大),小于任何数值
NaN: Not a number,代表一个非数值
alert(Infinity); alert(-Infinity); alert(NaN);
(四)isNaN
isNaN()方法用来验证一个值是不是数字,并返回一个值。
如果返回的是true,则不是数字,如果返回的是false,则是数字.
console.log(isNaN(12));//返回值为false console.log(isNaN('刘'));//返回值为true
(五)字符串型String
加了引号的任意文本,可以是单引号也可以是双引号.
但由于HTML中使用的是双引号,所以JS中推荐使用单引号
如果不加引号会报错,如:
var str=我爱大肘子;
如果要引号中还加引号,要外单内双:
var str='我是一个"高富帅"的程序员';
字符串有转义符,用来表达特殊含义:
\n:换行
\\:反斜杠
\':单引号
\":双引号
\t:tab,缩进
\b:空格
注意:所有转义符都要写到引号里面
(六)弹出网页警示框
弹出以下文字:
很简单,一个String:
str=('酷热难耐,火辣的太阳底下,我挺拔的的身姿,成为了最为独特的风景.\n我审视四周,这里是我的舞台,我就是天地间的王者.\n这一刻,我豪气冲天,终于大喊一声:"收破烂啦~"'); alert(str);
(七)字符串长度及拼接
字符串的长度:
字符串是由若干个字符组成的,这些字符数量就是字符串的长度.通过字符串的length属性可以获取整个字符串的长度.
var str='my name is Andy'; console.log(str.length);
字符串的拼接:
多个字符串之间可以用+进行拼接,其拼接方式为:
字符串+任何类型=拼接后的新字符串
拼接前会将字符串相加的任何类型转成字符串,在拼接成一个新的字符串
console.log('沙漠'+'骆驼'); console.log('刘'+18);//也是字符串
数值相加,字符相连
变量也可以和字符串相连:
var age=18; console.log('刘今年'+age+'岁');
(八)显示年龄案例
弹出一个输入框,让用户输入年龄,然后弹出一个警示框,显示"您今年xx岁啦".
var age=prompt('请输入您的年龄'); alert('您的年龄是'+age);
(九)Boolean,Undefined和Null
布尔型:Boolean
true false
true是1,false是0.
也就是说,如果参与加法运算,true当1来看,false当0来看
Undefined:
一个声明后没有被赋值的变量会有一个默认值undefined(如果进行相连或相加时,注意结果).
undefined和数字相加,最后的结果为NaN
var str=undefined; console.log(str);//输出结果为:undefined console.log(str+'liu');//输出结果为:undefinedliu console.log(str+18);//输出结果为:NaN,非数字
Null:
空值.什么都没有
与字符串相加时直接相连,与数字相加是数字本身
var str=null; console.log(str+'liu');//输出结果为nullliu console.log(str+18);//输出结果为:18
(十)typeof检测变量数据类型
typeof 是关键字,后面跟要检测的变量名,返回值为string
var num=10; console.log(typeof num); var str='liu'; console.log(typeof str); var flag=true; console.log(typeof flag); var a=undefined; console.log(typeof a); var b=null; console.log(typeof b);
当你在输入框中输入遗传字符时,不管是输入的是'liu'还是18,都会被以字符串类型返回
var age; age=prompt('请输入您的年龄');//输入18 //age是字符串型,内容为18 console.log(typeof age);