JS-ECMAScript

script標(biāo)簽屬性

type

src

sync

async 異步執(zhí)行, script標(biāo)簽下載完就執(zhí)行

defer 異步執(zhí)行,html標(biāo)簽加載完才執(zhí)行

/**

*這種注釋方式可以放在方法前,會自動填充方法中的參數(shù)名等信息

*/

字符串

不可變

當(dāng)一個字符串重新賦值以后,原內(nèi)存空間的地址不會發(fā)生變化,要想重新賦值,就會重新分配一個內(nèi)存空間,會造成內(nèi)存的大量浪費(fèi)。

Boolean

何時為false:

空字符串、0、NaN、null、undefined

函數(shù)

調(diào)用函數(shù)時,會把函數(shù)的實(shí)參復(fù)制一份傳遞給函數(shù)的形參,改變形參的值不會改變實(shí)參。

函數(shù)和方法的區(qū)別:

函數(shù):直接調(diào)用的是函數(shù) alert()

方法:通過對象調(diào)用的是方法 girl.getName()

構(gòu)造函數(shù)

new后面調(diào)用的函數(shù),構(gòu)造函數(shù)本質(zhì)就是一個函數(shù),只不過構(gòu)造函數(shù)的目的是為了創(chuàng)建新對象,為新對象進(jìn)行初始化。

1. 內(nèi)存開辟空間,存儲新創(chuàng)建的對象

2. 會把this設(shè)置為當(dāng)前對象

3. 執(zhí)行函數(shù)內(nèi)部的代碼,設(shè)置對象的屬性和方法

4. 返回新創(chuàng)建的對象

函數(shù)提升

js會把當(dāng)前作用域的函數(shù)聲明提前到整個作用域的最前邊。

自調(diào)用函數(shù)

只能執(zhí)行一次

作用域

變量的作用域:變量在什么位置可以使用

全局作用域:在任何位置都可以訪問

局部作用域:在函數(shù)內(nèi)部聲明一個變量,只能在該函數(shù)內(nèi)部使用

不使用var聲明的變量是全局變量

當(dāng)變量超出作用域之后,變量會被銷毀;

js中沒有塊級作用域;

在其他語言中,在代碼塊中定義的變量,外部是訪問不到的,但是在js中沒有塊級作用域

eg:

if(true){

var name = ‘a(chǎn)bc’

}

console.log(name)

變量提升

定義變量的時候,變量的聲明會被提升到作用域的最上方,變量的賦值不會提升。

對象

無序?qū)傩缘募?,可以把對象看成鍵值對

引用對象的屬性兩種方法

o.name = ‘888’

o[“name”] = ‘888’

基本數(shù)據(jù)類型和引用數(shù)據(jù)類型
基本數(shù)據(jù)類型

number string Boolean undefined null

在棧中分配一塊內(nèi)存空間用來存儲數(shù)據(jù)

var a = 10;

var b = a;

a = 11;

console.log(a)

console.log(b)

輸出結(jié)果為11 10

在棧中分別分配了兩塊地址用來存儲a和b的數(shù)據(jù)

引用數(shù)據(jù)類型

object array dete 函數(shù)

在棧中分配一塊內(nèi)存空間用來存儲堆中的地址,在堆中分配一快內(nèi)存空間用來存儲數(shù)據(jù)

var s1 = new Student();

var s2 = s1;

在堆里面分配了一份內(nèi)存空間用來存儲對象s1,棧里邊分配了一份內(nèi)存空間用來存儲s1在堆中的地址,在棧里面復(fù)制了一份s1的地址給s2,此時s1和s2指向的堆中的對象是同一個。

值類型和引用類型在內(nèi)存中的存儲方式

值類型按值存儲

引用類型按引用存儲

值類型復(fù)制和應(yīng)用類型復(fù)制

值類型按值復(fù)制

引用類型按引用復(fù)制

值類型和引用類型參數(shù)傳遞

值類型按值傳遞

引用類型按引用傳遞

值類型和引用類型的差別

基本類型在內(nèi)存中占據(jù)固定大小的空間,因此被保存在棧內(nèi)存中;

從一個變量向另一個變量復(fù)制基本類型的值,復(fù)制的是值的副本;

引用類型的值是對象,保存在堆內(nèi)存中;

包含引用類型的變量實(shí)際上包含的并不是對象本身,而是一個指向該對象的指針;

從一個變量向另一個變量復(fù)制引用類型的值的時候,復(fù)制的是引用指針,因此兩個變量最終都指向同一個對象。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容