js数据类型

Posted wybslj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js数据类型相关的知识,希望对你有一定的参考价值。

javascript数据类型


Number

JavaScript不区分整数和浮点数,统一用Number表示。

123; // 整数123
0.456; // 浮点数0.456
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity

十六进制用0x前缀和0-9,a-f表示,例如:0xff000xa5b4c3d2

1 + 2; // 3
(1 + 2) * 5 / 2; // 7.5
2 / 0; // Infinity
0 / 0; // NaN
10 % 3; // 1
10.5 % 3; // 1.5

字符串

可以用单引号或者双引号括起。


布尔值

truefalse1>2; // false
2>3; // true

&& 与运算 全true才为true
|| 或运算 一个true全为true
! 非运算

比较运算符

当我们对Number进行比较时,可以通过比较运算符得到一个布尔值。

1 > 2; // false
7 == 7; // true

实际上,JavaScript允许对任意数据类型做比较:

false == 0; // true
false === 0; // false

要特别注意相等运算符==。JavaScript在设计时,有两种比较运算符:

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

另一个例外是NaN这个特殊的Number与所有其他值都不相等,包括它自己:

NaN === NaN; // false
唯一能判断NaN的方法是通过isNaN()函数:
isNaN(NaN); // true

最后要注意浮点数的相等比较:

1 / 3 === (1 - 2 / 3); // false

这不是JavaScript的设计缺陷。浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:

Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

null和undefined

null表示一个“空”的值,它和0以及空字符串‘‘不同,0是一个数值,‘‘表示长度为0的字符串,而null表示“空”。

在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift

nil,Python用None表示。但是,在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。

JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用nullundefined仅仅在判断函数参数是否传递的情况下有用。


数组

类似于Python中的列表。使用[]表示,元素使用,隔开。

["a","b",1,2,[1,2,3,"a"]]
创建数组的方法是通过Array()函数实现
new Array(1, 2, 3); // 创建了数组[1, 2, 3]
var arr = [1, 2, 3.14, ‘Hello‘, null, true];

对象

Python中的字典,由键值对组成的无序集合。

var person = 
    name: ‘Bob‘,
    age: 20,
    tags: [‘js‘, ‘web‘, ‘mobile‘],
    city: ‘Beijing‘,
    hasCar: true,
    zipcode: null
;

上述person对象一共定义了6个键值对,其中每个键又称为对象的属性,例如,personname属性为‘Bob‘zipcode属性为null

要获取一个对象的属性,我们用对象变量.属性名的方式:

person.name; // ‘Bob‘
person.zipcode; // null

变量

var a; // 申明了变量a,此时a的值为undefined
var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1
var s_007 = ‘007‘; // s_007是一个字符串
var Answer = true; // Answer是一个布尔值true
var t = null; // t的值是null

strict模式
开始方式:在JavaScript代码的第一行写上:
‘use strict‘;
作用:在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。
不启用:JavaScript的设计缺陷,不启用的话,
a = 5;默认是一个全局变量,
在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以调试的错误结果。

 

 

 

 

var a; // 申明了变量a,此时a的值为undefined
var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1
var s_007 = ‘007‘; // s_007是一个字符串
var Answer = true; // Answer是一个布尔值true
var t = null; // t的值是null

以上是关于js数据类型的主要内容,如果未能解决你的问题,请参考以下文章

js数据类型BigInt

JS-判断js数据类型的几种方式

js的数据类型有哪几种

01 JS的数据类型及如何判断数据类型

JS的基本数据类型

JS开发中基本数据类型都有哪些