JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)

1.3种原始表达式

    1.直接量:    1.23    //数字直接量
                        “hello”    //字符串直接量
                        ...
    2.保留字构成的原始表达式:
        true    //返回布尔值:真
        false    //假
        null    //返回一个值:空
    3.变量:
        i    //返回变量i的值
        sum    //返回sum的值
 
2.对象初始化表达式
    
var p={
        x:2.3,
        y:-1.2
    }    //一个拥有两个属性成员的对象
 
    对象直接量也可以嵌套:
    
var rea={
        upp:{
            x:2,
            y:2
        },
        low:{
            x:4,
            y:5
        }
    }
 
3.左值
    左值是个古老的术语,它是指表达式只能出现在赋值运算符的左侧
 
4.值比较的问题
两个值在比较的时候会出现类型转换的问题。(这种转换只是针对相等运算符,也即是“==”)
在全等运算符===中不会出现任何类型转换。
转换的规则是:对象转换为原始值,然后在进行比较。对象通过toSrting()方法或valueOf()方法转换为原始值。
如:“1”==true    //结果是:true
首先布尔值true转换为数字1,然后执行比较
“1”==1
然后字符串“1”转换为数字1
1==1
因为两个数字的值相等,因此比较结果为true
 
5.in运算符
in运算符希望左侧是个字符串或者可以转换为字符串,希望右侧是个对象
例子:
   
 var point={
        x:1,
        y:2
    }
    "x" in point    //结果是true,对象point中有一个名为x的属性
  “toString”in point     //结果是true,对象继承了toString()方法
 
6.instanceof运算符
希望左侧是个对象,右侧是对象的类
例子:
    
var d=new Date();
    d instanceof Date;    //true
    d instanceof  Object    //true,所有的对象都是Object对象的实例
    d instanceof Number      //false,d不是Number对象
 
    为了计算表达式:o    instanceof    f。JavaScript首先计算f.prototype,然后在原型链中查找o,如果找到,那么o是f的一个实例,表达式返回true。如果f.prototype不在o的原型链中,那么o就不是f的实例,返回false。

posted on 2015-09-10 22:06 qize 阅读(...) 评论(...) 编辑 收藏

导航

公告