ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String。

typeof 运算符

对变量或值调用 typeof 运算符将返回下列值之一:

  • undefined - 如果变量是 Undefined 类型的
  • boolean - 如果变量是 Boolean 类型的
  • number - 如果变量是 Number 类型的
  • string - 如果变量是 String 类型的
  • object - 如果变量是一种引用类型或 Null 类型的

Undefined 类型

Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。

var oTemp;

当函数无明确返回值时,返回的也是值 "undefined"

Null 类型

另一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

alert(null == undefined);  //输出 "true"

尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(在讨论 typeof 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。

Boolean 类型

Boolean 类型是 ECMAScript 中最常用的类型之一。它有两个值 true 和 false (即两个 Boolean 字面量)。

Number 类型

这种类型既可以表示 32 位的整数,还可以表示 64 位的浮点数。

直接输入的(而不是从另一个变量访问的)任何数字都被看做 Number 类型的字面量

var iNum = 86;

八进制数和十六进制数

整数也可以被表示为八进制(以 8 为底)或十六进制(以 16 为底)的字面量。八进制字面量的首数字必须是 0,其后的数字可以是任何八进制数字(0-7),如下面的代码所示:

var iNum = 070;  //070 等于十进制的 56

要创建十六进制的字面量,首位数字必须为 0,后面接字母 x,然后是任意的十六进制数字(0 到 9 和 A 到 F)。这些字母可以是大写的,也可以是小写的。例如:

var iNum = 0x1f;  //0x1f 等于十进制的 31
var iNum = 0xAB;  //0xAB 等于十进制的 171

尽管所有整数都可以表示为八进制或十六进制的字面量,但所有数学运算返回的都是十进制结果。

浮点数

要定义浮点值,必须包括小数点和小数点后的一位数字(例如,用 1.0 而不是 1)。这被看作浮点数字面量。例如:

var fNum = 5.0;

对于浮点字面量的有趣之处在于,用它进行计算前,真正存储的是字符串。

科学计数法

对于非常大或非常小的数,可以用科学计数法表示浮点数,可以把一个数表示为数字(包括十进制数字)加 e(或 E),后面加乘以 10 的倍数。例如:

var fNum = 5.618e7

对于非常大或非常小的数,可以用科学计数法表示浮点数,可以把一个数表示为数字(包括十进制数字)加 e(或 E),后面加乘以 10 的倍数。例如:

var fNum = 5.618e7

特殊的 Number 值

几个特殊值也被定义为 Number 类型。前两个是 Number.MAX_VALUE 和 Number.MIN_VALUE,它们定义了 Number 值集合的外边界。所有 ECMAScript 数都必须在这两个值之间。不过计算生成的数值结果可以不落在这两个值之间。

当计算生成的数大于 Number.MAX_VALUE 时,它将被赋予值 Number.POSITIVE_INFINITY,意味着不再有数字值。同样,生成的数值小于 Number.MIN_VALUE 的计算也会被赋予值 Number.NEGATIVE_INFINITY,也意味着不再有数字值。如果计算返回的是无穷大值,那么生成的结果不能再用于其他计算。

事实上,有专门的值表示无穷大,(如你猜到的)即 Infinity。Number.POSITIVE_INFINITY 的值为 Infinity。Number.NEGATIVE_INFINITY 的值为 -Infinity。

String 类型

String 类型的独特之处在于,它是唯一没有固定大小的原始类型。可以用字符串存储 0 或更多的 Unicode 字符,有 16 位整数表示

字符串字面量是由双引号(")或单引号(')声明的。而 Java 则是用双引号声明字符串,用单引号声明字符

转载于:https://www.cnblogs.com/xiaozhanga4/archive/2012/05/01/2477943.html

ECMAScript 基础--原始类型相关推荐

  1. 《JavaScript高级程序设计》阅读笔记(二):ECMAScript中的原始类型

    2.6 原始类型 ECMAScript有5种原始类型(primitive type),即Undefined.Null.Boolean.Number和String.ECMAScript提供了typeof ...

  2. 理解JavaScript的原始类型

    2019独角兽企业重金招聘Python工程师标准>>> JavaScript中的原始类型(primitive type)包括Undefined.Null.Number.Boolean ...

  3. WEB前端学习四 js什么是原始类型

    原始值与引用值 在ECMAScript 中,变量可以存放两种类型的值,即原始值和引用值. 原始值(primitive value)是存放在栈(stack)中的简单数据字段,也就是说,它们的值直接存储在 ...

  4. 【Java 泛型】泛型(泛型类型、原始类型、泛型方法)、通配符(上界、下界、无限制、继承)

    泛型(Generics) 泛型(Generics) 泛型类型(Generic Type) 多个类型参数 泛型类型的继承 原始类型(Raw Type) 泛型方法(Generic Method) 泛型方法 ...

  5. spring框架三种类型项目实现--基础maven类型、纯注解开发型、aop结合注解开发型

    spring框架实现 1.基础maven类型 1.开发准备--pom.xml添加spring依赖 2.创建properties文件 还是三层架构开发 3.domain层创建实体类javabean 4. ...

  6. 「译」ECMAScript 提案:类型注解(TypeScript 在未来可能被纳入 ECMAScript 中)

    原文标题:ECMAScript proposal: Type Annotations 原文链接:github.com/tc39/propos- ECMAScript 关于类型注解的提案已进入 stag ...

  7. [译]Effective Kotlin系列之考虑使用原始类型的数组优化性能(五)

    翻译说明: 原标题: Effective Kotlin: Consider Arrays with primitives for performance critical processing 原文地 ...

  8. 《JavaScript面向对象精要》——第1章 原始类型和引用类型1.1 什么是类型

    本节书摘来自异步社区<JavaScript面向对象精要>一书中的第1章,第1.1节,作者:[美]Nicholas C. Zakas 译者: 胡世杰 更多章节内容可以访问云栖社区" ...

  9. 如何区分引用类型和原始类型

    下表列出了原始类型以及它们的对象封装类. 原始类型和封装类 原始类型 封装类 boolean Boolean char Character byte Byte short Short int Inte ...

最新文章

  1. JAVA设计模式之不变模式
  2. UpdateData使用简介
  3. 《图解密码技术》分组密码(5) 输出反馈OFB模式
  4. 校园网站服务器配置参数,校园网服务器性能 配置及分布
  5. java中的path类_详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别
  6. 2020牛客国庆集训派对day2 VIRUS OUTBREAK
  7. python坐标轴刻度设置对数_用对数刻度设置刻度
  8. 新技术给数据中心带来新风险
  9. 51nod 1005 1027 1029 高精度
  10. Google Code注册方法详解 Google Code网盘申请方法
  11. linux系统怎么拨号上网,如何在Linux操作系统下ADSL拨号上网?
  12. C# PGM格式图像与BMP格式图像相互转换
  13. 网络安全工程师的学习路线,超级简单,收藏这一篇就够了
  14. 解决Arial字体“高低肩问题”
  15. 对前端工程化、模块化、组件化开发的理解
  16. FreeBSD中编译JDK
  17. 【Microsoft Azure 的1024种玩法】七十四.五分钟在Azure Virtual Machines中快速部署一套软件项目管理及自动构建工具
  18. 读《重构:改善既有代码的设计》的思考
  19. 百度下拉词怎么做?出现负面应该如何处理?此方法适用百度、搜狗、神马
  20. 从您的shell调用其他shells

热门文章

  1. 你从未听说过的最重要的数据库,人类登月计划的功臣
  2. Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指。
  3. Android: RecyclerView.ViewHolder、Adapter
  4. 01.几张图轻松理解String.intern()
  5. Python r‘‘, b‘‘, u‘‘, f‘‘ 的含义
  6. java获取当前tomcat线程pid_java 查看tomcat线程信息(示例代码)
  7. 印象笔记html预览,7 个方法,把印象笔记打造成轻量级笔记工具
  8. 计算机模拟虫洞,Canvas 3D虫洞模拟
  9. 京东数科宣布机房巡检AI机器人落地金融机构数据中心
  10. php防止模拟请求,php防止伪造跨站请求实现程序_PHP教程