Javascript数据类型有6种:
- 数值型数据类型(Number);
- 字符串(String);
- 布尔型数据(Boolean);
- 对象数据(Object);
- 空(Null);
- 未定义(Undefined)。
(一)、Number
var a = 12;
alert(a);
弹出a的值是12。
var a = 12;
alert(typeof a);
【typeof 是查看变量的类型。】弹出的(类型的返回字符串)是number,说明a的返回参数为number,类型是Number类型【大写字母是数据类型,小写字母是返回参数】
(二)、String
var a = 'abc';
alert(a);
弹出的a的值是abc。
var a = 'abc';
alert(typeof a);
弹出的(类型的返回字符串)是string,说明a的返回参数为string,类型是String类型。
var a = '2'+'3';
alert(a);
弹出的a的值是23,因为此时的2跟3是一个字符串,也就是2和3合并起来。
var a = '2'+'3';
aert(typeof a);
弹出的(类型的返回字符串)是string,说明a的返回参数为string,类型是String类型。
var a = '2'+3;
alert(a);
弹出的a的值为23。
var a = '2'+3;
alert(typeof a);
返回值(类型的返回字符串)为string,说明此时的a是String数据类型。
var a = '2'+3+4+'5';
alert(a);
弹出的也是2345,因为是按照先后顺序,‘2’+3是一个字符串,字符串再加4还是字符串,字符串加字符串‘5’最终也是字符串。因此为2345。
var a = '2'+(3+4)+'5';
alert(a);
弹出的a的值为275.
var a = '2'+(3+4)+'5';
alert(typeof a);
弹出的返回值(类型的返回字符串)为string,依然还是个字符串数据类型。
var a = '2'-'1';
alert(a);
弹出的a的值为1。因为在js中,只有“-”字符串是相减的。
var a = '2'-'1';
alert(typeof a);
弹出的值(类型的返回字符串)为number,此时为Number数值类型。
var a = '2'-1;
alert(a);
弹出的a的值为1。
var a = '2'-1;
alert(typeof a);
弹出的返回值(类型的返回字符串)为number,此时为Number数值类型。
(三)、Boolean
var a = true;
alert(a);
弹出的值是true。
var a = true;
alert(typeof a);
返回的值(类型的返回字符串)是boolean。说明数据类型是Boolean类型。
var a= ‘李炎恢’;
alert(Boolean(a));
输出的为true;因为a是字符串,Boolean是布尔值,所以强制转换了;所以输出为true.
(四)、Object
Object数据类型的返回字符串是object,如果变量的值为null或者对象时,返回的字符串都是object,对象的数据类型为Object,null的数据类型为Null。null是Object数据类型的一种
创建一个对象,用{}来创建,也可以用var a = new Object()来创建对象;此时为空的对象,并非空对象,空的对象是指有了对象,但是里面没有值;空对象是null,没有创建对象,什么都没有。
var a = {};
alert(a);
弹出的值是[object Object];
var a= {};
alert(typeof a);
弹出的a的值(类型的返回字符串)是object,值是[object,Object],说明是Object数据类型。
空对象是没有创建,里面是null,什么都没有;
var a = null; alert(a);
弹出的值是null;
var a= null;
alert(typeof a);
弹出的a的值(类型的返回字符串)是object,说明是Nullt数据类型。
(五)、Null
第四中提到了,在此不作重复的解释;
var a = null;它的意思是还没创建【对象】,但是声明了对象引用而必须初始化的结果,你还没来得急创建对象,先声明一个对象的变量放在那里,默认初始化为null;举例子如下:
var a = null;
a = {
1:2
};
alert(a);
弹出的值是[object Object];
var a = null;
a = {
1:2
};
alert(typeof a);
弹出的值(数据返回字符串)为object,说明是Object数据类型;
(六)、Undefined
var a; alert(a);
弹出的值是undefined,因为没有没有定义a的值,所以为undefined,但是这个undefined是一个值;
var a;
alert(typeof a);
弹出的a的值(类型的返回字符串)是undefined,说明是Undefined数据类型。
var a = undefined;
alert(a);
弹出的值为undefined,这样做没有必要,因为undefined没有赋值的时候默认是undefined。
(七)、Function
function a(){ }
alert(a);
弹出的a的值为function a(){ };
function a(){ }
alert(typeof a);
弹出的值(类型返回字符串的值)为function;a是Function函数,但不是Function类型,因为没有Function类型;
(八)、关于undefined
undefined让我们知道一个道理,不要只声明,不赋值;
var a;
alert(b);
此时会报错,ReferenceError: b is not defined ,b没有被定义,不存在;
var a;
alert(typeof b);
弹出的值(类型的返回字符串)为undefined;
var a;
alert(a);
弹出的值为undefined;
var a;
alert(typeof a);
弹出的值(类型的返回字符串)为undefined,说明是Undefined数据类型
如果是值一个为undefined,一个为报错,typeof中都是undefined,那么,我们要注意,给变量声明的时候一定要赋值,防止发生以上的错误;
(八)、变量初始化
在(五)中提到了对象的初始化为null,数值的初始化为0,字符串的初始化为空字符串,即(‘’);布尔值初始化一般是false或者true;
(九)、undefined与null的区别
undefined是派生自null的,打印undefined与null的值,如下:
alert(undefined == null);
弹出的值为true;
为什么呢?undefined是不存在,未定义,null不存在,空的,他们都是空的,所以想等,理所当然是true;undefined是Undefind类型返回的字符串类型为undefined,null是Null类型返回的字符串类型为object,他们的类型不一样,返回字符串也不一样;
alert(undefined === null);
弹出的值为false;
三个等号为恒等,只有数值、数据类型都必须想等,才为true;