百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> JavaScript数据类型的介绍
分享文章到:

JavaScript数据类型的介绍

发布时间:09/01 来源:未知 浏览: 关键词:
本篇文章给大家带来的内容是关于JavaScript数据类型的具体介绍,有必然的参照 价值,有需要的伴侣可以参照 一下,但愿对你有所帮忙。

比来面试了三个开发,他们都没有说分明JS的根本类型是什么。并且往往错误的说了一些C说话的数据类型,例如int, float, double之类的数据类型。

不管什么说话,熟练把握数据类型都是这门说话最基本的知识点

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

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

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

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类型中有三个比力非凡的兄弟

  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

对象的数据属性

数据属性默许值说明
configurabletrue表示这个属机能否用delete删除
enumerabletrue表示这个属机能否通过for in 轮回遍历
writabletrue表示这个属机能否被修改
valueundefined表示这个属性的数据值

假如调取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视频教程栏目!

以上就是JavaScript数据类型的介绍的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板