console.log();輸出优俘,可以直接輸出變量京办,要輸出字符串"xxx"
也可以用c的printf格式輸出。不過帆焕,占位符的種類比較少惭婿,只支持字符(%s)、整數(shù)(%d或%i)叶雹、浮點(diǎn)數(shù)(%f)和對象(%o)四種审孽。
目前就了解一點(diǎn),覺得js是一個(gè)不要求變量類型的語法浑娜,應(yīng)該和php類似佑力,萬物皆是var出來的,我是把它看成字符串型筋遭,然后需要的時(shí)候進(jìn)行強(qiáng)轉(zhuǎn)打颤,然后判斷==是弱等于,會把左右兩邊自動轉(zhuǎn)化成同一類型進(jìn)行比較漓滔,可以進(jìn)行判斷是否完全相等编饺,使用===
函數(shù)的話就是?function aaa(bbb){}這個(gè)樣子
有個(gè)輸出的地方要注意?console.log輸出變量顯示問題
Object value at left was shapshotted when logged, value below was envalueated jast now
什么意思呢?就是說這個(gè)標(biāo)記左邊的值是代碼運(yùn)行到這句時(shí)變量的快照响驴,而下面的值是你展開這個(gè)對象時(shí)才評估的值透且,這樣的設(shè)計(jì)是為了防止代碼運(yùn)行過程中 log 語句進(jìn)行 snapshot 占用大量資源拖慢代碼運(yùn)行。所以在這個(gè)標(biāo)記后面兩次都輸出 bbb 是正確的豁鲤。
作用域:var在函數(shù)里定義的才是局部變量秽誊。直接使用變量不聲明則是隱式全局變量,函數(shù)里也是全局的
預(yù)解析:變量聲明提升在函數(shù)聲明上面琳骡。var a=b=c 相當(dāng)于定義var a和兩個(gè)隱式全局變量b锅论、c
類存在堆里,對象的值存在堆上楣号,引用地址放在棧里
基本包裝類型:本身是基本類型最易,但是可以調(diào)用了類方法或者屬性怒坯,就是基本包裝類型(由變量->對象)。new一個(gè)普通類型就變成對象了藻懒。比如在判斷true false的時(shí)候 剔猿。true&&對象->對象? 對象&&true->ture
```
//1 調(diào)用構(gòu)造函數(shù)創(chuàng)建對象
? ? var obj=new Object();
? ? //2. 自定義構(gòu)造函數(shù)創(chuàng)建對象
? ? //自定義構(gòu)造函數(shù)
? ? function Person(name,age) {
? ? ? this.name=name;
? ? ? this.age=age;
? ? ? this.sayHi=function () {
? ? ? ? console.log("您好,我叫:"+this.name);
? ? ? };
? ? }
? ? //創(chuàng)建對象----實(shí)例化一個(gè)對象,并初始化
? ? var per=new Person("小明",20);
? ? per.name="張三";
? ? //四件事:
? ? /*
? ? * 1. 開辟空間,存儲創(chuàng)建的新的對象
? ? * 2. 把this設(shè)置為當(dāng)前的對象
? ? * 3. 設(shè)置對象的屬性和方法的值
? ? * 4. 返回創(chuàng)建后新的對象
? ? * */
3.字面量的方式
? ? var obj2={
? ? ? name:"小明",
? ? ? age:20,
? ? ? sayHi:function () {
? ? ? ? console.log("我是:"+this.name);
? ? ? }
? ? };
```
作用域:var在函數(shù)里定義的才是局部變量。直接使用變量不聲明則是隱式全局變量嬉荆,函數(shù)里也是全局的
預(yù)解析:變量聲明提升在函數(shù)聲明上面归敬。var a=b=c 相當(dāng)于定義var a和兩個(gè)隱式全局變量b、c
類存在堆里员寇,對象的值存在堆上弄慰,引用地址放在棧里
實(shí)例對象的構(gòu)造器(構(gòu)造函數(shù)) 指向該構(gòu)造函數(shù)(es5沒有class概念)
person.construcor == Person
person._proto_.construcor = Person
實(shí)例對象的屬性__proto__ 其實(shí)等于構(gòu)造函數(shù)的prototype屬性第美,這兩個(gè)都是原型對象
//通過原型添加方法蝶锋,解決數(shù)據(jù)共享,節(jié)省內(nèi)存空間
Person.prototype.eat = function(){}
訪問屬性和方法的時(shí)候什往,先對象本身扳缕,然后去創(chuàng)建該對象的構(gòu)造函數(shù)的原型里找