js 一些基礎知識

2022-08-01 12:24:08 字數 2260 閱讀 7796

資料型別:

作用域

每個函式都有自己的執行環境,執行環境定義了變數有權訪問的其他資料,決定了他們各自的行為。

每個執行環境都有乙個與之關聯的變數物件(variable object),環境中定義的所有變數或函式都儲存在這個物件中。

當**在乙個環境中執行時,會建立變數物件的作用域鏈

js沒有塊級作用域

函式宣告與函式表示式

function test(){}//函式宣告,他的重要特性是函式宣告提公升

var test=function(){}//函式表示式

遞迴保險的遞迴寫法(命名函式表示式):

1

var factorial = (function

fa(num)else

8 });

閉包建立閉包:在乙個函式內部建立另乙個函式;

作用:延長變數的作用域鏈

原理:內部函式的作用域鏈包含外部函式的作用域鏈

缺點:過度使用可能會造成記憶體洩露

例子:這個例子中寫了兩個按鈕,點選按鈕的時候彈出此按鈕被點選的次數。

1

<

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

>

這個例子可以形象地描述乙個閉包:showclicknumber函式內部先定義了乙個變數number用於計數,然後返回乙個匿名函式;

在這個匿名函式裡面,我們使用到了外部函式的number變數;

這樣雖然showclicknumber函式執行完了,但它的內部變數number也不會銷毀,因為他還在被test1,test2方法引用。

雖然只申明了乙個變數,兩個按鈕卻會各自統計各自的點選數量,不會相互影響

關於this物件

this物件是在執行時基於函式的執行環境繫結的

1、在全域性函式中:this=window;

2、函式作為某個物件的方法被呼叫時:this=物件;

模仿塊級作用域--私有作用域

(function

())();

js沒有塊級作用域的概念,用這樣乙個自執行的函式(閉包)包起來,它裡面的變數就成了區域性變數,還可以提高執行速度

建立物件的推薦方式

1、組合使用原型模式和建構函式模式

function

persion(name,age,job)

//protocol指向函式的原型物件,原型物件會自動獲得constructor(建構函式)屬性

//constructor包含乙個指向prototype屬性所在函式的指標

//通過constructor,還可以為原型物件新增其他屬性和方法

//下面的**,我們重置了persion原型,應該為constructor賦值,否則就丟失了constructor值

persion.prototype=

}

2、動態原型模式

1

function

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 系統中,壓縮檔案...