JS基礎知識11-20

隨學隨整理,養成隨手做筆記的習慣
11. 斷點調試: 在Chrome裏找到Source,指向有效代碼第一行,按F5即只會執行動此處,表示這行代碼未執行狀態,按下箭頭
12. 可以通過arguments獲取函數調用時的實參,但不是數組,不過可以當數組用,當傳參個數固定時推薦在函數中使用形參,但當出現“任意”字段時,推薦使用arguments調用。在這裏插入圖片描述
13. 閏年:能被4整除但不能被100整除;或者能被400整除
14. 函數聲明:
---- 命名函數:function +函數名(){}
----匿名函數:var fn=function(){};匿名函數可以實現自調用!!當函數書寫完後立即調用,後面那個括號就是自調用
----函數也是一種數據類型,也可以作爲函數形參,或者返回值,但返回值用到的是匿名函數
在這裏插入圖片描述
15.作用域:變量或函數可以起作用的範圍。ECMAScript是JS的語法規範;
1)全局作用域:在script或者一個獨立的js文件中,在全局作用域中定義的變量,在任何位置都可以訪問。
2)局部作用域:任何一個函數的內部都有一個局部作用域,在局部作用域中定義的變量稱爲局部變量,局部變量只有在定義該變量的函數中可以訪問
16.JS代碼執行前會進行一個預解析:
1)變量提升:把變量的聲明提升到當前作用域的最上面,但不包括變量的賦值
2)函數提升:同上,但不包括函數的調用
如:

console.log(num);
var num=5;

預解析後:

var num;
console.log(num);//輸出undefined
num=5;

在預解析過程中如果函數和變量名字相同,則函數優先。

function f1(){
	var a=b=c=9;//這樣定義則a是函數內局部變量,而b,c是全局變量,
}			//相當於:var a=9;b=9;c=9

17.方法中this表示當前的對象指針
18.對象創建方式:
1)對象字面量:var hero={a: ;b: ;c: }
2)var hero=new Object():new是關鍵字,Object是構造函數,()是函數調用;這樣會在內存中創建一個對象,通過new方式調用構造函數,此時可以動態給對象加屬性,如hero.name=‘xxx’;
3)通用創建多個對象(工廠方法)

function creatHero(name,age){
   var hero=new Object();
   hero.name=name;
   hero.age=age;
   return hero;
}

4)定義多個對象可以自定義構造函數,其中每個單詞的首字母都要大寫

function Hero(name){
	this.name=name;
}
var hero=new Hero("xxx");

19.new關鍵字執行過程:
1)在內存中創建一個空對象;
2)讓構造函數中的this指向剛剛創建的對象
3)執行構造函數,在構造函數中設置屬性和方法
4)返回當前對象
20.this在函數中指向window;
this在方法中指向這個方法所屬的對象;
this在構造函數中指向構造函數中創建的對象即new創建出來的

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