读书笔记之JavaScript中的数据类型
JavaScript严格意义上分为ECMAScript、DOM、BOM。ECMAScript是一门真正意义上的语言,独立于浏览器,浏览器只是它的一个宿主环境。DOM(文档对象模型),为ECMAScript操作浏览器网页内容提供接口。BOM(浏览器对象模型),用来控制浏览器(宽度、高度、新窗口打开网页……),提供与浏览器交互的接口。以上三种结合起来,才是真正的JavaScript。
ECMAScript的变量类型是松散的,即为弱类型,用var声明一个变量以后就可以保存任何类型的数据。如果你是从Java、C、C++甚至C#等强类型的语言转过来学JavaScript的话,可能会有些不适应。表面上看脱离的数据类型的束缚可能会很轻松愉快自由,但是实际上这种弱类型的语言,要注意的地方会更多,让我觉得条条框框比强类型语言还多。
ECMAScript中有5中简单数据类型(基本数据类型),分别是:Undefined、Null、Number、String、Boolean,还有一种复杂类型数据:Object。
Undefined:Undefined类只有一个特殊的值,即为undef。使用var声明了变量但是还未赋值的变量,默认值就是undefined。
Null:Null类也只有一个特殊的值,即为null。null表示空对象指针,实际上undefined是派生自null的。所以在判断两者是否相等时,返回值为true。
alert(null == undefined); //true
Boolean:Boolean类有两个值,即为true和false。即为可以使用Boolean()函数强制转换其他类型的数据到bool值。对应关系如下:
| 数据类型 | 转换为true的值 | 转换为false的值 |
| Boolean | true | false |
| String | 任何非空字符 | “”(空字符串) |
| Number | 任何非零数字值(包括无穷大) | 0和NaN |
| Object | 任何对象 | null |
| Undefined | n/a(不适用) | undefined |
Number:ECMAScript中最引人关注的数据类型。实际上Number类型包括浮点类型和整数类型。
整数类型除了可以表示十进制整数以外,还可以表示八进制以及十六进制。如果要保存八进制数,数字开头必须是0,然后是八进制数,如果数中有某一位或多位大于7
,则会被当做十进制解析,前导零将会被忽略。十六进制开头必须是0x,后面的a~f可以大写也可以小写。
var intNum = 55; //整数 var octalNum1 = 070; //八进制的56
var octalNum2 = 079; //无效的八进制数,被当做十进制数解析,79
var octalNum3 = 08; //无效的八进制数,被当做十进制数解析,8 var hexNum1 = 0xA; //十六进制的10
var hexNum2 = 0x1f; //十六进制的31
浮点数值也就是数值中包含一个小数点,并且小数点后面至少有一位数字的数。如果小数点后面没有任何数字,则会被当做整数存储。
var floatNum1 = 1.; //解析为1
var floatNum2 = 10.0 //解析为10
对于极大或极小的浮点数可以用科学计数法表示。浮点数的最高精度是17位小数,但是在计算时精度却远不如整数,小小的舍入误差会导致无法测试特定浮点数的值。 比如0.1+0.2的值不是0.3,而是0.30000000000000004.因此,永远不要试图测定某个浮点数的值。
NaN:即为非数值(Not a number)。任何涉及NaN的操作都会返回NaN。NaN与任何值都不相等,包括NaN本身。
alert(NaN == NaN); //false
读书笔记之JavaScript中的数据类型的更多相关文章
- 读书笔记之JavaScript中的数据类型(1)
JavaScript严格意义上分为ECMAScript.DOM.BOM.ECMAScript是一门真正意义上的语言,独立于浏览器,浏览器只是它的一个宿主环境.DOM(文档对象模型),为ECMAScri ...
- JavaScript 中的数据类型
Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...
- javaScript中的数据类型
一.综述 javaScript中的数据类型分为两类: 简单类型:Boolean,Number,String 引用类型:Object 其他:undefined代表变量没有初始化,null代表引用类型为空 ...
- Javascript中的数据类型之旅
虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型, ...
- 【译】Javascript中的数据类型
这篇文章通过四种方式获取Javascript中的数据类型:通过隐藏的内置[[Class]]属性:通过typeof运算符:通过instanceof运算符:通过函数Array.isArray().我们也会 ...
- javascript 中检测数据类型的方法
typeof 检测数据类型 javascript 中检测数据类型有好几种,其中最简单的一种是 typeof 方式.typeof 方法返回的结果是一个字符串.typeof 的用法如下: typeof v ...
- 鉴定JavaScript中的数据类型
众所周知,JavaScript是一门弱类型的语言,但是这并不代表JavaScript中没有数据类型.JavaScript中常见的数据类型有string.number.object等等,通常我们使用ty ...
- JavaScript中基本数据类型之间的转换
在JavaScript中共有六种数据类型,其中有五种是基本数据类型,还有一种则是引用数据类型.五种基本数据类型分别是:Number 数值类型.String 字符串类型.Boolean 布尔类型, nu ...
- JavaScript中基本数据类型和引用数据类型的区别(栈——堆)
JavaScript中基本数据类型和引用数据类型的区别 1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据 ...
随机推荐
- mongodb数据导入导出mongoexport/mongoimport
数据导出 mongoexport 假设库里有一张user表,里面有2条记录,我们要将它导出 > use my_mongodb switched to db my_mongodb > db. ...
- 游戏开发者注意!这个音频SDK可以完美兼容所有主流游戏引擎
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云 发表于云+社区专栏 在网络游戏中,无论是大逃杀.棋牌类.电子竞技类还是娱乐休闲类小游戏,玩家和玩家之间的互动.语音聊天是一 ...
- SpringMVC的json交互
一.注解说明 1.@RequestBody 作用:@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内 ...
- 用C语言实现Ping程序功能---转
ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具.ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这 ...
- 学习Python要知道哪些重要的库和工具
本文转自:https://github.com/jobbole/awesome-python-cn 环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具. ...
- 深入理解JavaScript系列(47):对象创建模式(上篇)
介绍 本篇主要是介绍创建对象方面的模式,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码. 模式1:命名空间(namespace) 命名空间可以减少全局命名所需的数量,避免命名冲突或过度. ...
- 【转】.NET 4.5 使用async和await关键字调用异步方法
async和await关键字是.NET 4.5新增加的异步编程方式,通过使用这两个关键字可以轻松便捷的编写异步方法.使用async关键字声明异步方法,使用await关键字等待和获取异步方法返回的结果. ...
- .net iis excel导出问题
碰到几个问题的解决方法 1.当我远程服务器时才可以导出excel!!关闭了远程就不行... 解决:运行mmc -32组件服务 ->DCOM Config->Microsoft Excel ...
- aspose words做插入压缩后图片到Word文档中
最近用aspose words做导出Word的功能,发现图片的导出有点难受,一开始是这样写的 Document doc = new Document("D:\\Template.docx&q ...
- poj 3260 最少硬币(01+多重+完全背包)
http://www.cnblogs.com/ACMan/archive/2012/08/14/2637437.html #include <iostream> #include < ...