This 的指向
1. 普通函數內的this指向全局變量
2. 構造函數內部this指向新創建出來的對象
3. 對象方法內的this指向的是調用該方法的對象
4. call,apply,bind可以改變this的指向
POST和GET的區別
- GET提交的數據放在URL中,POST則不會。這是最顯而易見的差別。這點意味着GET更不安全(POST也不安全,因爲HTTP是明文傳輸抓包就能獲取數據內容,要想安全還得加密)
- GET回退瀏覽器無害,POST會再次提交請求(GET方法回退後瀏覽器再緩存中拿結果,POST每次都會創建新資源)
- GET提交的數據大小有限制(是因爲瀏覽器對URL的長度有限制,GET本身沒有限制),POST沒有
- GET可以被保存爲書籤,POST不可以。這一點也能感受到。
- GET能被緩存,POST不能
- GET只允許ASCII字符,POST沒有限制
- 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>