Javascript是一种弱类型、动态语言,支持多种数据类型,包括基本类型和复杂类型。最常见的数据类型包括字符串、数字、布尔值、数组、对象和函数等。但与此同时,Javascript中也有一些不包括在基本类型和复杂类型之中的数据类型,本文将详细介绍这些数据类型的特点和用途。
第一个不包括在Javascript基本类型和复杂类型中的数据类型是null。null表示“无值”,它不是一个对象,而是一个特殊的值。当变量被赋值为null时,它表示该变量不包含任何有效的值,即该变量的值为空。下面是一个使用null的示例:
var a = null;console.log(typeof a); //输出:object
可以看到,虽然null不是一个对象,但它的类型确实是“object”,这是Javascript的一个bug。
第二个不包括在Javascript基本类型和复杂类型中的数据类型是undefined。undefined表示“未定义”,它表示变量已被声明,但尚未被赋值。下面是一个使用undefined的示例:
var b;console.log(b); //输出:undefinedconsole.log(typeof b); //输出:undefined
可以看到,当变量b未被赋值时,它的值为undefined,类型也是undefined。
第三个不包括在Javascript基本类型和复杂类型中的数据类型是NaN。NaN代表“不是一个数字”,它是一个特殊的值。当数字运算失败时,会返回NaN。下面是一个使用NaN的示例:
var c = parseInt("abc");console.log(c); //输出:NaNconsole.log(typeof c); //输出:number可以看到,当将字符串"abc"转换成整数时,由于它不是一个有效的数字,所以返回的是NaN。虽然NaN的类型是number,但它不能和任何其他数字进行相等性比较,包括它自己。下面是一个使用NaN比较的示例:
console.log(NaN === NaN); //输出:false
第四个不包括在Javascript基本类型和复杂类型中的数据类型是Infinity和-Infinity。它们表示正无穷和负无穷,可以通过除以0来得到它们。下面是一个使用Infinity的示例:
var d = 1/0;console.log(d); //输出:Infinityconsole.log(typeof d); //输出:number
可以看到,由于1除以0为无穷大,所以变量d的值为Infinity,类型为number。同样地,-Infinity表示负无穷。
第五个不包括在Javascript基本类型和复杂类型中的数据类型是Symbol。Symbol是ES6中新增的数据类型,它表示一种唯一的标识符。Symbol值可以作为对象的属性名,但它们是唯一的,不会与其他属性名相同,也不会被覆盖。下面是一个使用Symbol的示例:
var e = Symbol("foo");var obj = {};obj[e] = "bar";console.log(obj); //输出:{[Symbol(foo)]: "bar"}console.log(obj[e]); //输出:barconsole.log(typeof e); //输出:symbol可以看到,在对象obj中,使用Square Bracket Notation将Symbol值e作为属性名并赋值为"bar"。当输出obj时,可以看到属性名使用了Symbol值。同时,可以使用Square Bracket Notation和e获取属性值"bar"。注意,Symbol的类型是symbol,名称前面有一个小写字母“s”。
以上就是Javascript中不包括在基本类型和复杂类型中的数据类型。它们分别是null、undefined、NaN、Infinity和-Infinity,以及Symbol。虽然它们在应用中可能不是经常用到的,但了解它们的特点和用途对于深入理解Javascript语言还是很有益处的。
上一篇:css按钮与背景融合
下一篇:css指定所有td元素









