js基础--javascript基础概念之数据类型
数据类型
javascript有5种基本数据类型(简单数据类型) 分别如下:
1.undefined --未定义值;
2.boolean--布尔值;
3.string--字符串值;
4.number--数值;
5.null--空值;
还有一个复杂数据类型---object object本质上是一组无序的名值对应组成的。
typeof 操作符:typeof不是一个函数 是一个操作符。
使用typeof操作符可能会返回如下某些字符串:
var str = '字符串'; var num = 100; var bool = true; var obj = new Object(); var Fun = function(){}; var un; alert(typeof(str));//string alert(typeof(num));//number alert(typeof(bool));//boolean alert(typeof(obj));//object alert(typeof(Fun));//Function alert(typeof(un));//undefined
typeof不单单可以操作变量。还可以是数值字面量的操作。如:
alert(typeof("string"));//string alert(typeof(11));//number
有时候 typeof也会返回一些令人迷惑但技术上又是正确的值。比如,调用typeof null 会返回object 。因为特殊值null 被认为是 空object 的引用。
Undefined 类型
Undefined 只有一个值。即特殊的undefined 。 在使用var 声明变量未初始化的值则为undefined。如
var demo; //未初始化 undefined。
与
var demo = uneducated
是相等的。
一般没必要设置undefined的字面量。
Null 类型
Null类型是第二个只有一个值的数据类型。这个特殊的值是null 逻辑上看来 null 类型就是一个没有指针的的空对象。当你使用typeof 操作符时。返回的是一个对象。如:
var demo = null; alert(typeof(demo));//object
如果你准备定义一个变量来保存object 。那么 建议你赋null值。
实际上 undefined是派生于null 值的。因此。
alert(null == undefined); //true
Boolean类型
该类型只有两个值。True && false 。这两个值和数值不是一回事。True不一定等于1;false不一定等于0;
如果想要一个值转换为boolean 可以使用boolean函数。如;
var str = '字符串'; alert(Boolean(str));//true
例子中的str转换为了boolean值。Boolean()可以对任何数转换为布尔值。
至于转换的结果,则取决于实际要转换的值。下面是各类数值转换规则。
数据类型 True False
Boolean True False
String 任何非空字符串 空字符串
Number 任何非零的数值(无穷大)0 和 NaN
Object 任何对象 null
UndefinedN/A(不适用) Undefined
注意:Boolean 是区分大小写的,也就是说 只有true 和false 才是布尔值 其他都不是。
Number 类型
这种类型使用IEEE754格式来表示整数和浮点数值。
浮点数值;
所谓浮点 就是小数类型。数值中包含有小数点的。且小数点后面必须包含有一位小数以上。如
var a = 1.5;//正常的浮点式 var b = 0.5;//解析为0.8 var c = .8;//这样也可以正常解析 但是不建议这么写。 var d = 200.0;//解析为200 var e = 29.;//解析为29 var float = 9.22e4;//92200
浮点数值的最高精度是17位小数。但是进行算术运算时其精确度远远不如整数。例如,0.1 加 0.2 不是等于0.3 而是0.300000000000000004;小小的舍入误差导致无法测试特定的浮点值。例如;
if(0.1 + 0.2 == 0.3){ alert("True"); }else{ alert("Flase");//结果是这个 }
数值范围:
由于内存的限制,javascript表示的数值有个范围;能表示的最小的值保存在Number.MIN_VALUE ,而能表示的最大的值保存在Number.MAX_VALUE。
alert(Number.MIN_VALUE);// 能表示的最小值是5e-324 alert(Number.MAX_VALUE);//能表示的最大值是1.7976931348623157e+308