美文网首页
重学前端(二):JS里面的基本数据类型

重学前端(二):JS里面的基本数据类型

作者: 小陈陈酱 | 来源:发表于2019-02-28 13:36 被阅读1次

js里面的关于类型:

1,为什么有的编程规范,要求用void 0 代替undefined呢?

Undefined其实是js里面的一个基本类型。 这个类型里面,只有一个值,就是undefined。而undefined是一个变量,不是一个保留字,为了防止我们意外篡改这个变量,所以最好不用undefined作为值,而无论void后的表达式是什么,void操作符都会返回undefined,所以一般用void 0来代替undefined

2, String的最大长度

String 的最大长度是2的53次方-1 。但是这里的知识点是:
String 的含义并非我以前理解的“字符串”的含义。而是“字符串的UTF16编码”,我们对字符串操作charAt charCodeAt length 都是对编码的操作。所以他的长度是收到UTF16编码长度的影响,所以有最大值。
(讲到这里,可能会认为有必要去了解UTF16UTF8,但是我目前对这个还没有兴趣,也没有遇到相关的问题,所以此处略过)

3, Number

经典问题: 0.1 + 0.2 == 0.3 为什么是false。

因为他的浮点数啊。浮点数的精度问题,导致两边并不相等,有微小的差距。对于浮点数的比较方法应该是这样的:
Math.abs(0.1 + 0.2 - 0.3) < Number.EPSION
(The Number.EPSILON property represents the difference between 1 and the smallest floating point number greater than 1.)

NaN !== NaN

NaN 其实是2的53次方-2个特殊数字的合计。所以他并不是一个精确的数据,而是一群值。所以就能解释为什么NaN !== NaN

4,装箱转换

例如:

'string'.chartAt() // chartAt方法是String对象的内置方法

那为什么'string'可以调用对象的内置方法呢?
答案是.运算符提供了装箱操作,就是'string'会先转换成String对象,再去执行方法。
值得注意的是:装箱机制会频繁的产生临时的对象,在对性能要求高的情况下应该尽量避免这样的做法。使用Object函数,可以在js中显性调用装箱能力。

4,拆箱转换

Number和String在相互转换的时候,就是先进行了拆箱转换,我的理解是先把value从对象里面取出来,再进行对比。
所以我们常见的就是先调用了valueOf/toString。再去值进行对比。

相关文章

  • 重学前端(二):JS里面的基本数据类型

    js里面的关于类型: 1,为什么有的编程规范,要求用void 0 代替undefined呢? Undefined其...

  • JS中关于类型的细节

    参考: winter 的重学前端 JS 中有哪些类型? JavaScript语言的每一个值都属于某一种数据类型。J...

  • JavaScript相关笔记

    Web前端相关笔记(三)——JavaScript篇 一、js的数据类型? 5大基本数据类型 Number、Stri...

  • web前端面试之js基础(码动未来)

    web前端面试之js基础(码动未来) 3.1.1、介绍js的基本数据类型 Undefined、Null、Boole...

  • 创建对象的方法

    首先先回顾下前面的基本知识: js的数据类型 1、原始数据类型(基本数据类型,简单的数据类型) 有字符串,数字,布...

  • js数据类型

    JS基本数据类型和引用数据类型(JS 基本数据类型和引用数据类型的区别及浅拷贝和深拷贝) 再讲 js 的基本数据类...

  • JS的类型转换

    JS的数据类型: 首先, JS的数据类型分为基本数据类型和引用数据类型基本数据类型: string number ...

  • JS数据类型判断

    js中可以通过typeof来判断基本的数据类型。 数据类型 js的数据类型分为基本数据类型和引用数据类型,基本数据...

  • js常见知识点

    一、 js基本数据类型和引用数据类型 js基本数据类型:Number、String、Boolean、Null、un...

  • 基本数据类型和引用类型的区别详解

    js基本数据类型: js基本数据类型包括:undefined,null,number,boolean,string...

网友评论

      本文标题:重学前端(二):JS里面的基本数据类型

      本文链接:https://www.haomeiwen.com/subject/dhocuqtx.html