前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript的数据类型

JavaScript的数据类型

作者头像
小小鱼儿小小林
发布2020-06-24 10:48:06
7110
发布2020-06-24 10:48:06
举报
文章被收录于专栏:灵儿的笔记灵儿的笔记

《JavaScript高级程序设计》

1)ECMAScript不支持自定义类型,只有6中数据类型:

5种基本数据类型(简单数据类型)

Undefined 未定义 "undefined"

代码语言:javascript
复制
var a ;
var a = "undefined";//不做
      Null 空引用数据类型 "null"
var a = null;
      Boolean 布尔类型 true/false
var a = false;
      Number 数字类型
var a = 10;
      String 字符串类型 "" ''
var a ="hello";
var a ='hello';

1种引用数据类型(复杂数据类型)

Object(本质由一组无序的键值对组成)

代码语言:javascript
复制
var person= new Object();
person.name = "terry";
person.age = 12;

2) typeof 操作符

返回该变量名所指向数据的类型

语法:

typeof 变量名

可有取值如下

"undefined" 未定义

"boolean" 布尔类型

"string" 字符串

"number" 数值

"object" 对象或者null

"function" 函数

3) 基本数据类型

1. Undefiend

该类型只有一个值undefined。对未声明和未初始化的变量执行typeof操作符都返回undefined

代码语言:javascript
复制
var a;
console.log(a); // undefined
console.log(typeof a); // undefined
console.log(b); //ReferenceError: b is not defined
console.log(typeof b); // undefined

2. Null类型

该类型只有一个值 null ,null可以表示一个空对象的指针。

代码语言:javascript
复制
var car = null;
console.log(typeof car ) //object  null被认为是空对象的引用

【使用情景】

如果一个变量准备将来保存对象,可以将该变量初始化null而不是其他,这样可以通过检查null值就可以知道相应的变量是否已经保存了一个对象的引用。

代码语言:javascript
复制
      if(car !=null ){
        //car对象执行某些操作
      }

实际上 undefined 派生自null值。undefined == null 结果为 true

null与undefined用途不同,null可以用来表示一个空对象,但是没有必要把一个变量的值显式设置为undefined

3. Boolean类型

该类型只有两个值,true,false虽然boolean类型的取值只有两个,但是ECMAScript中所有的类型的值都有与这两个Boolean值等价的值

4. Number

该类型用来表示整数和浮点数

1) 表示方法:

1. 整数:

十进制数: 55 0~9

八进制数: 首位为0,其他位为(0~7 如果字面值超出了范围,前导0将会被忽略)

070 (表示 7*8一次方 = 56)

079 (超过了范围,表示79)

十六进制: 前两位为0x,其他位为(0~9,A~F)

2. 浮点数

所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后必须至少有一位数字。浮点数值的最高精度是17位小数。

例如: var f = 1.2;

科学计数法:e

var e = 3.125e7; //31250000

2) 数值范围

由于内存的限制,ECMAScript不能保存世界上所有的数值。ECMAScript能表示的最小数值保存在Number.MIN_VALUE中,能表示的最大的数值保存在Number.MAX_VALUE中。如果某次计算的结果超过了JavaScript数值范围,将会返回Infinity(正无极)或者-Infinity(负无极)使用 isFinite()函数可以判断参数是否在最大值和最小值之间,如果在,返回true

在绝大数浏览器中:

Number.MIN_VALUE : 5e-324

Number.MAX_VALUE : 1.7976931348623157e+308

如果某次计算返回了正的或者负的Infinity,那么该值无法继续参与下一次计算。可以使用isFinite(para)函数判断para 是否在最大数最小数之间

3) 非数值 NaN (not a number)

该数值表示一个本来要返回数值的操作数未返回数据的情况。

代码语言:javascript
复制
var a = 10/'a';
console.log(a); //NaN
任何涉及到NaN的操作都会返回NaN; NaN与任何值都不相等,包括NaN本身。
isNaN,判断参数是否“不是数值”,当参数para不是数值的时候返回true
isNaN(NaN); true
isNaN("blue"); true 无法转换为数值
isNaN(10); false 10
isNaN("10"); false 10
isNaN(true); false

注意:

1) 默认情况下,ECMAScript会将小数点后带有6个零以上的浮点数转化为科学计数法。

0.0000003 => 3e-7

2) 在进行算术计算时,所有以八进制十六进制表示的数值都会被转换成十进制数值。

3) 保存浮点数需要的内存是整数的两倍,因此ECMAScript会不失时机将浮点转换为整数

例如:

var a = 1.;

var b = 1.0; 都将解析为1

4) 避免测试某个特点的浮点数值,是使用IEEE754数值的浮点计算的通病

例如: 0.1+0.2结果不是0.3,而是0.30000000000000004

5. String

该类型表示由零个或者多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号或者单引号表示

1)字符字面量

\n 换行

\t 制表

\b 退格

\r 回车

\\ 斜杠

\' 单引号

\" 双引号

2)字符长度

通过length属性获取字符长度

6. Object

ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行"new 对象类型"来创建。

var o = new Object();

Object类型是所有它的实例的基础,换句话说,Object类型所具有的任何属性和方法,同样存在于更具体的对象。

constructor: 保存用户创建当前对象的函数

hasOwnProperty(propertyName); 用于检查给定的属性是否在当前对象实例中

isPrototypeOf(object); 用于检查传入的对象是否是原型

propertyIsEnumerable(propertyName); 用于检查给定的属性在当前对象实例中是否存在

toLocaleString(); 返回对象的字符串表示,该字符串与执行环境的地区对应

toString(); 返回对象的字符串表示

valueOf(); 返回对象的字符串,数值,布尔值的表示。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档