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里整数的运算基本可以保证正确

 20.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数据类型的主要内容,如果未能解决你的问题,请参考以下文章

16个必备的JavaScript代码片段

几个有用的JavaScript/jQuery代码片段(转)

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

vs code 自定义代码片段

30秒就能看懂的JavaScript 代码片段