var aaa = {
i: 10,//var i=10或i=10出错
valueOf: function(){
alert("调用了valueOf函数");
return this.i + 30;},//为什么后面要用逗号,分号出错
toString: function(){
alert("调用了toString函数");
return this.valueOf() + 10;}
}alert(aaa > 20);
alert(+aaa);
alert(aaa);

解决方案 »

  1.   

    {i:10}这是对象的字面量的定义方式。语法规定是
    {属性名1: 属性值1, 属性名2: 属性值2, 属性名3: 属性值3}而var i=10是定义变量的,不能用于对象的字面量中。这是语法规定
      

  2.   

    问题2因为这个function(){}是个“函数表达式”,是作为对象字面量中的属性值的,语法规定在对象字面量中的属性值与下一个属性名之间用逗号分隔