你所不知道的JS数据类型
2017-03-08 本文已影响85人
元气满满321
今天介绍的是JS的数据类型,希望下次突然有人问说说JS的数据类型时,可以给他一个肯定的回答。
五种基本类型:
Undefined
Null
Boolean
Number
String
一种引用类型:
Object
五种基本类型###
1.Undefined
- 使用var声明的变量但没有对其初始化,则该变量的值就是
undefined
- 根本没有声明变量也没有初始化变量, 则该变量的值就是
undefined
例如:
var message;
console.log("已声明但没有初始化变量message的类型:" + message);
console.log("根本没有声明变量也没有初始化变量age的类型:" + age);
控制台结果
2.Null
- null 值表示一个空指针对象,也就是当用typeof 操作符检测 null 时会返回
object
var student = null;
alert(typeof student); //object
- 如果定义的变量准备存对象,那么最好初始化为null,这样我们可以判断变量是不是为null,来知道变量是否保存了一个对象的引用:
if(student != null){
//对 student 做某些操作
}
3.Boolean####
- 该类型有两个值,分别是:true 和 false
- 虽然Boolean类型只有两个值,但ECMASript中所有类型的值都可以通过转型函数 Boolean() 将原来的值转换成与其对应的Boolean值。
var message = "Hello";
var messageAsBoolean = Boolean(message);
alert(messageAsBoolean); //true
转换规则:
转换规则4.Number####
- 该类型的表示方法有两种形式,第一种是整数,第二种为浮点数。
- 整数 可以通过十进制,八进制,十六进制的字面值来表示。
var intNum=55;//十进制
var octalNum=070;//八进制数,第一位必须是0,解析为56
var octalNum=079;//无效的8进制数,9超过了8进制数的范围,解析为79
var hexNum=0xA;//十六进制数,前两位必须是0x,后跟16进制数字(0~9及A~F)
- 浮点数
1、该数值中必须包含一个小数点,且小数点后必须有一位数字,如果小数点后只有零,则该小数会被转化为整数。
2、浮点数所占据的内存空间是整数的两倍。
3、对极大极小的浮点数采用e表示法。
var floatNum=3.2e7;//3.2×10(7次幂)
var floatNum=3.2e-7;//3.2×10(-7次幂)
- NaN:即非数值(Not a Number)
1、 这个数值用于表示一个本来要返回数值的操作数,未返回数值的情况。比如任何数值除以0,本是不符合规范的,js里,这样的操作返回NaN
2、NaN有两个不同寻常的特点:任何涉及NaN的操作都会返回NaN,NaN值与任何值都不相等,包括本身。
3、isNaN()函数,这个函数可以判断,传递的参数是否“不是数值”这里涉及数值转换的问题,例如“10”这个字符串就可以转换为10,但是“blue”这个字符串则无法转换为数字,所以isNaN("blue")==true - 数值转换
有三个函数可以把非数值转换为数值:Number(),parseInt(),parseFloat()。第一个可以用于任何数据类型,后两个,则专门用于把字符串转化为数值。
5.String
- 用来表示字符串,要么用双引号要么用单引号,下面的写法都是有效的
var firstName = 'juan';
var lastName = "yu";
- toString()函数,每个值都有,但是null与undefined没有。一般情况下使用这个函数时,没有必要传递参数,但是调用数值的 toString()方法时,可以传递基数,默认传递的是10,代表十进制。
- String()函数可以将任何类型的值转换为字符串,包括null转换为'null'、undefined转换为'undefined',也就是返回了这两个值的字面量。
一种引用类型:Object
- 对象是一组数据和功能的集合
- 创建对象的有两种方法:
1.字面量表示法,我习惯这种创建方法
var object = {};
2.new()方法
var object = new Object();
- 对象被写在一对花括号里。在括号内部,对象的属性name : value的形式来定义。属性由逗号分隔:
var person={firstname:"John", lastname:"Doe", id:5566};
有两种获取属性的方法
name=person.lastname;//比较常用
name=person["lastname"];
好了,继续加油!
每天都努力一点
谢谢你看完