s3 s4在new以后是两个不同对象了

解决方案 »

  1.   

      alert(s3.toString()==s4.toString()); // true;
      

  2.   

    s1==s2 是2个数字之间的比较所以是true 
    s3==s4 S3和S4不是数字,不能用==
    正确比较是
    if(s3=s4)  返回是true
      

  3.   

    ==表示2个值之间比较
    S3和S4  现在是2个对象 所以比较要用
    正确比较是 
    if(s3=s4)  返回是true
      

  4.   

    s3   s4是对象,只能用= ,不能用==那么    =   ==   ===   到底有什么区别?     
    尤其是=  和  == ,写if语句判断相等 ,还是习惯性就写==了。
      

  5.   

    var s3 = new String(s1); 
    var s5 = s3; alert(s3==s5)这样就能返回true了
      

  6.   

    new 运算符执行下面的任务: 创建一个没有成员的对象。 
    为那个对象调用构造函数,传递一个指针给新创建的对象作为 this 指针。 
    然后构造函数根据传递给它的参数初始化该对象。 
    所以S3==S4是False,因为对象传递的是地址,而S3、S4的地址是不同的==是判断语句,=是赋值语句。在if()中我还没见过有用=的呢,至少我在C++中没见过,对于js我也不是很了解。
      

  7.   


    new 的时候就跟Java一样了.可以看做是引用. 也就是s3指向一个新的字符串"hello",而s4指向另一个新的字符串"hello",
    也可以当做内容一样,但地址不一样....
    s1==s2是比较的内容,这个是javascript的机制.