1、對象前端
1.對象的功能 :想要存數據的時候寫數據 對象就是用來存數據的; 對象能夠儲存結構很是複雜的數據;編程
擴展: 基本數據類型:string number undefined null Boolean json
引用數據類型: 數組 函數 後端
數組用映射的方式存儲數據 包含 key value鍵值對 是有序結構 key是自動生成自動 遞增的東西 eg:var arr = [1,2,3,4,5] 數組
對象是一個複雜映射 是無需自定義結構 能夠快速的對數據進行查找; 避免重名的尷尬; 語義化更好了;瀏覽器
2.怎麼把數據存入對象之中? 抽象;結構化數據;安全
對象裏面放的抽象的數據 優點:有自定義的名稱 cookie
拓展: json 屬於後端的術語 後端返回給前端的是字符串 json外部用{}包裹函數
2、this工具
this指向存在兩種狀況,一是在普通函數中,二是在構造函數中。this關鍵字只出如今函數體中。
(一)普通函數:
1.this指向:在函數之中(普通函數),誰是當前函數的調用者(調用者),函數體內this的指向就指向誰
2.全部沒有xxx(對象).調用的函數 都是window所屬的函數
全部回調函數默認狀況下,this指向都爲window;
(二)構造函數:
1.如何區分一個函數是普通函數仍是構造函數? 看調用方式 是否用new調用;
2.構造函數爲了面向對象編程而服務;
3. 構造函數:能夠創造自定義對象的函數;
4. instanceof 辨別某個對象來自於哪一個構造函數
eg: function Foo(){ };
Foo函數的實例化對象 屬於兩個構造函數 object / Foo
構造函數構造了一個對象;
5. 如何向這個構造出來的對象(實例對象)編寫方法;
eg: function Foo(){
// 構造函數內部,給對象編程,放入屬性和方法;
//更改了構造函數內部的this指向;
//this 進行編程
//構造函數實際上是對this(實例化對象)進行編程的地方
}
實例化對象都有名字
實例化對象和構造函數內部的this指向是一個對象
構造函數內部的this指向,指向實例化對象,
6.this指向只找第一層函數 ,就近原則
總結:this指向狀況
1.普通函數
2.構造函數 1.沒有xxx.調用的函數一概指向window 2.就近原則
3、面向對象的工具
1.面向對象的工具:1.構造函數 2.原型對象
2.原型是幹嗎的,是公用的。
3.任意函數的原型:prototype;
4.constructor 代表了原型屬於哪一個函數,能夠更改,通常不改
5.__proto__原型指針 原型鏈的原理
6.把引用類型放在原型之中的好處
js自己有一個找尋機制
原型鏈 : 根據原型規則進行數據查詢
1.實例化對象之中 存在 原型指針
2.對象訪問數據的時候 會根據原型鏈規則進行數據查詢(原型鏈),進行數據查找
訪問對象之中一個數據的時候
1.若是有 直接返回
2.若是沒有 查看 是否存在原型指針__proto__ 若是沒有 undefined
3.若是沒有那麼沿着指針繼續查找 返回原型內的數據
每一個實例化對象之中 必定有一根原型指針指向當前構造函數的原型對象
咱們不把數組或對象直接放在原型上
原型對象上儘可能別放引用類型
在面向對象編程的時候 咱們推薦把數據放在構造函數裏(確保每一個對象的數據來源獨立),把方法放在原型之中(確保方法能夠複用)
4、http,https ,cookie
http:協議
https耗性能 但安全
兩者是先後端交互或通訊的協議
1.保證數據完整性 傳輸結束以後 斷開鏈接
2.保證高性能地數據傳輸
3.即用即走 缺點:不知道你是誰 無狀態協議
由於無狀態協議容易形成很是糟糕的用戶體驗 因此咱們要給每一個http協議打上標籤
誰對cookie有操做權限?
此次http通過的全部人都對cookie有操做權限 前端 後端 ;
CSRF(跨站點請求僞造) XSS (腳本注入) 可能會遭受兩者攻擊,
加密後放在前端的cookie 叫 tocken
cookie 是 http 的身份牌
GET 只有header,沒有body; POST 纔有 body;
1.header 部分用來驗證
2.body 用來裝載內容
一旦在瀏覽器上設置了cookie 那麼這條cookie 就會跟隨全部對應的域名的http請求
每一個域名都有一套獨立的cookie cookie遵循同源策略
cookie的特性
1.時效性
2.cookie是純文本
3.cookie 大小限制 4kb
4.條數限制 50條
5.同源策略 訪問路徑是有限制的
cookie的本質 :瀏覽器建立的一個帶有數據的文件