JavaScript中容易忽略的知識點

本文整理了JavaScript中容易出錯,或者易被忽略的知識點。

1. String是不可變類型

字符串類型String是不可變類型,也就是說,字符串本質上是不能改變的。

var s1 = "abc";
var s2 = s1;
s2+="ef";
console.log(s1); // "abc"
// 這個例子,也可以從“簡單類型的賦值是值賦值”角度來分析
2. null類型是一個假對象

null是對象類型,typeof null === "object",含義為“沒有任何對象引用”。注意,這點和undefined 不同,undefined值變量沒有初始化賦值。

null沒有對應的Null類,因此,它無法繼承Object原型上的任何方法。

null.toString(); // Uncaught TypeError: Cannot read property 'toString' of null
3. 為什么簡單類型字符串可以調用方法?

聲明一個字符串var str = "abc";,調用方法str.toUpperCase()將其轉為大寫,這時,字符串會先隱式轉換為字符串對象,然后調用String.proptype上面的toUpperCase方法。

4. 兩個不同類型的值如何做相等判斷?

如果是其中一個值是簡單類型,那么,將兩者都隱式轉換為數值類型之后,再根據數值比較大小。

如果一方為字符串值,另一方為對象引用,那么,調用Object.toString()將對象引用轉為字符串之后,再對兩個字符串內容進行比較。

5. <a href="javascript:void(0)">為什么會阻止頁面跳轉?

如果href屬性中的表達式有值,a標簽將其認為是有效的url并跳轉到該頁面。

如果href屬性設置為undefined,a標簽認為是無效url,不會跳轉。

<!-- 發生跳轉-->
<a href="null">click me</a> 
<!-- 不發生跳轉-->
<a href="">click me</a>

void是一個操作符,該操作符指定要計算一個表達式但是不返回值。所以,<a href="javascript:void(0)">的返回值為undefined,點擊a標簽不會發生頁面跳轉。常用如下方式提交表單:

<a href="javascript:void(document.form.submit())">
6. 0.1 + 0.2 != 0.3

JavaScript采用“IEEE 754 標準定義的雙精度64位格式”表示數字,所以,JavaScript不區分整數值和浮點值,所有數字都用浮點值表示
測試結果為:

0.1 + 0.2 === 0.30000000000000004
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,270評論 0 4
  • 1.HTML DOM (Document Object Model) document.getElementByI...
    廖馬兒閱讀 1,450評論 0 17
  • 果然,人是不能多想的,因為一旦多想之后,便會有各種各樣的痛苦,師姐今天送給我了一份面試資料,一下子感覺時間非常緊迫...
    閱讀修身閱讀 433評論 0 0
  • 5.1開始了我的SMM互助群,到今天整整一個月。三月份參加了好報的寫作群,四月份參加了陳優君的早起群,然后萌生...
    JC賈閱讀 665評論 0 1
  • 我:“弘樂!” 弘樂:“干嘛?” 我:“弘樂!” 弘樂:“干嘛???” 我:“沒事,你名字好搞笑,我叫著玩。” 弘樂...
    蔡凡閱讀 785評論 0 1