1.做用域前端
棧內存 js執行的環境 (做用域)數據庫
堆內存 存放代碼的空間 存放方式 鍵值對的形式存 字符串的形式存json
Js代碼在執行以前,瀏覽器會給他一個全局做用域叫window,每一個做用域下分連個模塊,一個是內存模塊,一個是執行模塊。內存模塊會給全部的變量一個內存地址。變量的聲明在js中靠關鍵字var 和function 。瀏覽器
2.何時會有做用域的造成?函數
瀏覽器天生有一個全局的叫windowprototype
函數執行的時候會造成一個私有的。對象
Js在執行以前,瀏覽器會給他一個全局做用域叫window,在window下分兩個模塊,一個是內存,一個是執行,內存會找到全部的關鍵字var和function 對變量進行提早聲明(這個功能叫變量提高)給每一個變量分配一個內存地址。在執行模塊遇到變量首先會在本身的做用域下經過內存地址去查找這個變量是否存在,若是有就直接操做,沒有就向他的上一級做用域的內存模塊查找,若是有就操做,沒有就繼續向上查找,直到window。這種查找機制叫做用域鏈。內存
變量命名衝突作用域
若是普通變量和函數變量命名相同,最後保留函數變量。開發
3.= 賦值運算
1.賦值運算,就是把後面的數據賦值給等號前面的變量。
後面的數據分兩種狀況
4.object和json兩者
1.長的同樣,都以鍵值對的形式書寫,object的key能夠不加引號,可是json必須加
2.object是前端的數據類型,json是數據庫存放的數據格式。
5.object 對象
1.對象的定義
字面量定義 var obj={name:」張三」}
類的實例 var obj=new Object() obj.name=」張三」;
類的階梯
類的本質是function
類和實例的關係
1.每一個類(函數)都有一個prototype的屬性,這個屬性是一個對象,裏面有一個constructor的屬性,屬性值就是這個類自己。
2.每一個實例(對象)都有一個__proto__的屬性,這個屬性也是一個對象,它指向當前類的原型。
3.prototype和__proto__
兩者都叫原型,前者是存放屬性的對象,後者是查找屬性的,前者給開發者使用,後者給瀏覽器使用。