var s3 = new String(s1); var s5 = s3; alert(s3==s5)这样就能返回true了
new 运算符执行下面的任务: 创建一个没有成员的对象。 为那个对象调用构造函数,传递一个指针给新创建的对象作为 this 指针。 然后构造函数根据传递给它的参数初始化该对象。 所以S3==S4是False,因为对象传递的是地址,而S3、S4的地址是不同的==是判断语句,=是赋值语句。在if()中我还没见过有用=的呢,至少我在C++中没见过,对于js我也不是很了解。
new 的时候就跟Java一样了.可以看做是引用. 也就是s3指向一个新的字符串"hello",而s4指向另一个新的字符串"hello", 也可以当做内容一样,但地址不一样.... s1==s2是比较的内容,这个是javascript的机制.
s3==s4 S3和S4不是数字,不能用==
正确比较是
if(s3=s4) 返回是true
S3和S4 现在是2个对象 所以比较要用
正确比较是
if(s3=s4) 返回是true
尤其是= 和 == ,写if语句判断相等 ,还是习惯性就写==了。
var s5 = s3; alert(s3==s5)这样就能返回true了
为那个对象调用构造函数,传递一个指针给新创建的对象作为 this 指针。
然后构造函数根据传递给它的参数初始化该对象。
所以S3==S4是False,因为对象传递的是地址,而S3、S4的地址是不同的==是判断语句,=是赋值语句。在if()中我还没见过有用=的呢,至少我在C++中没见过,对于js我也不是很了解。
new 的时候就跟Java一样了.可以看做是引用. 也就是s3指向一个新的字符串"hello",而s4指向另一个新的字符串"hello",
也可以当做内容一样,但地址不一样....
s1==s2是比较的内容,这个是javascript的机制.