国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

你必須知道的Javascript知識點之"字面量和對應類型"說明介紹

2019-11-20 22:47:11
字體:
來源:轉載
供稿:網友

代碼示例:

復制代碼 代碼如下:

var date1 = new Date(2013,1,1);
 var date2 = new Date(2013,1,1);
 date1 == date2;  //執行結果為false
 date1 === date2;  //執行結果為false

 var num1 = new Number(10);
 var num2 = new Number(10);
 num1 == num2;  //執行結果為false
 num1 === num2;  //執行結果為false
 num1 == 10;  //執行結果為true
 10 == num2;  //執行結果為true
 num1 === 10;  //執行結果為false
 10 === num2;  //執行結果為false

之所以要寫這個主題,是因為日期類型的比較經常會出現意想不到的錯誤,幾乎每個剛接觸javascript的開發人員都會遇到這個問題。

到底是為什么
規則1
javascript中一切都是對象(引用類型),除了這幾個類型的字面量(值類型):Boolean(如:true)、Number(如:100)、undefined、null。

規則2
引用類型之間用"=="或“===”做比較運算時,只要兩者不是指向同一份內存地址,都會返回false。

代碼示例

復制代碼 代碼如下:

var date1 = new Date(2013,1,1);
var date2 = new Date(2013,1,1);
date1 == date2;  //執行結果為false
date1 === date2;  //執行結果為false

圖片示意

規則3

引用類型和對應的值類型之間用“=="做比較運算時,會先進行類型轉換,然后進行比較。

代碼示例

復制代碼 代碼如下:

var num1 = new Number(10);
  var num2 = new Number(10);
  num1 == 10;  //執行結果為true
  10 == num2;  //執行結果為true

規則4引用類型和對應的值類型之間用“==="做比較運算時,始終返回false。

代碼示例

復制代碼 代碼如下:

var num1 = new Number(10);
  var num2 = new Number(10);
  num1 === 10;  //執行結果為false
  10 === num2;  //執行結果為false

特殊的String類型
string是特殊的引用類型,javascript解釋器遇到兩個一樣的字面量會未他們分配同一個內存地址,javascript本身也保持值語義(一旦創建不能修改)。
代碼示例
復制代碼 代碼如下:

var str1 = new String('hello');
 var str2 = new String('hello');
 var str3 = 'hello';
 var str4 = 'hello';

 str1 == str2  //指向結果為false
 str1 === str2  //指向結果為false
 str3 == str4  //指向結果為true
 str3 === str4  //指向結果為true
 str2 == str4  //指向結果為true
 str2 === str4  //指向結果為false

圖片示意

值類型的內存格局

代碼示例

1 var num1 = 1;2 var num2 = 1;

圖片示意

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇沅| 张北县| 通州区| 丁青县| 定安县| 抚宁县| 夹江县| 彩票| 潍坊市| 襄汾县| 同仁县| 石城县| 秭归县| 达孜县| 尉犁县| 阿拉善盟| 阜新市| 光山县| 禄丰县| 边坝县| 双牌县| 东山县| 孟州市| 石首市| 睢宁县| 黔南| 阳西县| 乐亭县| 全州县| 南安市| 黎城县| 平阳县| 丘北县| 墨江| 彝良县| 崇左市| 侯马市| 华宁县| 广丰县| 甘泉县| 日土县|