类型、值和变量(二)

布尔值

布尔值指代真或假、开或关、是或否。这个类型只有两个值保留字true和false。任意JavaScript的值都可以转换为布尔值。如undefined、null、0、-0、NaN、"" (空串)都会被转换成false。所有其他值,包括所有对象(数组)都会转换成true。

例如: 

        a==4     //检测变量a的值是否为4,如果等于,结果为true,如果不等,结果为false。

“&&”运算符执行了逻辑与(AND)操作,当且仅当两个操作数都是真值的时它才返回true,否则返回false。

“||”运算符执行了逻辑或(OR)操作,如果两个操作数其中一个为真值它就返回true,如果两个操作数都是假值则返回False。

“!”运算符执行了不二非(NOT)操作,如果操作数是真值则返回false,如果是假值,则返回true。

全局对象:全局对象在JavaScript中有着重要的用途:全局对象的属性是全局定义的符号,JavaScript程序可以直接使用。

包装对象:JavaScript对象是一种复合值,它是属性或已命名值的集合,通过“.”符号来引用属性值。当属性值是一个函数的时候,称其为方法。

JavaScript中的原始值(undefined、null、布尔值、数字和字符串)原始值是不可更改的,任何方法都无法更改一个原始值。字符串看起来很像由字符组成的数组,我们期望可以通过指定的索引来修改字符串中的字符。实际上,JavaScript是禁止这样做的。字符串中所有的方法看上去返回了一个修改后的字符串,实际上返回的是一个新的字符串值。

例如:

    var s="hello";        

    s.toUpperCase();    //返回“HELLO”,但并没有改变s的值

   s        //=>hello,原始字符串的值并没有改变

对象和原始值不同,对象是可变的,也就是说对象是可修改的。

例如:

     var   a={x:1};

     a.x=2;        //通过修改对象属性值来更改对象

对象的比较并非值的比较,即使两个对象包含同样的属性及相同的值,它们也是不相等的。各个索引元素完全相等的两个数组也不相等

例如:

    var a={x:1},p={x:1};

   a===p //=>false:两个单独的对象永不相等。

对象的比较均是引用的比较,当且仅当它们引用同一个基对象时,它们才相等。

例如:

   var  a=[];

   var b=a;

   b[0]=1;

   a[0]   //=>1:变量a也会修改

   a===b   //=>true:a和b引用同一数组对象,因此他们相等

类型转换

 例如:null==undefined   //=>true

           "0"==0   //=>true

           0==false  //=>true

           "0"==false   //=>true

显式类型转换:做显式类型转换最简单的方法就是使用Boolean()、Number()、String()、Object()函数。

变量声明

   在JavaScript中,使用一个变量之前应当先声明。变量是使用关键字var来声明的。如果未在var声明语句中给变量指定初始值,默认的初始值为undefined。

例如:

  var i,sum;

变量作用域:一个变量的作用域是程序源代码中定义这个变量的区域。局部变量的优先级高于同名的全局变量。


猜你喜欢

转载自blog.csdn.net/zmeilin/article/details/79824761
今日推荐