0

0

JavaScript数据类型的介绍

不言

不言

发布时间:2019-03-23 09:33:47

|

2363人浏览过

|

来源于segmentfault

转载

本篇文章给大家带来的内容是关于javascript数据类型的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

最近面试了三个开发,他们都没有说清楚JS的基本类型有哪些。而且往往错误的说了一些C语言的数据类型,例如int, float, double之类的数据类型。

无论什么语言,熟练掌握数据类型都是这门语言最根本的知识点

JS数据类型分为两类,一类是基本类型,他们有

  • Number
  • String
  • Boolean
  • Undefined
  • Null
  • Symbol

js的基本类型就这么几个,除此之外,其他的类型都是对象。

立即学习Java免费学习笔记(深入)”;

Number类型

在JS没有整型,float,或者double类型的数值,所有数值统一叫做Number类型。

JS使用IEEE754格式表示整数和浮点数,一般来说整数占用了32位,而浮点数数占用64位。因为浮点数占用的内存空间是整数的两倍,所以js会适当的把浮点数转化为整数储存。

4.0 === 4 // true

数值类型都是有大小范围的

Number.MAX_VALUE  // 1.7976931348623157e+308
Number.MIN_VALUE // 5e-324
Number.MAX_SAFE_INTEGER // 9007199254740991
Number.MIN_SAFE_INTEGER // -9007199254740991

浮点数一般都是计算结果不准确的,这不是JS的问题,所有语言中都有这个问题。

计算0.1 + 0.2 === 0.3这个结果永远是false。

要比较浮点数是否相等,可以采用Number.EPSILON, Number.EPSILON是一个非常小的数值,如果两个浮点数相减小于Number.EPSILON, 则可以为认为是相等。

Math.abs(0.1 + 0.2 - 0.3) < Number.EPSILON // true

Number类型中有三个比较特殊的兄弟

动力先锋仿阿里巴巴B2B电子商务系统
动力先锋仿阿里巴巴B2B电子商务系统

前台功能介绍:1、网页首页显示有高级会员推荐,精品推荐,商业机会分类列表,最新供求信息,网站动态,推荐企业,行业动态等;2、商业机会栏目功能有:二级分类,已经带有详细分类的数据库,后台可以更改增加操作,并可以推荐公司,栏目分为分类显示信息,最新的采购、供应、合作和代理信息,搜索时同样按分类,信息,时间,交易类型等搜索;3、展厅展品栏目功能:二级分类,已经带有详细分类的数据库,后台可以更改增加操作,

下载
  1. Infinity 当数值超过Number类型的最大值,他就会变成正无穷
  2. -Infinity 当数值类型小于Number类型的最小值,就会变成负无穷
  3. NaN NaN的意思是它不是一个数值,例如某个数值除以0,一般语言都会报错,但是js不会,而是该变量的值会变成NaN。

数值类型一旦变成这三个兄弟,就无法参与后续的数值运算。

String类型

从静态语言过来的同学,遇到字符串就会问个问题:请问你能装多少个字符串呢?

字符串傻傻一笑,说:自从我诞生以来,从来就没被装满过!

ECMAScript 2016 (ed. 7) established a maximum length of 2^53 - 1 elements. Previously, no maximum length was specified. In Firefox, strings have a maximum length of 230 - 2 (~1GB). In versions prior to Firefox 65, the maximum length was 228 - 1 (~256MB).  --MDN

Boolean

Boolean值很简单,就false和true两个值。但是很多人不能完全回答出,哪些值会被转换成false。

除了下面几个能够被转成false的值,其他都是true。

false
''
NaN
undefined
0, -0, +0
null

undefined 和 null

undefined表示一个变量被定义了,但是没有被赋值。null表示这个变量根本没被定义。总之,无论是undefined和null,他们基本上都是不能使用的值。

null类型有个特别的作用。比如有个对象,有很多属性,这时候你想把这个变量给标记为可以被垃圾回收了,那么就可以把它的值设置为null。

最熟悉的陌生人:  对象

我曾认为对象在js中是最简单的,而实际上,是我太天真。
// 定义一个对象,so easy
var boy = {
  name: 'wangduanduan'
}
var boy = {}
Object.defineProperty(boy, 'name', {
 writable: false,
 value: 'wdd'
})
boy.name = 'ddw' // 设置不会生效,boy.name的值还是wdd

对象的数据属性

数据属性 默认值 说明
configurable true 表示这个属性能否用delete删除
enumerable true 表示这个属性能否通过for in 循环遍历
writable true 表示这个属性能否被修改
value undefined 表示这个属性的数据值

如果调用Object.defineProperty没有指定configurable, enumerable, writable,那么他们的默认值都是false。

访问器属性

访问器属性就是get, set让你可以在读取或者写入值时,做一层拦截。

var man = {
    _sex: 1
}
Object.defineProperty(man, 'sex', {
 set: function (v) {
     this._sex = v === '男' ? 1 : 0
 },
 get: function () {
     return this._sex === 1 ? "男" : "女"
 }
})
nam.sex // 男

想一想如果把上面的_sex改成sex会有什么问题?

// 这样写会有什么问题
var man = {
    sex: 1
}
Object.defineProperty(man, 'sex', {
 set: function (v) {
     this.sex = v === '男' ? 1 : 0
 },
 get: function () {
     return this.sex === 1 ? "男" : "女"
 }
})

本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的JavaScript视频教程栏目!

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

115

2025.12.24

拼豆图纸在线生成器
拼豆图纸在线生成器

拼豆图纸生成器有PixelBeads在线版、BeadGen和“豆图快转”;推荐通过pixelbeads.online或搜索“beadgen free online”直达官网,避开需注册的诱导页面。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

82

2025.12.24

俄罗斯搜索引擎yandex官方入口地址(最新版)
俄罗斯搜索引擎yandex官方入口地址(最新版)

Yandex官方入口网址是https://yandex.com。用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

546

2025.12.24

JavaScript ES6新特性
JavaScript ES6新特性

ES6是JavaScript的根本性升级,引入let/const实现块级作用域、箭头函数解决this绑定问题、解构赋值与模板字符串简化数据处理、对象简写与模块化提升代码可读性与组织性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

150

2025.12.24

php框架基础知识汇总
php框架基础知识汇总

php框架是构建web应用程序的架构,提供工具和功能,以简化开发过程。选择合适的框架取决于项目需求和技能水平。实战案例展示了使用laravel构建博客的步骤,包括安装、创建模型、定义路由、编写控制器和呈现视图。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

20

2025.12.24

Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

47

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

7

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

12

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

371

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 2.9万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 1.7万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号