JS

##### 變量類型和計算

### 一.typeof能判斷哪些數(shù)據(jù)類型

識別所有值類型:? 布爾型? undefined? ? 數(shù)字? 字符串? syblom

識別函數(shù)

判斷是否是引用類型(不可再細分)

判斷所有值類型杰标,能判斷函數(shù)串纺,能識別引用類型

#### 值類型和引用類的區(qū)別

**總結(jié):**

1.值類型有更好的效率蓄诽,但不支持多態(tài)茅茂,適合用作存儲數(shù)據(jù)的載體苍匆。而引用類型支持多態(tài)朋魔,適合用于定義程序的行為。

2.引用類型可以派生新的類型唾戚,而值類型不能柳洋。

```

1.對象的傳遞:

將值類型的變量賦值給另一個變量,會執(zhí)行一次賦值叹坦,賦值變量包含的值熊镣;

將引用類型的變量賦值給另一個引用類型變量,它復(fù)制的是引用對象的內(nèi)存地址募书,在賦值后就會多個變量指向同一個引用對象實例绪囱。

2.參數(shù)按值傳遞:

對于值類型(stu1),傳遞的是該值類型實例的一個副本莹捡,因此原本的值stu1并沒有改變鬼吵;

對于引用類型(Student stu2),傳遞是變量stu2的引用地址(即stu2對象實例的內(nèi)存地址)拷貝副本道盏,因此他們操作都是同一個stu2對象實例而柑。

3.參數(shù)按引用傳遞:

不管是值類型還是引用類型文捶,可以使用ref或out關(guān)鍵字來實現(xiàn)參數(shù)的按引用傳遞荷逞。ref或out關(guān)鍵字告訴編譯器媒咳,方法傳遞的是參數(shù)地址,而非參數(shù)本身种远。

在按引用傳遞時涩澡,方法的定義和調(diào)用都必須顯式的使用ref或out關(guān)鍵字,不可以省略坠敷,否則會引起編譯錯誤

注:string與一般引用類型有區(qū)別妙同。以下是我對string與其他引用類型進行比較,發(fā)現(xiàn)的不同膝迎,所編寫的程序代碼

```

### 二.手寫深拷貝

```

<script>

//注意判斷值類型和引用類型

//注意判斷是數(shù)組還是對象

//遞歸

const obj1 = {

? ? age:20,

? ? name:'777',

? ? address:{

? ? ? ? city:"beijing"


? ? },

? ? arr:['a','b','c']

}

const obj2 =deepClone(obj1)

obj2.address.city="shanghai"

obj2.arr[0] ='aaa'

console.log(obj1.address.city);

console.log(obj2.arr[0])

/*

深拷貝

@param {Object} obj 要拷貝的對象

*/

function deepClone(obj = {}){

? ? if(typeof obj !== "object" || obj == null){

? ? ? ? // obj 是null粥帚,或者不是對象和數(shù)組,直接返回

? ? ? ? return obj

? ? }

? ? // 初始化返回結(jié)果

? ? let result

? ? //判斷是否是一個對象

? ? if(obj instanceof Array){

? ? ? ? result =[]

? ? }else{

? ? ? ? result = []

? ? }

? ? for(let key in obj){

? ? ? ? if(obj.hasOwnProperty(key)){

? ? ? ? ? ? //遞歸調(diào)用

? ? ? ? ? ? result[key] = deepClone(obj[key])

? ? ? ? }

? ? }

? ? //返回結(jié)果

? ? return result

}

</script>

```

## 三.變量計算-類型轉(zhuǎn)換

1.運算符:除了 == null之外限次,其他都一律用 ===

2.if語句和邏輯運算

```

truly 變量 : !!a===true的變量

falsely變量:!!a === false的變量

```

## 四.原型和原型鏈

如何準確判斷一個變量是不是一個數(shù)組

手寫一個簡易的jQuery,考慮插件和擴展性‘

class的原型本質(zhì)芒涡,怎么理解?

class和繼承

constructor

類型判斷instanceof

原型和原型鏈

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卖漫,一起剝皮案震驚了整個濱河市费尽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌羊始,老刑警劉巖旱幼,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異突委,居然都是意外死亡柏卤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門匀油,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缘缚,“玉大人,你說我怎么就攤上這事钧唐∶ψ疲” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵钝侠,是天一觀的道長该园。 經(jīng)常有香客問我,道長帅韧,這世上最難降的妖魔是什么里初? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮忽舟,結(jié)果婚禮上双妨,老公的妹妹穿的比我還像新娘淮阐。我一直安慰自己,他們只是感情好刁品,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布泣特。 她就那樣靜靜地躺著,像睡著了一般挑随。 火紅的嫁衣襯著肌膚如雪状您。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天兜挨,我揣著相機與錄音膏孟,去河邊找鬼。 笑死拌汇,一個胖子當著我的面吹牛柒桑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播噪舀,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼魁淳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了傅联?” 一聲冷哼從身側(cè)響起先改,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒸走,沒想到半個月后仇奶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡比驻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年该溯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片别惦。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡狈茉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掸掸,到底是詐尸還是另有隱情氯庆,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布扰付,位于F島的核電站堤撵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏羽莺。R本人自食惡果不足惜实昨,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盐固。 院中可真熱鬧荒给,春花似錦丈挟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至溪北,卻和暖如春桐绒,著一層夾襖步出監(jiān)牢的瞬間夺脾,已是汗流浹背之拨。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留咧叭,地道東北人蚀乔。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像菲茬,于是被迫代替她去往敵國和親吉挣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容