一、前言:
JavaScript中变量似乎很简单,因为它声明变量只需要一个“var”就可以,不像其他编程语言严格区分了数据类型(int/double/char/boolean...)。这样做也是有好处的,变量可以被赋予任何类型的值,同样也可以给这个变量重新赋予不同类型的值。并不是“一定终身”。
可是,JavaScript并没有避开数据类型,只是在声明时统一使用无类型(untyped)的“var”关键字而已,它的数据类型是根据所赋值的类型来确定的。
var x = 1; ???????//number类型var x = 0.1; ????//number类型,JS不区分整数值和浮点数值var x = "hello world"; //由双引号内文本构成字符串var x = ‘javascript‘; ??//单引号内文本同样可以构成字符串var x = true; ???//true和false作为布尔值var x = null;var x = undefined; ?//null和undefined很相似,是特殊的类型
二、正文:
下面对不同的数据类型进行说明
数据类型分类 | 说明 | 详细分类 |
原始类型 |
比如:var a = 1, b = 1; a == b; //true | 数字(number) |
字符串(string) | ||
布尔值(boolean) | ||
null | ||
undefined | ||
对象类型 |
比如:var a = [], b = []; a == b; //false,只有在引用相同时,两个只才会相等 | 特殊对象--数组(array) |
特殊对象--函数(function) | ||
object类型 |
几点说明:
- undefined表示系统级的、出乎意料的或类似错误的值的空缺;表示缺少值,此处应该有值,但没有定义。例如:var a; a就会显示undefined
null表示程序级的、正常的或在意料之中的值的空缺;
一般多使用null。
undefinednull0-0NaN"" ?//空字符串
以上这些值在布尔值转换中,会转换成false。但是这并不足以让你认为他们与false是相等的:
undefined == true ??//falseundefined == false ?//falseundefined == null ???//trueundefined === null ?//falsenull == ?false ?????????//falsenull == true ???????????//false"" == false ?????????????//true"" == true ??????????????//false0 == false ??????????????//true0 == true ???????????????//false-0 == false ?????????????//true-0 == true ??????????????//falseNaN == false ??????????//falseNaN == true ???????????//falseNaN == NaN ???????????//false NaN与任何值都不相等,包括它自身
JS的数据类型
原文地址:https://www.cnblogs.com/nangezi/p/9049025.html