JavaScript的类型数据通常可以分为七类——number,bigint,string,undefined,symbol,boolean,null以及非原始类型数据object。
number类型通常代表整数和浮点数,而bigint通常用来储存更加大型的数据,因为number类型难以表示大于2^53-1的数据,bigint数据声明通常在整数后面加n,或者采用BigInt()方式。
测试案例如下:
var a=3;var b=4.5;var m=1555n;var q=BigInt(2^53);
console.log(typeof a);
console.log(typeof b);
console.log(typeof m);
console.log(typeof q);
可以在控制台看到他们的类型显示,分别是number,number,bigint和bigint类型。
值得注意的是,bigint类型并不可以和number类型进行混合运算,否则会爆出程序错误无法运行。
但是bigint类型数据支持 和number数据进行大小比较。
bigint数据在进行运算时会自动取整,例如下面这段代码:
const rounded = 5n / 2n;
alert(rounded);
它计算的结果是2而不是2.5。
String类型为字符串类型,可以通过单引号,双引号和反引号来进行表示。
var a="123";var b='456';var c=`789`;
其中单引号和双引号表示字符串并没有明显的区别。而反引号则用来表示模版字符串,可以包含嵌入的表达式或变量,并且可以直接包含换行符和变量,无须使用拼接符,以及模版字符串可以直接嵌入表达式和变量进行输出。嵌入的表达式或者变量存储在${...}里面。
var s=`hello
it is a good day`;
alert("${s}");
alert(`${s}`);
分别弹出来的消息为:
而Boolean类型只有两个值分别为True and False——常常用来判断返回的结果是否为真。
var s=6>5?true:false;
console.log(typeof s);
控制台显示的结果s为boolean类型。
在 JavaScript 中,null 和 undefined 是两种不同的数据类型,它们具有一些区别。undefined 是表示一个变量已声明但未赋值的值,或者对象属性不存在时的默认值。例如:
var s;
console.log(typeof s);
在上面的例子中,变量 x 被声明但未被赋值,因此它的值为 undefined。
null 是一个表示“空”或“不存在”的特殊值,它需要显式地赋值给变量。通常用于表示变量的值为空或者对象属性的值为空。例如:
var y = null; console.log(y); // 输出 null
在上面的例子中,变量 y 被显式地赋值为 null,表示它的值为空。
但是显示y的type的时候,却显示y是object类,我也不太清楚这样的原因。
symbol类型是一种唯一且不可变的数据类型,用于创建唯一的标识符。Symbol可以通过全局函数symbol()来创建。所以即使创建两个相同描述的symbol,他们的值也不会相等。
var s=Symbol("123");
var h=Symbol("123");
s==h?alert("相同"):alert("不同");