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中的数据类型(1)的更多相关文章

  1. 读书笔记之JavaScript中的数据类型

    JavaScript严格意义上分为ECMAScript.DOM.BOM.ECMAScript是一门真正意义上的语言,独立于浏览器,浏览器只是它的一个宿主环境.DOM(文档对象模型),为ECMAScri ...

  2. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

  3. javaScript中的数据类型

    一.综述 javaScript中的数据类型分为两类: 简单类型:Boolean,Number,String 引用类型:Object 其他:undefined代表变量没有初始化,null代表引用类型为空 ...

  4. Javascript中的数据类型之旅

    虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型, ...

  5. 【译】Javascript中的数据类型

    这篇文章通过四种方式获取Javascript中的数据类型:通过隐藏的内置[[Class]]属性:通过typeof运算符:通过instanceof运算符:通过函数Array.isArray().我们也会 ...

  6. javascript 中检测数据类型的方法

    typeof 检测数据类型 javascript 中检测数据类型有好几种,其中最简单的一种是 typeof 方式.typeof 方法返回的结果是一个字符串.typeof 的用法如下: typeof v ...

  7. 鉴定JavaScript中的数据类型

    众所周知,JavaScript是一门弱类型的语言,但是这并不代表JavaScript中没有数据类型.JavaScript中常见的数据类型有string.number.object等等,通常我们使用ty ...

  8. JavaScript中基本数据类型之间的转换

    在JavaScript中共有六种数据类型,其中有五种是基本数据类型,还有一种则是引用数据类型.五种基本数据类型分别是:Number 数值类型.String 字符串类型.Boolean 布尔类型, nu ...

  9. JavaScript中基本数据类型和引用数据类型的区别(栈——堆)

    JavaScript中基本数据类型和引用数据类型的区别 1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据 ...

随机推荐

  1. 1854: [Scoi2010]游戏

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 2538  Solved: 905[Submit][Status] ...

  2. Windows下GIT安装与使用(上传远程端)

    Windows下GIT安装与使用(上传远程服务器) 1.  登陆http://msysgit.github.io/并下载Git 2.  打开下载的exe文件,一路默认(路径可以去修改).有可能电脑需要 ...

  3. CDbConnection failed to open the DB connection

    打开数据库失败 有我遇到的有寄给问题: 1 Not find Drive 2 SQLSTATE[28000] [1045] Access denied for user 'xxx'@'localhos ...

  4. SQL基本编程,分支语句,循环语句,存储过程,触发器

    基本编程: 定义变量 declare @变量名 数据类型 赋值 set @变量名 = 值 select @变量名 = 值 取值打印 select @变量名 print @变量名 映射到结果集 打印到消 ...

  5. React中父组件与子组件之间的数据传递和标准化的思考

    React中父组件与子组件之间的数据传递的的实现大家都可以轻易做到,但对比很多人的实现方法,总是会有或多或少的差异.在一个团队中,这种实现的差异体现了每个人各自的理解的不同,但是反过来思考,一个团队用 ...

  6. JavaScript入门必备

    1.JavaScript和Java没有关系,JavaScript是一门(客服端)脚本语言,并且是一个解释性语言. 2.添加JavaScript的方法 (1)内联:通过<script>js代 ...

  7. java初学代码,还不太熟练

    奇数和 public class Homework01{ public static void main(String [] args){  long t=1,s=0; do{  s=s+t;  t= ...

  8. JS中有关对象的继承以及实例化、浅拷贝深拷贝的奥秘

    一.属性的归属问题 JS对象中定义的属性和方法如果不是挂在原型链上的方法和属性(直接通过如类似x的方式进行定义)都只是在该对象上,对原型链上的没有影响.对于所有实例共用的方法可直接定义在原型链上这样实 ...

  9. 老司机实战Windows Server Docker:4 单节点Windows Docker服务器简单运维(下)

    上篇中,我们主要介绍了使用docker-compose对Windows Docker单服务器进行远程管理,编译和部署镜像,并且设置容器的自动启动.但是,还有一些重要的问题没有解决,这些问题不解决,就完 ...

  10. windows 下编译php扩展库pecl里的扩展memcache

    Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内 ...