資料型別:
作用域
每個函式都有自己的執行環境,執行環境定義了變數有權訪問的其他資料,決定了他們各自的行為。
每個執行環境都有乙個與之關聯的變數物件(variable object),環境中定義的所有變數或函式都儲存在這個物件中。
當**在乙個環境中執行時,會建立變數物件的作用域鏈
js沒有塊級作用域
函式宣告與函式表示式
function test(){}//函式宣告,他的重要特性是函式宣告提公升遞迴保險的遞迴寫法(命名函式表示式):var test=function(){}//函式表示式
1閉包建立閉包:在乙個函式內部建立另乙個函式;var factorial = (function
fa(num)else
8 });
作用:延長變數的作用域鏈
原理:內部函式的作用域鏈包含外部函式的作用域鏈
缺點:過度使用可能會造成記憶體洩露
例子:這個例子中寫了兩個按鈕,點選按鈕的時候彈出此按鈕被點選的次數。
1這個例子可以形象地描述乙個閉包:showclicknumber函式內部先定義了乙個變數number用於計數,然後返回乙個匿名函式;<
body
>
2<
button
id="btn1"
onclick
="test1()"
>btn1
button
>
3<
button
id="btn2"
onclick
="test2()"
>btn2
button
>
4<
script
>
5var
test1
=showclicknumber();
6var
test2
=showclicknumber();
7function
showclicknumber()13}
14script
>
15body
>
在這個匿名函式裡面,我們使用到了外部函式的number變數;
這樣雖然showclicknumber函式執行完了,但它的內部變數number也不會銷毀,因為他還在被test1,test2方法引用。
雖然只申明了乙個變數,兩個按鈕卻會各自統計各自的點選數量,不會相互影響
關於this物件
this物件是在執行時基於函式的執行環境繫結的
1、在全域性函式中:this=window;
2、函式作為某個物件的方法被呼叫時:this=物件;
模仿塊級作用域--私有作用域
(functionjs沒有塊級作用域的概念,用這樣乙個自執行的函式(閉包)包起來,它裡面的變數就成了區域性變數,還可以提高執行速度())();
建立物件的推薦方式
1、組合使用原型模式和建構函式模式
function2、動態原型模式persion(name,age,job)
//protocol指向函式的原型物件,原型物件會自動獲得constructor(建構函式)屬性
//constructor包含乙個指向prototype屬性所在函式的指標
//通過constructor,還可以為原型物件新增其他屬性和方法
//下面的**,我們重置了persion原型,應該為constructor賦值,否則就丟失了constructor值
persion.prototype=
}
1function
persion(name,age,job)9}
10 }
JS一些簡單基礎知識
1,引入外部js樣式 2,行內樣式 3,寫入 寫在函式外面的一定是全域性變數寫在函式裡面的是區域性變數。宣告乙個函式,必須呼叫函式,如果不呼叫函式相當於函式沒有寫,如果沒有加var,此時這個變數只能是全域性變數,不管在函式外還是函式內。資料型別分為基本資料型別和引用資料型別,6大基本資料型別有num...
一些基礎知識
關於cd cd 返回剛才的位置 關於ls ls l,簡寫ll ls a顯示的檔案以.開頭,隱藏檔案 la al 關於cp cp r tmp dir 拷目錄 tmp拷到dir 需要加 r的 cp rm 10 13 1.grep 在乙個字元集合中找到符合條件的行輸出 如 grep hello file ...
一些基礎知識
linux基礎知識考查 1 在linux 系統中,以 檔案 方式訪問裝置 2 前台起動的程序使用 ctrl c 終止。3 在使用ls 命令時,用八進位制形式顯示非列印字元應使用引數 b 4 在linux 系統中,用來存放系統所需要的配置檔案和子目錄的目錄是 etc 5 在linux 系統中,壓縮檔案...