JavaScript基本数据类型及值类型和引用类型(2)

Null类型的值是null,它表示一个空对象指针,没有指向任何对象,如果一个变量的值是null,那当前变量很有可能就是垃圾收集的对象,使用typeof监测null值时会返回”object”,

var person = null; alert(typeof person);//”object”

建议:如果变量是要用来保存对象的额,则初始化为null,这样到时就可以检测该变量是否已经保存了一个对象的引用的,

注意:undefined值是派生自null的,所以对他们执行相等测试会返回true,如:

alert(null == undefind);//true

尽管如此,但是他们用途完全不同,无论在什么情况下都没必要将一个变量的值显示设为undefined,但是这个规则对null却不适用。

Boolean类型

这个类型只有两个值:true 和false。虽然只有两个值,但是javascript中所有类型的值都有与这两个值等价的值。要将一个值转换为对应的Boolean值,可以调用转型函数Boolean()  (其实Boolean ,Object,String,Number,Function等这些都是一个函数,构造函数,同样也可以理解为一个类,用类型调用toString()方法会返回这样的东西:

"function Function() { [native code] }"  ,Function会相应的改成各自的那个调用函数   )

其实在 if 语句判断中,会对里面的条件自动执行Boolean变化的。

Number类型

数值类型有很多值,最基本的当然就是十进制啦,如:     

var num=510;

除了十进制,整数还可以通过八进制或十六进制,其中八进制字面值第一位必须是0,然后是八进制数字序列,如果字面值中的数值超出了范围,那么前导零将被忽略。后面的额数值将被当做十进制数解析。

var num1=070;//八进制的56
var num2 =079;//无效的八进制—解析为79
var num3 =08;// 无效的八进制—解析为8

而十六进制前面则必须是0x,后跟十六进制数字(0~F),不分大小写。如:

var num1 = 0xA; var num2 = 0x1f;

虽然可以表示为八进制和十六进制,但是计算时会被转换成十进制值。

除了整数,还有浮点数值,当然了,没有像其他强类型语言中的float之类的关键字了。

var num1 = 1.1; var num2 =0.1; var num3 = .1;//有效,但不推荐

在保存整数时内存分配大小只有浮点数的1/2,所以当浮点数可以转换为整数时,javascript会自动转换为整数。

当然了,除了这些数值比较小的,还有一些极大或极小的数值,可以用科学计数法表示,

var num=123.456e10;

浮点数值的最高精度是17位小数,但是计算时其精确度远远不如整数。例如 ,0.1+0.2不等于0.3,而是0.3000000000000004,所以在做判断时,千万不要用浮点数相加判断等于预想中的某个值。

在javascript中数值最小的是Number.MIN_VALUE,这里可以想象成Number是一个类,而MIN_VALUE 是一个静态变量,储存最小值,同样,最大的是Number.MAX_VALUE。

如果计算中超出了这个最大值和最小值范围,则将被自动转换成Infinity值,如果是负数,就是-Infinity,整数就是Infinity,Infinity的意思是无穷,也就是正负无穷,跟数学中的概念是一样的。但是Infinity是无法参与计算的。可以用原生函数确定是不是有穷:isFinite();只有位于数值范围内才会返回true。

在Javascript中数值除了那些普通的整数、浮点数、最大值、最小值、无穷之外呢,还有一个特殊的值,就是NaN。这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。比如,在C#中任何数值除以0都会报错,抛出异常,但是在Javascript中,任何数值除以0会返回Nan,因此不会影响代码的执行。

NaN的特点:

1、任何设计NaN的操作(如:NaN/0)都会返回NaN.

2、NaN与任何值都不相等,包括NaN本身。如:

alert(NaN == NaN);//false

所以Javascript中有一个isNaN()函数,这个函数接收一个参数,任意类型,它会帮我们确定这个参数是否”不是数值”。它会先尝试先讲这个值转为数值。如果不能被转换为数值的值在调用这个函数之后会返回true,即is  NaN 非数值。

至于数值转换,这个内容在Javascript中扩展开来又是一篇文章,有时间再整理整理。

String类型

字符串可以由单引号或双引号表示,在Javascript中这两种引号是等价的,如:

var name = ‘jwy'; var author = “jwy”;

不过就是要注意正确嵌套。

字符串可以直接用字面量赋值。任何字符串的长度都可以通过访问气length属性获得。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wggjpp.html