JavaScript有五种基本的数据类型(也可以说是简单数据类型),它们分别是:
Undefined
Null
Boolean
Number
String
JavaScript还含有一种复杂数据类型—Object。
1、typeof
typeof这个关键字是一定要说的,因为javascript是松散类型的,在变量申明时并没有使用与之类型相对应的关键字,如果在代码中想要获知某个变量的基本数据量,就可以使用typeof。这里要注意的是typeof返回的是字符串类型。
(1)、"undefined"——未申明,或者变量的值即为undefined或者未初始化;
(2)、"boolean" ——如果这变量的值是布尔类型;
(3)、"string" ——值是字符串类型;
(4)、"number" ——值是数字类型;
(5)、"object" ——对象或者值为null;
(5)、"function" ——函数。
代码范例如下:
var testString = "Hello";
var testBoobean = true;
var testUndefined = undefined;
var testUndefined1;
var testNull = null;
var testObject = {a:1};
var testFunction = function(){return;};
alert(testString);//"string"
alert(testBoobean);//"boolean"
alert(testUndefined);//"undefined"
alert(testUndefined1);//"undefined"
alert(testUndefined2);//"undefined"
alert(testNull);//"object"
alert(testObject);//"object"
alert(testFunction);//"function"
在js中函数也是对象,但是函数又要一些区别与其他对象的特定。
Undefined的值只有一个,那就是undefined。
在申明变量时如果没有将变量赋值的话这个变量也是属于Undefined类型的。
如果一个变量没有申明就直接去访问解释器会报错误信息。
但是这样的变量如果使用typeof返回的结果也是"undefined"。
Null也是一个只有一个值得数据类型,它的值就是null。
任何变量只要给其赋值为null的话这个变量的数据类型就是Null类型。
null值表示空对象指针。
申明的变量要是想用来保存对象并且在申明之初还不能确定具体保存哪个对象的时候就将其赋值为null。
在使用的时候只要检查该变量是否为null就可以知道该变量是否保存了对象。
其实null和undefined还是有点微妙的关系的,在javascript中undefined值派生自null。
因此ECMA-26规定了它们的相等性测试为true。
在实际的编程中我们没有必要将一个变量赋值为undefined,但是却有很多情况下要将变量赋值为null。
将变量赋值为null可以便于我们将它与undefined区分也便于垃圾回收处理。
在javascript中Boolean类型有两个值,分别是true和false。
因为在javascript中字母是区分大小写的,所以True和False不是Boolean的值。
调用Boolean()方法可以将任何类型的值转化成与之相对应的Boolean类型的值。
javascript为了支持各种数值类型,定义了不同数值字面量格式。
八进制在js中表示是第一位一定要是0,后面就是八进制字数序列(0~7)。
如果字面量值超出了范围,前面的0会被忽略,后面的值会被当成十进制解析。
十六进制字面量前两位必须是0x,后面跟十六进制数字(0~9及A~F)。字母A~F不区分大小写。
在进行数值计算时,不论是八进制还是十六进制最终都会被转化成十进制数值。
浮点数就是带有小数点,并且小数点后至少有一位的数字的数。
在javascript中赋值的时候对于 浮点数的小数点的前面可以没有数字,但是我们不推荐这种写法。
为了尽量减少内存的使用,ECMAScript会将一些浮点数保存为整数。
因为浮点数在 存储的时候占用的空间比整数多出一倍。
会被保存为整数的浮点数:(1)小数点后面没有数字(2)小数点后面全是0的。
在默认情况下ECMAScript会将小数点后面0的个数大于等于6个的数字用科学计数发表示。
比如2.4e3就表示2.4乘以10的3次方。
浮点数值的最高精度是17位小数,但是在进行算术计算时其精度远远不如整数。
例如,0.1加0.2的结果不是0.3,而是0.30000000000000004。这个舍入误差会导致无法测试特定的浮点数值。
Undefined
Null
Boolean
Number
String
JavaScript还含有一种复杂数据类型—Object。
1、typeof
typeof这个关键字是一定要说的,因为javascript是松散类型的,在变量申明时并没有使用与之类型相对应的关键字,如果在代码中想要获知某个变量的基本数据量,就可以使用typeof。这里要注意的是typeof返回的是字符串类型。
(1)、"undefined"——未申明,或者变量的值即为undefined或者未初始化;
(2)、"boolean" ——如果这变量的值是布尔类型;
(3)、"string" ——值是字符串类型;
(4)、"number" ——值是数字类型;
(5)、"object" ——对象或者值为null;
(5)、"function" ——函数。
代码范例如下:
var testString = "Hello";
var testBoobean = true;
var testUndefined = undefined;
var testUndefined1;
var testNull = null;
var testObject = {a:1};
var testFunction = function(){return;};
alert(testString);//"string"
alert(testBoobean);//"boolean"
alert(testUndefined);//"undefined"
alert(testUndefined1);//"undefined"
alert(testUndefined2);//"undefined"
alert(testNull);//"object"
alert(testObject);//"object"
alert(testFunction);//"function"
在js中函数也是对象,但是函数又要一些区别与其他对象的特定。
Undefined的值只有一个,那就是undefined。
在申明变量时如果没有将变量赋值的话这个变量也是属于Undefined类型的。
如果一个变量没有申明就直接去访问解释器会报错误信息。
但是这样的变量如果使用typeof返回的结果也是"undefined"。
Null也是一个只有一个值得数据类型,它的值就是null。
任何变量只要给其赋值为null的话这个变量的数据类型就是Null类型。
null值表示空对象指针。
申明的变量要是想用来保存对象并且在申明之初还不能确定具体保存哪个对象的时候就将其赋值为null。
在使用的时候只要检查该变量是否为null就可以知道该变量是否保存了对象。
其实null和undefined还是有点微妙的关系的,在javascript中undefined值派生自null。
因此ECMA-26规定了它们的相等性测试为true。
在实际的编程中我们没有必要将一个变量赋值为undefined,但是却有很多情况下要将变量赋值为null。
将变量赋值为null可以便于我们将它与undefined区分也便于垃圾回收处理。
在javascript中Boolean类型有两个值,分别是true和false。
因为在javascript中字母是区分大小写的,所以True和False不是Boolean的值。
调用Boolean()方法可以将任何类型的值转化成与之相对应的Boolean类型的值。
javascript为了支持各种数值类型,定义了不同数值字面量格式。
八进制在js中表示是第一位一定要是0,后面就是八进制字数序列(0~7)。
如果字面量值超出了范围,前面的0会被忽略,后面的值会被当成十进制解析。
十六进制字面量前两位必须是0x,后面跟十六进制数字(0~9及A~F)。字母A~F不区分大小写。
在进行数值计算时,不论是八进制还是十六进制最终都会被转化成十进制数值。
浮点数就是带有小数点,并且小数点后至少有一位的数字的数。
在javascript中赋值的时候对于 浮点数的小数点的前面可以没有数字,但是我们不推荐这种写法。
为了尽量减少内存的使用,ECMAScript会将一些浮点数保存为整数。
因为浮点数在 存储的时候占用的空间比整数多出一倍。
会被保存为整数的浮点数:(1)小数点后面没有数字(2)小数点后面全是0的。
在默认情况下ECMAScript会将小数点后面0的个数大于等于6个的数字用科学计数发表示。
比如2.4e3就表示2.4乘以10的3次方。
浮点数值的最高精度是17位小数,但是在进行算术计算时其精度远远不如整数。
例如,0.1加0.2的结果不是0.3,而是0.30000000000000004。这个舍入误差会导致无法测试特定的浮点数值。