Javascript数据类型有6种:

  1. 数值型数据类型(Number);
  2. 字符串(String);
  3. 布尔型数据(Boolean);
  4. 对象数据(Object);
  5. 空(Null);
  6. 未定义(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;

最新文章

  1. redis技巧--IP地址查询对应城市
  2. 素数筛 uva 543
  3. Anagrams [LeetCode]
  4. linux下操作
  5. yum 安装 php5.6 和 mysql5.6
  6. List<HashMap>和HashMap
  7. hadoop_并行写操作思路_2
  8. Ethernet & IEEE 802.3 802.X 802.1ag-MEP
  9. Tomat部署Web运用
  10. 制作U盘启动盘(以CentOS6.3为例)
  11. iOS开源项目周报0112
  12. hdu 5317 合数分解+预处理
  13. Windows 2012 安装 SQL Server 2012,.Net Framework 3.5安装不成的解决办法
  14. C#实现全局快捷键(系统热键)响应(转)
  15. [matlab] 6.粒子群优化算法
  16. 201772020113李清华《面向对象程序设计(java)》第八周学习总结
  17. 基于Java的数据采集(二)
  18. LeetCode 784 Letter Case Permutation 解题报告
  19. Four Ways to Create a Thread
  20. react中的children使用方法

热门文章

  1. SQLSERVER读懂语句运行的统计信息
  2. 2015第10周五CSS—2
  3. bzoj1643 [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪
  4. Bucket Sort
  5. ZOJ(3455)
  6. 开源安卓播放器:Dolphin Player 简单分析
  7. 【BZOJ1031】[JSOI2007]字符加密Cipher 后缀数组
  8. mysql的常用操作的封装
  9. LoadRunner如何在注册业务脚本中设置参数化唯一性
  10. cacti出现snmp error