JavaScript 数据类型(基本数据类型)
JavaScript 数据类型分为简单数据类型和复杂数据类型。
简单数据类别包括 Number、String、Boolean、Undefined 和 Null 共5种。
复杂数据类型只有一个 Object 类型。
一、Number 类型
Number 类型可以来表示整数和浮点数,也可以支持不同进制的数值。
1、进制
十进制:最基本的数值字面量格式是十进制整数。可以直接在代码中输入。
八进制:八进制字面值的第一位必须是零( 0),然后是八进制数字序列( 0~ 7)。
如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析。
十六进制:十六进制字面值的前两位必须是 0x,后跟任何十六进制数字( 0~ 9 及 A~ F)。其中,字母 A~ F可以大写,也可以小写。
Demo:
var intNum = 55; // 十进制的整数
var octalNum1 = 070; // 八进制的 56
var octalNum2 = 079; // 无效的八进制数值——解析为 79
var octalNum3 = 08; // 无效的八进制数值——解析为 8
var hexNum1 = 0xA; // 十六进制的 10
var hexNum2 = 0x1f; // 十六进制的 31
注意:在进行算术计算时,所有以八进制和十六进制表示的数值最终都将被转换成十进制数值。
2、浮点数值
所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。
由于保存浮点数值需要的内存空间是保存整数值的两倍,因此 ECMAScript 会不失时机地将浮点数值转换为整数值。
对于那些极大或极小的数值,可以用 e 表示法(即科学计数法)表示的浮点数值表示。用 e 表示法表示的数值等于 e 前面的数值乘以 10 的指数次幂。
Demo:
var floatNum = 3.125e7; // 等于 31250000实际含义是 3.125乘以10的7次方
ECMASctipt 会将那些小数点后面带有 6 个零以上的浮点数值转换为以 e 表示法表示的数值, 浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。
Demo:
var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004
注意:永远不要判断两个浮点数是否相等。
3、数值范围
由于内存的限制, ECMAScript 并不能保存世界上所有的数值 。ECMAScript 将最值保存在下面的两个常量中:
Number.MIN_VALUE; // 最小值,这个值为5e-324
Number.MAX_VALUE; // 最大值,这个值为 1.7976931348623157e+308
如果某次计算的结果得到了一个超出 JavaScript 数值范围的值,那么这个数值就代表无穷大。
无穷大:Infinity
无穷小:-Infinity
无穷大的值无法参与计算,要想确定一个数值是不是有穷的(换句话说,是不是位于最小和最大的数值之间),可以使用 isFinite() 函数。这个函数在参数位于最小与最大数值之间时会返
回 true。
Demo:
var result = Number.MAX_VALUE + Number.MAX_VALUE;
alert(isFinite(result)); //false
4、NaN
NaN,即非数值( Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。
特点:
- 任何涉及 NaN 的操作(例如 NaN/10)都会返回 NaN。
- NaN 与任何值都不相等,包括 NaN 本身 。(alert(NaN == NaN); //false )
在这里,ECMAScript 定义了 isNaN() 函数,这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。
用法:
isNaN(参数); // 如果参数可以转化成数字,为 false;如果不可以转化为数字,为 true
二、String 类型
字符串可以由双引号( ")或单引号( ')表示, 推荐使用单引号表示。
1、字符字面量
字符串字面量其实就是字符串的值。
2、转义字符
String 数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符 。
例如:"我是一个”爱学习”的人",在一个字符串中使用双引号(“),这个时候就需要用到转义字符。
常用的转义字符:
3、字符串特点
ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。
要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
Demo:
var lang = "Java";
lang = lang + "Script";
分析:示例中的变量 lang 开始时包含字符串"Java"。而第二行代码把 lang 的值重新定义为"Java"与"Script"的组合,即"JavaScript"。实现这个操作的过程如下:首先创建一个能容纳 10 个字符的
新字符串,然后在这个字符串中填充"Java"和"Script",最后一步是销毁原来的字符串"Java"和字符串"Script",因为这两个字符串已经没用了。
这个过程是在后台发生的,而这也是在某些旧版本的浏览器(例如版本低于 1.0 的 Firefox、 IE6 等)中拼接字符串时速度很慢的原因所在。
4、扩展:
(1)使用length属性用来获取字符串的长度
Demo:
var str = "JavaScript";
console.log(str.length);
(2)字符串拼接使用 + 连接
Demo :
console.log("hello" + "world");
注意:+ 号两边只要有一个是字符串,那么+就是字符串拼接功能;两边如果都是数字,那么就是算术功能。
三、Boolean 类型
1、字面值:true 和 false,区分大小写
2、计算机内部存储:true 为 1,false 为 0
四、Undefined 类型
undefined类型只有一个值,即特殊的 undefined。 表示一个声明了没有赋值的变量,变量只声明的时候值默认是undefined。所有 js 变量未赋于初始值的时候, 默认值都是 undefined.。
五、 Null 类型
Null 类型也是只有一个值的数据类型,即 Null。表示一个空对象指针,变量的值如果想为null,必须手动设置。
使用 typeof 操作符检测 null 值时会返回"object" 。
注意:undefined 值是派生自 null 值的,因此 ECMA-262 规定对它们的相等性测试要返回 true:
alert(null == undefined); //true
六、typeof 操作符
鉴于 ECMAScript 是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof 就是负责提供这方面信息的操作符。
用法:
typeof 变量名;
typeof (表达式)
typeof 操作符的操作数可以是变量,也可以是数值字面量。
注意,typeof 是一个 操作符 而不是函数,因此上面中的圆括号尽管可以使用,但不是必需的。
JavaScript 数据类型(基本数据类型)的更多相关文章
- JavaScript 中的数据类型
Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...
- javaScript中的数据类型
一.综述 javaScript中的数据类型分为两类: 简单类型:Boolean,Number,String 引用类型:Object 其他:undefined代表变量没有初始化,null代表引用类型为空 ...
- Javascript中的数据类型之旅
虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型, ...
- JavaScript基础:数据类型的中的那些少见多怪
原文:JavaScript基础:数据类型的中的那些少见多怪 Javascript共有6种数据类型,其中包括3个基本数据类型(string,number,boolean).2个特殊数据类型(undefi ...
- 【译】Javascript中的数据类型
这篇文章通过四种方式获取Javascript中的数据类型:通过隐藏的内置[[Class]]属性:通过typeof运算符:通过instanceof运算符:通过函数Array.isArray().我们也会 ...
- ArcGIS API for JavaScript 中的数据类型【vs】GPServer的数据类型
熟悉GPServer的同学肯定知道,GPServer在10.1的ArcMap后需要执行成功一次才能发布. 发布GPServer,可以是ArcMap的工具箱的工具,也可以是自己写的模型. 不管是ArcM ...
- JavaScript 基本语法 -- 数据类型 & 变量
JavaScript都有哪些数据类型呢? 在JavaScript里面,数据类型分为两类:原始类型(primitive type)和对象类型(object type) 1. 原始类型(我的理解,不可分割 ...
- JavaScript中基本数据类型和引用数据类型的区别
1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变 ...
- 细说 JavaScript 七种数据类型
在 JavaScript 规范中,共定义了七种数据类型,分为 “基本类型” 和 “引用类型” 两大类,如下所示: 基本类型:String.Number.Boolean.Symbol.Undefined ...
- javascript 中检测数据类型的方法
typeof 检测数据类型 javascript 中检测数据类型有好几种,其中最简单的一种是 typeof 方式.typeof 方法返回的结果是一个字符串.typeof 的用法如下: typeof v ...
随机推荐
- selenium--加载浏览器配置
前戏 在我们之前写的自动化脚本中,不知道大家有没有发现,每次打开的都是一个新的浏览器(相当于新安装的).但是有时候,我们想打开的是我们配置好的浏览器.我在之前的公司做web自动化的时候,由于我们的网站 ...
- 讲课专用——线段树——BSS
题目链接:http://codevs.cn/problem/3981/ 题解: 线段树求GSS模板题 一.一段长的区间的 GSS 有三种情况:>1 完全在左子区间>2 完全在右子区间> ...
- 第08组 Beta冲刺(4/5)
队名:955 组长博客:点这里! 作业博客:点这里! 组员情况 组员1(组长):庄锡荣 过去两天完成了哪些任务 文字/口头描述 ? 测试新功能中 展示GitHub当日代码/文档签入记录 接下来的计划 ...
- 一些树上dp的复杂度证明
以下均为内网 树上染色 https://www.lydsy.com/JudgeOnline/problem.php?id=4033 可怜与超市 http://hzoj.com/contest/62/p ...
- Redis常见场景解析
一 前言 Redis是一个key-value存储系统,现在在各种系统中的使用越来越多,大部分情况下是因为其高性能的特性,被当做缓存使用,这里介绍下Redis经常遇到的使用场景. 二 Redis特性 一 ...
- Elasticsearch SQL用法详解
Elasticsearch SQL用法详解 mp.weixin.qq.com 本文详细介绍了不同版本中Elasticsearch SQL的使用方法,总结了实际中常用的方法和操作,并给出了几个具体例子 ...
- 爬虫框架 ---- scrapy 框架的介绍与安装
----- 爬虫 基于B/S 模式的数据采集技术,按照一定的规则,自动的抓取万维网信息程序 以一个或多个页面为爬取起点,从页面中提取链接实现深度爬取 使用爬虫的列子 第三方抢票软件(360/猎豹/ ...
- [转帖]面试问Kafka,这一篇全搞定
面试问Kafka,这一篇全搞定 https://os.51cto.com/art/201911/606207.htm 图片来自 Pexels Kafka 基础 消息系统的作用 大部分小伙伴应该都清楚, ...
- ElasticSearch 线程池类型分析之SizeBlockingQueue
ElasticSearch 线程池类型分析之SizeBlockingQueue 尽管前面写好几篇ES线程池分析的文章(见文末参考链接),但都不太满意.但从ES的线程池中了解到了不少JAVA线程池的使用 ...
- [CF254C]Anagram(2019-11-15考试)
题目大意 给你两个长度相同的字符串\(A,B\),要求改变字符串\(A\)中最少的字符,使得字符串\(A\)在排序后和字符串\(B\)相同.输出改变后的字符串\(A\),若多解,输出字典序最小的.\( ...