一:
10? ?原因:已經(jīng)循環(huán)完了
二:
什么也不輸出 會(huì)報(bào)錯(cuò) 原因:if形成了一個(gè)作用域螟够,let不能聲明重復(fù)變量
三:
let sortArr = arr.sort((a,b) => {return a+b;});
console.log(sortArr[0]);
四:
? ? let:塊級(jí)作用域:1.不能聲明同名變量 2.聲明形成塊作用域
? ? const:常量滋早,1.一旦聲明必須賦值,不能使用null占位治笨。2.聲明后不能再修改?3.如果聲明的是復(fù)合類型數(shù)? ? ? ? ? ? ? ? ? ? ? ? 據(jù),可以修改其屬性? 4.不能聲明同名變量 5.聲明形成塊作用域
? ? var:全局變量: 1.var聲明變量存在變量提升 2. 可以重復(fù)命名
五:
六:symbol類型是創(chuàng)造一個(gè)獨(dú)一無(wú)二得數(shù)據(jù)類型剔蹋,可以使得我們得數(shù)據(jù)對(duì)象中不想讓外部訪問(wèn)得屬性設(shè)置為symbol類型
七:深拷貝是將原有得對(duì)象和引用都復(fù)制一份旅薄,修改新對(duì)象時(shí),舊對(duì)象不會(huì)被該百年
? ? ? ?淺拷貝只復(fù)制值不復(fù)制引用泣崩,修改新對(duì)象時(shí)少梁,舊對(duì)象同樣被改變。因?yàn)樗鼉捎玫耐粋€(gè)引用地址矫付。
八:ts和js區(qū)別:
1.javascript是一個(gè)弱類型語(yǔ)言凯沪,Typescript是Javascript的一個(gè)超集,最大區(qū)別就是Ts提供了類型系統(tǒng)
2.TypeScript 只會(huì)進(jìn)行靜態(tài)檢查技即,如果發(fā)現(xiàn)有錯(cuò)誤,編譯的時(shí)候就會(huì)報(bào)錯(cuò)樟遣。
3. 瀏覽器引擎和Node.js都能夠直接運(yùn)行JavaScript而叼,但無(wú)法直接運(yùn)行TypeScript
九:ts優(yōu)點(diǎn):強(qiáng)類型語(yǔ)言,增加了代碼的可讀性和可維護(hù)性豹悬。增強(qiáng)了編輯器和 IDE 的功能葵陵,包括代碼補(bǔ)全、接口提示瞻佛、跳轉(zhuǎn)到定義脱篙、重構(gòu)等
缺點(diǎn):瀏覽器不識(shí)別 需要轉(zhuǎn)義成js
十:引用計(jì)數(shù):引用計(jì)數(shù)的含義是跟蹤記錄每個(gè)值被引用的次數(shù)。當(dāng)聲明了一個(gè)變量并將一個(gè)引用類型值賦給該變量時(shí)伤柄,則該值的引用次數(shù)就是1绊困;如果同一個(gè)值又被賦給另一個(gè)變量,則該值的引用次數(shù)加1适刀;如果包含對(duì)該值引用的變量又取得了另外一個(gè)值秤朗,則該值的引用次數(shù)減1。當(dāng)該值的引用次數(shù)變?yōu)?時(shí)笔喉,則可以回收其占用的內(nèi)存空間取视。當(dāng)垃圾回收器下一次運(yùn)行時(shí)硝皂,就會(huì)釋放那些引用次數(shù)為0的值所占用的內(nèi)存。?
? ? 問(wèn)題:循環(huán)引用
十一:標(biāo)記整理過(guò)程:將垃圾數(shù)據(jù)標(biāo)記后再整理數(shù)據(jù)
十二:新生代存儲(chǔ)區(qū)垃圾回收過(guò)程:
新生代對(duì)象內(nèi)存空間一分為二作谭,分別是空間from和空間to稽物,新生代對(duì)象會(huì)先存儲(chǔ)在from空間,當(dāng)一輪GC后折欠,使用標(biāo)記整理算法對(duì)from空間進(jìn)行垃圾處理和空間內(nèi)存優(yōu)化贝或,清除完成后,將from空間復(fù)制到to空間怨酝,并將from空間與to空間進(jìn)行交換傀缩。
晉升:若是一輪GC后存活下來(lái)的新生代對(duì)象氧急,會(huì)轉(zhuǎn)變?yōu)槔仙鷮?duì)象狼纬,來(lái)防止新生代對(duì)象內(nèi)存空間占滿的情況