- 前言
- 关于 ECMASCRIPT 发展史和现状
- ES6 带来的重大特性
- ES2016(ES7)的改进
- ES2017(ES8)带来的重大新特性
- ES2018(ES9)带来的重大新特性
- JavaScript 编码风格指南
- JavaScript 词法结构(构建块)
- JavaScript 变量
- JavaScript 数据类型
- JavaScript 表达式
- 原型继承
- 如何使用 JavaScript 中的 Classes(类)
- JavaScript 异常处理
- JavaScript 中的分号(;)
- JavaScript 中的引号
- JavaScript 字面量模板(Template Literals)指南
- JavaScript 中的 function(函数)
- JavaScript 箭头函数(Arrow Function)
- JavaScript 中的闭包(Closures)
- JavaScript 数组(Arrays)
- JavaScript 中的循环(Loops)
- JavaScript 中的事件(Events)
- JavaScript 中的事件循环(Event Loop)
- JavaScript 异步编程和回调
- 理解 JavaScript 中的 Promises
- 用 async 和 await 编写现代 JavaScript 异步代码
- JavaScript 中的 循环(Loops) 和 作用域(Scope)
- JavaScript 定时器 setTimeout() 和 setInterval()
- JavaScript 中的 this
- JavaScript 严格模式(Strict Mode)
- JavaScript 中的 立即执行函数表达式(IIFE)
- JavaScript 中的数学运算符
- JavaScript 中的 Math 对象
- 介绍 ES Modules(模块)
- 介绍 CommonJS
- JavaScript 术语表
JavaScript 数据类型
您有时可能会读到 JS 是无类型的,但这是不正确的。 确实,您可以将各种不同类型分配给变量,但 JavaScript 具有类型。 特别是,它提供了原始类型和对象类型。
原始类型
原始类型包括:
- Number(数字)
- String(字符串)
- Boolean(布尔)
还有两种特殊类型:
- null(空值)
- undefined(未定义)
让我们在这里详细介绍它们。
Number(数字)
在内部,JavaScript 只有一种数字类型:每个数字都是一个浮点数。
数字字面量是源代码中表示的数字,并且取决于它的编写方式,它可以是整数字面量或浮点数字面量。
整数:
10 5354576767321 0xCC //hex
浮点数:
3.14 .1234 5.2e4 //5.2 * 10^4
实际工作中你会碰到很多不可思议的问题,特别是浮点数运算的精度问题,请查看以下几篇文章,了解相关问题及解决方案:
- JavaScript 浮点数运算的精度问题
- JavaScript 中科学计数法转化为数值字符串形式
- JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去…
String(字符串)
字符串类型是一系列字符。它在源代码中定义为字符串字面量,用引号或双引号括起来:
'A string' "Another string"
通过使用反斜杠 \
,字符串可以换行
"A \ string"
字符串可在打印字符串时解析转义序列,例如 \n
以创建一个新行。当您需要在引号括起的字符串中输入引号时,反斜杠也很有用,以防止将字符解释为结束引号:
'I\'m a developer'
可以使用 +
运算符连接字符串:
"A " + "string"
模板字符串
在 ES2015 中引入,模板字符串是字符串字面量,允许更强大的方式来定义字符串。
`a string`
您可以执行字符串替换,嵌入任何 JavaScript 表达式的结果:
`a string with ${something}` `a string with ${something+somethingElse}` `a string with ${obj.something()}`
您可以轻松拥有多行字符串:
`a string with ${something}`
Boolean(布尔)
JavaScript 为布尔值定义了两个保留字: true
和 false
。 许多比较操作 ==
===
<
>
(依此类推)返回一个布尔值。
if
, while
语句和其他控制结构使用布尔值来确定程序的流程。
他们不仅接受 true
或 false
,还接受 真值 和 假值。
假值,值被解析为 false
,有
0 -0 NaN undefined null '' //empty string
其余所有的值都被解析为 真值(truthy) 。
实际工作中我们还会碰到等值比较,请查看 JavaScript 等值比较 == ,=== 和 Object.is() 了解详情。
null
null
是一个特殊值,表示缺少值,这种类型就只有一个值 null
。 这也是其他语言中的常见概念,例如在 Python 中可以称为 nil
或 None
。
undefined
undefined
表示变量尚未初始化且值不存在。
它通常由没有返回值的函数返回。 当一个函数接受一个但不是由调用者设置的参数时,它是未定义的。
要检测值是否未定义,请使用构造:
typeof variable === 'undefined'
JavaScript 新手很容易混淆 undefined
和 null
,请阅读 JavaScript 中 undefined 和 null 的区别 了解。
Object(对象) 类型
任何不是原始类型的东西都是对象类型。
函数,数组和我们称之为对象的是对象类型。 它们本身是特殊的,但是它们继承了对象的许多属性,比如具有原型,并且还有对这些属性起作用的方法。
类型判断
实际开发工作中,我们会经常碰到 JavaScript 数据类型判断,阅读 JavaScript 数据类型判断 了解 JavaScript 数据类型判断的陷阱 与 最佳的处理方式。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论