JavaScript数据类型
Posted 牛译伟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript数据类型相关的知识,希望对你有一定的参考价值。
数据类型
(一)为什么需要不同的数据类型
在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。
简单来说,数据类型就是数据的型号类别。
(二)变量的数据类型
变量是用来存储值的所在处,它们有名字和数据类型。
变量的数据类型决定了如何将代表这些值的位,存储到计算机的内存中去。JavaScript是一种弱类型或者动态语言。这并不意味着不用提前声明变量的类型,JS变量数据类型是只有程序在运行中,根据等号右边的值来确定的。
var age = 10; //这是一个数字型 var name = "猪"; //这是一个字符串
在代码运行中,变量的数据类型是由 JS 引擎 根据 = 右边变量值的数据类型来判断 的运行完毕后,变量就确定了数据类型。
javascript 用拥有动态类型,同时也意味着相同的变量可用作不同的类型。变量的数据类型是可以改变的。
var a = 10; //a为 数字
var a = \'www\'; //a为字符串
(三)数据类型的分类
JS把数据类型分为两类:
简单数据类型(基本数据类型):String、Number、Null、Undefined、Boolean
复杂数据类型(引用数据类型):Object
简单数据类型
typeof 检测变量数据类型
typeof 可以用来获取检测变量的数据类型
var aa=10;
console.log(typeof aa); //unmber
aa=\'qqq\';
console.log(typeof aa); //string
aa=true;
console.log(typeof aa); //boolean
aa=null;
console.log(typeof aa); //object
aa=undefined;
console.log(typeof aa); //undefined
prompt 取过来的值是 字符型的;
在控制台中文本颜色是黑色的是 数值型的,文本颜色是蓝色的就是 字符型的,深蓝色的是布尔类型的,undefined 和 null 都是浅灰色的。
一、数字型(Number)
JavaScript数字类型既可以用来保存整数值,也可以用来保存小数(浮点数),包括32位的整数,以及64位的浮点数(小数)
(一)、数字型进制
常见的进制有 二进制、八进制、十进制、十六进制。
1、八进制数字序列范围:0~7;
八进制逢八进一,最小是0,最大是7。程序里面在数字前面加 0,表示八进制。
var a = 010; console.log(a); a=012; console.log(a);
2、十六进制序列范围:0~9 a~f
十六进制逢十六进一,最小是0,最大是f,#ffffff 在数字前面加 0x 表示十六进制
var a = 0xf; console.log(a); a=0x9; console.log(a);
(二)数字型范围
JavaScript中数值的最大值和最小值
最大值 Number.MAX_VALUE
最小值 Number.MIN_VALUE
console.log(Number.MAX_VALUE); //求最大值
console.log(Number.MIN_VALUE); //求最小值
数值的最大值为 1.7976931348623157e+308 ,即为 1.7976931348623157*e的308次方
数值的最小值为 5e-324
(三)数字型的三个特殊值
- Infinity:表示正无穷,大于任何数值,如果使用Number表示的数字超过了最大值则会返回一个 Infinity;
- -Infinity:表示负无穷,小于任何数,如果使用Number表示的数字小于最小值则会返回一个 - Infinity;
- NaN:Not a Number,代表一个非数值
使用typeof检验Infinity、NaN也会返回Number。
console.log(Number.MAX_VALUE * 2); //Infinity正无穷
console.log(-Number.MAX_VALUE * 2) //-Infinity负无穷
console.log(\'Num\'- 10);
(四)isNaN 方法
isNaN() 这个方法用来判断是否是非数字,并且返回一个值,如果是数字就返回 false,如果不是数字就返回 true;
isNaN 即为 is Not a Number 。(是否是为非数字)
1、是数字,返回值为 false
var a = 010; console.log(isNaN(a));
2、不是数字,返回值为 true
var a = \'qqqq\'; console.log(isNaN(a));
实例:数值运算
1、123+456(整数计算)
在JS里整数的运算基本可以保证正确
2、0.1+0.2 不等于 0.3(浮点数计算)
如果使用JS进行浮点元素的计算,可能得到一个不精确的结果(因为二进制是不可以表示小数的,在二进制不准确)
所以不要使用JS进行对精确度要求比较高的运算。
二、字符串类型(String)
(一)、字符串
作用:表示一系列的文本字符数据,字符串类型就是引号中的任意文本 ,其语法为 双引号 " " 和单引号 \' \'。
注意:
1、在JS适用字符串需要使用引号 引起来,j加上双引号表示的就是字符串。使用双引号或是单引号都可以,但是不要混着用。
2、同样的引号不能嵌套,双引号里面不能不能放双引,单引号里面不能放单引号。JS中可以使用单引号嵌套双引号,或是双引号嵌套单引号(外双内单,外单内双)
3、因为html标签里面的属性使用的是 双引号,所以 JS 中更推荐使用 单引号 (\' \')。
由Unicode字符、数字、标点组成。Unicode下所有的字符、数字、标点在内存中都占2字节。
"张".charCodeAt().toString(16)
查看字符"张"的十六进制表现方式,结果为 5f20
(二)、字符串转义字符
类似于HTML 里面的特殊标签,字符串中也有 特殊字符,称之为转义字符
转义字符 都是反斜杠(\\) 开头的,常用转义字符说明如下:
转义符
|
意义
|
ASCII码值(十进制)
|
\\a
|
响铃(BEL)
|
007
|
\\b
|
空格(BS),b是 blank 的意思
|
008
|
\\f
|
换页(FF),将当前位置移到下页开头
|
012
|
\\n
|
换行(LF) ,将当前位置移到下一行开头
|
010
|
\\r
|
回车(CR) ,将当前位置移到本行开头
|
013
|
\\t
|
tab 缩进
|
009
|
\\v
|
垂直制表(VT)
|
011
|
\\\\
|
反斜线字符\'\'\\\'
|
092
|
\\\'
|
单引号(撇号)字符
|
039
|
\\"
|
双引号字符
|
034
|
\\? | 问号 | 063 |
\\0
|
空字符(NUL)
|
000
|
\\ddd
|
1到3位八进制数所代表的任意字符
|
三位八进制
|
\\xhh
|
十六进制所代表的任意字符
|
十六进制
|
在字符串中可以使用(\\)作为转义字符,但是这些 转义字符都要写到引号里面。
\\x表示后面的字符是十六进制数,\\0表示后面的字符是八进制数
例如:想输出的字符串表示一个双引号
\\u4e00 汉字的起始字符
\\u9fa5 汉字的结束字符
注意:代码执行的时候是按照顺序执行,只有上面的代码执行完了,下面的代码才会开始执行。
(三)字符串的操作
1、字符串的长度
字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的 length 属性可以获取到整个字符串的长度
检测获取字符串的长度 length
2、字符串的拼接
使用 + 对多个字符串进行拼接,拼接方式为 字符串 + 任何类型 = 拼接完之后的新字符串;
拼接会把与字符串相加的任何类型转换成字符串,再组成一个新的字符串(强制类型转换);
数值相加,字符相连
3、 字符串拼接加强
变量不要写到字符串里面,是通过与字符串相连的方式实现的。
通常会将字符串和变量来拼接,加了引号的变量就会变成字符串。
如果变量两侧都有字符串拼接:引引加加
实例:
弹出输入框,需要用户输入年龄,接着弹出警示框显示 “您今年 xx 岁了”(xx是刚才输入的年龄)
利用JS编写的一个简单的交互效果程序。
交互编程的三个基本要素:用户输入、程序内部处理、输出结果
var age = prompt("请输入年龄"); alert(\'您今年 \'+age+\' 岁了\');
三、布尔类型(Boolean)
作用:用于表示条件的结果,主要用来做逻辑判断。
取值(boolean值只有两个):
true:表示真,肯定的结果;
false:表示假,否定的结果
除条件判断外,做运算时,true可当1运算;false当做0运算
使用typeof检测一个布尔值时,可以返回boolean数据类型的值。
当为布尔值加上双引号时,就代表变成了字符串类型:
四、空 值(Null)
表示声明对象为赋值,Null类型的值只有一个就是null,null这个值专门用来表示这个为空的对象。
null 如果和一个字符串相加就相当于 字符串拼串;
null 和任何一个数字相加,因为null为空,所以返回的都是原值。
使用typeof 检查 null 时返回 object。
五、未定义(Undefined)
两种情况:声明变量未赋值会输出undefined;访问对象不存在的属性,也会输出undefined。
undefined 如果和一个字符串相加就相当于 字符串拼串;
undefined 如果和任何一个数字相加,返回结果都是 NaN。
使用typeof检查一个undefined时,也会返回一个underfined
以上是关于JavaScript数据类型的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段12——JavaScript的Promise对象