为了账号安全,请及时绑定邮箱和手机立即绑定

有个问题,新手请教

请问两个=是什么意思呢,和一个=有什么不同吗?两者的作用有什么区别呢??谢谢

正在回答

5 回答

关于等于好 JS里有 = ,==,===

纯手打,请采纳:

如果你刚开始学JS可能看不懂我下面说的,但是= 和 == 你肯定能看得懂。 耐着性子看完,等到学到后边再回头看我说的这个答案,你就会明白我说的是什么意思了。


=就是赋值,比如  a = 100。 再alert(a); 就会弹窗100了。

==是两个变量内容的比较,结果相同返回true,结果不同返回false。

比如:

var a = 1;

var b = 1;

if(a == b)    //    判断a和b是否想等,如果想等执行 alert(); 语句。

{

    alert("a等于b!");

}

但是如果你这样写:

if(a = b)

{

    alert("a等于b");

}

这个语法是错误的。  因为 a = b  是把a的值赋值给b。 但是没有返回值。所以就无法用if语句来判断了。


== 和 === 是比较

1、对于string,number等基础类型,==和===是有区别的

1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等

例如:alert(1=="1");
        alert(1==="1");

第一个结果是true,第二个结果是false

2)同类型比较,直接进行“值”比较,两者结果一样

例如:alert(1==1);
        alert(1===1);

两个结果都是true.

2、对于Array,Object等高级类型,==和===是没有区别的

进行“指针地址”比较

就是他们指向的内存里的地址值。

比如:

var a = new Array();
        var b = new Array();
        alert(a==b);        //false
        alert(a===b);    //false
        var c = new Array();
        var d = c;
        alert(c==d);        //true
        alert(c===d);    //true

a和b相比为false,是因为他们两个是不同的对象,在内存里分配了两块不同的空间,也就意味着他们的内存地址不同,再因为高级类型的==还有===都是进行指针地址的比较,所以都是false

d和d相比为true,是因为c在内存里创建了一个对象。然后c指向了这个对象。然后d等于c,所以他俩指向的是同一个对象。 所以两个都是true。

3、基础类型与高级类型,==和===是有区别的

1)对于==,将高级转化为基础类型,进行“值”比较

        var a = new Array();
        a[0] = "测试";
        var b = "测试";
        alert(a==b);    //true
     把b的第一个数组内的值拿出来转换成基础类型和b进行比较。他俩都是字符串"测试",所以是true

2)因为类型不同,===结果为false

 var a = new Array();
        a[0] = "测试";
        var b = "测试";
        alert(a===b);    //false

因为a是高级类型里的数组类型,而b是基础类型里的String(字符串)类型。 所以类型不同,为false。

2 回复 有任何疑惑可以回复我~
#1

tracylovetmac1 提问者

谢谢你的回答,有帮助,明白了谢谢
2016-06-18 回复 有任何疑惑可以回复我~
#2

超神的丶乔巴 回复 tracylovetmac1 提问者

最后一点有个错误,基础类型与高级类型比较: var a = new Array(); a[0] = "测试"; var b = "测试"; 其实应该是:alert(a[0]==b); //true 但是alert(a==b);也是为true,这是因为JS会直接把数组里的第一个值拿出来进行比较。所以为true 如果是 a[0] = "111"; a[1] = "测试" 那么比较结果就为false了。
2016-06-18 回复 有任何疑惑可以回复我~

= 是赋值, == 是比较

0 回复 有任何疑惑可以回复我~

=一般是赋值,如int a=2;就是将数值2赋给变量a。==是判断符号,如语句:2==3  判断结果就是错误,返回一个真假值(true/false)(在C语言中没有true、false。0代表false,1代表true)。希望可以解决。

0 回复 有任何疑惑可以回复我~

= 是赋值, == 才是比较

0 回复 有任何疑惑可以回复我~

一个是赋值语句中使用,两个在if 等判断语句(条件)中使用

0 回复 有任何疑惑可以回复我~
#1

tracylovetmac1 提问者

也就是说一个=一般用于赋值,比如var变量的赋值,而两个=一般用在判断语句中,是这样理解吗??谢谢
2016-06-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript入门篇
  • 参与学习       739727    人
  • 解答问题       9566    个

JavaScript做为一名Web工程师的必备技术,本教程让您快速入门

进入课程

有个问题,新手请教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信