谈谈JavaScript数据类型
来源:互联网 发布:60年代魔兽数据库 编辑:程序博客网 时间:2024/05/21 17:35
很多新手很容易弄不清楚js的数据类型,在这里给大家总结一下。
七种数据类型
JavaScript一共七种数据类型(可以召唤神龙了):
- 空值(null)
- 未定义(undefined)
- 数字(number)
- 字符串(string)
- 布尔值(boolean)
- 对象(object)
- 符号(symbol ES6新增)
判断类型
在JavaScript中,主要利用 typeof 判断数据类型,但是仔细看下面的代码:
typeof undefined=== 'undefined' //truetypeof 42 === 'number' //truetypeof '42' === 'string' //truetypeof {age:24} === 'object' //truetypeof true === 'boolean' //truetypeof Symbol() === 'symbol' // true
以上代码都很好理解,但是:
typeof null == 'object' //truetypeof function a(){...} === 'function' //true
上述代码有两个疑问:
1. 为什么 typeof null 是‘object’而不是 ‘null’?
2. 为什么typeof function a(){}是 ‘function’而不是 ‘object’?‘function’为什么不是基本类型之一?
为什么 typeof null 是‘object’而不是 ‘null’?
解答:这是JavaScript的一个bug,由来已久,而且未来也不会修复。因为已经随JavaScript存在了这么多年,涉及太多系统了,如果真的修复,会导致大量的web系统不能够正常工作。
那么,得怎么判断一个变量是null类型呢了?
var a = null;(!a && typeof a == 'object');//true
为什么typeof function a(){}是 ‘function’而不是 ‘object’?‘function’为什么不是基本类型之一?
解答:‘function’并不是JavaScript的内置类型之一,它实际上是object的一个“子类型”。但是为什么返回的是‘function’而不是‘object’,这个就有待各位指教了。
因为还有一种特殊情况:
typeof [1,2,3,4] == 'object'
说明数组也是object的一个子类型。
阅读全文
1 0
- 谈谈JavaScript数据类型
- 谈谈JS的数据类型
- 谈谈Java基础数据类型
- 谈谈JavaScript MVC模式
- 谈谈javascript中的定时器
- 谈谈javascript中的定时器
- 谈谈JavaScript MVC模式
- 谈谈:javascript:return 理解
- JavaScript数据类型
- JavaScript数据类型
- Javascript数据类型
- JavaScript 数据类型
- javascript数据类型
- JavaScript数据类型
- Javascript数据类型
- JavaScript数据类型
- javaScript数据类型
- JavaScript 数据类型
- Python学习笔记-17.10.11
- android 中application context 和 activity Context 阐释
- 基于mybatis调用存储过程
- Java重写和重载
- 利用聚类分析航空公司客户价值
- 谈谈JavaScript数据类型
- android开发 -- 复制文本内容到系统剪贴板(自由复制)
- 111111
- Spark On Yarn系列文章
- CCF之折点计数
- tensorflow-gpu1.3.0安装(win10+cuda8.0.61+cuDNN6.0)
- xlistview_activity
- stm32+ucosII+usart串口的接收,重在分析过程
- java 常用的代码片段(转)