Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >​重学Javascript之数据类型

​重学Javascript之数据类型

原创
作者头像
行百里者半九十
修改于 2020-07-27 02:06:57
修改于 2020-07-27 02:06:57
1.3K0
举报
文章被收录于专栏:Javascript学习Javascript学习

Number类型

在Javascript,数值类型包括整数、浮点数。不管是什么类型,在js中都是使用64为来存储数值。这些数值因为分为正数和负数,因此64位内存既要用来存储正数,也要能存储负数。在这64位中,52位保存整数,11位保存小数,剩下的1位为符号位。

对于整数而言,除了可以使用常用的十进制来表示之外,还可以使用八进制和十六进制。

八进制是以数字0开头的数字,如012是10的八进制表示

注意,如果0后面的数字超出范围,会以十进制来进行解析。

十六进制是以数字0和x开头的数字,后面的数字可以0-9, a-f的任意组合

  • 特殊的数值——infinity  -infinity 以及NaN
  • infinity表示能表示的最大数值
  • -infinity表示js能表示的最小数值
  • NaN: 代表一个计算错误。他是一个不正确的或者是一个未定义的数学操作所得到的结果。
  • 对于NaN,可以通过isNaN来判断是否”不是数值“。接受一个参数。将接受的参数转换为数字,然后再判断是不是NaN
image.png
image.png
image.png
image.png
  • 如果对一个对象调用isNaN,或者对其进行整数操作,首先会调用对象的valueOf()方法
  • 与此类似的有isInfiite() , 将参数转换为数字,常规数字 -> true  否则 ->  false

还有一个常用的比较方法: Object.is().他基本与 ===相同,只有两点不同: Object.is(NaN, NaN) === true ;  Object.is(0, -0) === false

  • toString(base)

通过num.toString(base) 可以将数字转换为特定base进制的字符串。

image.png
image.png
数字的摄入操作
  • Math.floor()  向下取整
  • Math.ceil()  向上取整
  • Math.round()   就进取整
  • Math.trunc()   移除小数点后的所有内容,没有舍入
不精确的计算
  • 这里有一个常见的问题: 为什么0.1 + 0.2 !== 0.3
  • 原因: 数据在内存中是以二进制进行存储的,0.1 和 0.2转换成二进制都是无限循环小数。而在JS中,小数位的精度为17位,超过的话会进行舍入,从而造成舍入误差。
  • 如何解决?  通过toFixed(n) 进行解决。通过toFixed(n)可以对结果进行舍入,保留n个小数位,且返回的结果为字符串。
image.png
image.png
image.png
image.png
字符串转换成数字
  • parseInt()
  • parseFloat()

在这里,他们接受一个字符串,从字符串中第一个数字位开始读取,直到遇到一个非数字位。parseInt()还可以接受第二个参数,表示以多少进制解析字符串

image.png
image.png

小操作: 在字符串之前加上+ , - 可以把字符串立即转换成数值。

String类型

现在的字符串表示形式主要有三种方式:

  • 单引号
  • 双引号
  • 模板字符串的形式(abcd

模板字符串是ES6中出现的。作为新出现的特性,必定是为了解决以前存在的一些痛点,及做了扩展。

主要有两种:

  • 可以实现多行文本。

之前的字符串,要实现换行,一般都是在文本中要换行的地方插入 \n 。这种方式很不方便。

  • 可以让我们较为自由的插入变量。

一般我们的字符串字面量一旦创建就不会也不能再发生改变。而在模板字符串中,通过使用占位符${var}可以实现将变量嵌入到字符串中。更为具体地说,不仅仅可以插入变量,只要是JS表达式,都可以进行插入。

  • 标签模板。可以在模板字符串前加上一个标签模板,可以是一个函数。

调用toString()方法,将其他值转换成字符串的值。

NULL

仅仅代表 ”空“,“无” 或者 “值未知”。

Undefined

表示一个值,已经声明但是未被赋值。

注意 undefined和undeclared的区别:

undefined表示已经被声明了,只是这个变量还没有被赋值。undeclared表示连声明都没有。所以,虽然基本类型中没有undeclared,但是要注意区别。

Object类型

对象类型,其实就是一组键值对。他可以通过对象字面量创建,也可以通过new操作符来创建。

每个Object的实例都具有一下几种属性:

  • Constructor : 指向创建该对象实例的函数。
  • hasOwnProperty() : 检查特定属性书不是在当前对象实例中(而不是在原型中)
  • isPrototypeOf(object) : 用于判断传进来的对象是不是当前对象的原型。
  • toLocalString() : 返回对象的字符串表示。与当地对应。
  • toString() : 对象的字符串表示
  • valueOf() : 返回对象的数值,字符串或布尔值表示。
  • propertyIsEnumerable(proname) : 当前对象的属性能不能通过for-in来枚举。

Symbol

主要用于定义唯一的标识符。

如何判断数据的类型

  • Typeof  
image.png
image.png
  • Instanceof 

如果想要判断一个对象的具体类型,可以通过 obj instanceof Obj 来进行判断。

原理: 判断Obj是不是在obj的原型链上。

  • Object.prototype.toString.call()
image.png
image.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Javascript:Javascript数据类型详解
  要成为一个优秀的前端工程师,系统的学习Javascript,有夯实的Javascript基础,以及对语言本身的深刻的理解,是基本功。从Javascript数据类型开始,我将对Javascript知识体系进行系统的梳理。
王金龙
2019/02/25
8600
3《JavaScript高级程序设计》__ 语言基础(上)
大家好,我是HoMeTown,web领域有一本神书大家应该都有看过,这本书我看过两遍,但是每次看都是粗粗的略过一些重要的知识点,甚至一些面试过程中的问题,在这本书里都能找到答案。
HoMeTown
2022/10/26
6850
3《JavaScript高级程序设计》__ 语言基础(上)
JavaScript中的数据类型
在ECMAScript中,变量是松散类型的。所谓松散类型就是指变量可以用来保存任何类型的数据。  // 下面的操作是完全合法的 var message = "helloWorld"; message = 100; 但是在实际开发中,我并不推荐大家这样使用变量。这种操作方法是会让代码变得很不安全。为了规避这样的问题,我在变量命名的时候对变量类型做了标明。 var strMessage = "helloWorld"; // String类型 var nMessage = 100; // Number类型 //
就只是小茗
2018/03/07
2.3K0
JavaScript中的数据类型
初中级前端必须要知道的JS数据类型
计算机世界中定义的数据类型其实就是为了描述现实世界中存在的事实而定义的。比如我们用人来举例:
用户4456933
2021/06/01
1.5K0
初中级前端必须要知道的JS数据类型
经常被面试官问道的JavaScript数据类型知识你真的懂吗?
之前面试了几个开发者,他们确实做过不少项目,能力也是不错的,但是发现js基础不扎实, 于是决定写一下这篇javascrip数据类型相关的基础文章,其实也不仅仅是因为面试了他们,之前自己在面试的时候,也曾经被虐过,面试官说过的最深刻的一句话我到现在都记得。
coder_koala
2019/07/23
6430
经常被面试官问道的JavaScript数据类型知识你真的懂吗?
javascript(二):数据类型&数值
第一部分:数据类型 javascript数据类型通常来说是6种(ES6新增第七种Symbol类型) number:数值 string:字符串 boolean:布尔类型,true或false undefined:未赋值 null:空,值是“无”的状态 object:对象 通常number,string,boolean称为原始类型(primitive type)的值,即最基本的值,不能继续细分;而对象称为合成类型(complex type)的值,一个对象往往是多个原始类型的合成;而undefined和null是
用户1149564
2018/01/11
1.6K0
javascript(二):数据类型&数值
一篇文章带你了解JavaScript中的语法,数据类型,流程控制语句以及函数
JavaScript有多重要啊,才能让我说说一下,其中的语法,操作符,数据类型,内置功能等。
达达前端
2019/12/26
5790
一篇文章带你了解JavaScript中的语法,数据类型,流程控制语句以及函数
「面试基础小册」数据类型及其延伸
「面试基础小册」系列正式开写。主要是对一些基础相关的知识进行归纳整理与拓展。后续还有更多,敬请期待
小皮咖
2020/07/03
7050
JavaScript的数据类型
该类型只有一个值undefined。对未声明和未初始化的变量执行typeof操作符都返回undefined
小小鱼儿小小林
2020/06/24
7780
重学js之JavaScript基本概念(上)- 数据类型
注意:虽然省略 var 操作符可以定义全局变量,但是并不推荐这种做法,因为在局部作用域中定义全局变量会使得代码很难维护。
执行上下文
2022/07/26
6570
ECMAScript数据类型关系总结
ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String
csxiaoyao
2019/02/15
8690
JavaScript变量和数据类型
1.JavaScript变量 javascript的变量是松散类型的(弱类型),也就是说一个变量可以用来保存任何类型的数据,每个变量仅仅是用来保存值的占位符。变量的声明用var操作符来定义,如 var message;也可以多个变量一起定义,如var a,b,c;用逗号隔开每个变量。 var message ; var message;//message为初始化,值为undefined message=12;//message值为12; message="hello";//message 值为hello;
水击三千
2018/02/27
1.4K0
Javascript中的基本数据类型
Undefined 在var或者let中声明了变量但没有赋值时,这个变量的值就是undefined. 使用typeof关键字检测未声明变量的类型为undefined. Null null表示一个空对象指针,所以用typeof检测null时,会返回object undefine派生自null, null == undefined 为true, null === undefined为false Boolean true false 区分大小写 空字符串、0和NaN、null、undefined转换为boolea
宅蓝三木
2018/02/07
6710
你不知道的javaScript笔记(4)
类型: JavaScript 有7种内置类型 空值 (null) 未定义(undefined) 布尔值(boolean) 数字(number) 字符串(string) 对象(object) 符号(symbol) 除对象以外,其他统称为“基本类型” 用typeof 运算符来查看值的类型 typeof undefined  === "undefined";   // true typeof true === "boolean";  // true typeof 42 === "number";  // tru
用户1197315
2018/01/22
6540
面试官:JavaScript的数据类型你了解多少?
作为JavaScript的入门知识点,Js数据类型在整个JavaScript的学习过程中其实尤为重要。最常见的是边界数据类型条件判断问题。
Vam的金豆之路
2021/12/01
6900
面试官:JavaScript的数据类型你了解多少?
JavaScript 数据类型
JavaScript 语言可以识别 7 中不同的数据类型,除 Object 外,其它均为基本数据类型,Object 为引用数据类型。
李振
2021/11/26
3020
JavaScript 数据类型
JavaScript的数据类型及判断
基本数据类型,也称为简单数据类型,在ES5中有以下五种:Undefined、Null、Boolean、Number和String,在ES6中新增了一种简单的数据类型Symbol。
Jimmy_is_jimmy
2019/07/31
6950
JavaScript 的数据类型 相关知识点
JavaScript的数据类型分为两类:原始类型(primitive type)和对象类型(object type)
书童小二
2018/09/03
5910
JavaScript 的数据类型 相关知识点
JavaScript数值
JavaScript 只有一种数值类型,书写数值时带不带小数点均可。超大或超小的数可通过科学计数法来写。
hotarugali
2022/03/01
1K0
Javascript的5种基本数据类型总结
ECMAScript中有5种基本数据类型,分别是:Undefined,Null,Boolean,Number和String,还有一种复杂数据类型Object,Object本质上是由一组无序的名值对组成的。(这里就不细细讲述了)
全栈程序员站长
2022/10/28
7870
Javascript的5种基本数据类型总结
相关推荐
Javascript:Javascript数据类型详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档