javascript 基礎知識 (待完善)

This 的指向

    1. 普通函數內的this指向全局變量

    2. 構造函數內部this指向新創建出來的對象

    3. 對象方法內的this指向的是調用該方法的對象

    4. call,apply,bind可以改變this的指向

 

POST和GET的區別

  1. GET提交的數據放在URL中,POST則不會。這是最顯而易見的差別。這點意味着GET更不安全(POST也不安全,因爲HTTP是明文傳輸抓包就能獲取數據內容,要想安全還得加密)
  2. GET回退瀏覽器無害,POST會再次提交請求(GET方法回退後瀏覽器再緩存中拿結果,POST每次都會創建新資源)
  3. GET提交的數據大小有限制(是因爲瀏覽器對URL的長度有限制,GET本身沒有限制),POST沒有
  4. GET可以被保存爲書籤,POST不可以。這一點也能感受到。
  5. GET能被緩存,POST不能
  6. GET只允許ASCII字符,POST沒有限制
  7. GET會保存再瀏覽器歷史記錄中,POST不會。這點也能感受到。

總之,兩者之間沒有本質區別,區別就在於數據存儲的位置。各自有適用環境,根據需求選擇合適的方法即可。


“use strict” 嚴格模式

1. ECMAScript 5 引入嚴格模式('strict mode')概念。通過嚴格模式,在函數內部選擇進行較爲嚴格的全局或局部的錯誤條件檢測,使用嚴格模式的好處是可以提早知道代碼中的存在的錯誤,及時捕獲一些可能導致編程錯誤的ECMAScript行爲。在開發中使用嚴格模式能幫助我們早發現錯誤。

2. 設立"嚴格模式"的目的,主要有以下幾個:錯誤檢測、規範、效率、安全、面向未來

  - 消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行爲;

  - 消除代碼運行的一些不安全之處,保證代碼運行的安全;

  - 提高編譯器效率,增加運行速度;

  - 爲未來新版本的Javascript做好鋪墊。

 3.  嚴格模式影響範圍

  • 變量:  var、delete、變量關鍵字
  • 對象: 只讀屬性、 對象字面量屬性重複申明
  • 函數:參數重名、arguments對象、申明
  • 其他:this、eval、關鍵字...

4.進入"嚴格模式"

這個語法從ECMAScript 3 開始支持。向後兼容不支持嚴格模式的瀏覽器,他們就當遇到了一個普通字符串,編譯時忽略。

"use strict";  

將"use strict"放在腳本文件的第一行,則整個腳本都將以"嚴格模式"運行。

如果這行語句不在第一行,則無效,整個腳本以"正常模式"運行。

如果不同模式的代碼文件合併成一個文件,這一點需要特別注意。

(嚴格地說,只要前面不是產生實際運行結果的語句,"use strict"可以不在第一行,比如直接跟在一個空的分號後面。) 

 

<script>  
  "use strict";  
  console.log("這是嚴格模式。");  
</script>  
<script>  
 console.log("這是正常模式。");  
</script>

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章