亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

有個問題,新手請教

請問兩個=是什么意思呢,和一個=有什么不同嗎?兩者的作用有什么區別呢??謝謝

正在回答

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入門篇
  • 參與學習       741191    人
  • 解答問題       9866    個

JavaScript做為一名Web工程師的必備技術,本教程讓您快速入門

進入課程

有個問題,新手請教

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號