c++局部对象是什么_小白学Web前端难点是什么 JS进阶知识点有哪些
小白學(xué)Web前端難點(diǎn)是什么?JS進(jìn)階知識(shí)點(diǎn)有哪些?JavaScript是前端小白學(xué)習(xí)的難點(diǎn),但又是前端工程師必須要掌握的技能。很多同學(xué)反映JavaScript知識(shí)點(diǎn)多而雜,不知道如何下手,下面就給大家盤點(diǎn)一下JavaScript相關(guān)的知識(shí)點(diǎn)。
語言構(gòu)成:
1)基礎(chǔ)語法(ECMAScript=ES 1、2、3、3.1、5(IE9+)、6:ES2015)/
2)BOM:Brower Object Model 瀏覽器對(duì)象模型
3)DOM(W3C):Document Object Model 文檔對(duì)象模型
變量
變量的聲明:(var關(guān)鍵字) 會(huì)提升到當(dāng)前作用域的頂部
JS作用域:全局作用域、局部作用域(寫一個(gè)函數(shù)就產(chǎn)生了一個(gè)局部作用域)
數(shù)據(jù)類型
JavaScritp的數(shù)據(jù)類型有:數(shù)值類型、字符串類型、布爾類型、null、undefined、對(duì)象(數(shù)組、正則表達(dá)式、日期、函數(shù))。基本數(shù)據(jù)類型:數(shù)值、字符串、布爾、null、undefined(值類型);復(fù)雜(復(fù)合)數(shù)據(jù)類型:對(duì)象(引用類型);
使用typeof可以檢測(cè)數(shù)值、字符串、布爾、undefined、函數(shù);無法檢測(cè)函數(shù)以外的對(duì)象類型以及null。
數(shù)據(jù)類型的轉(zhuǎn)換:
Number("12ab"); //NaN
parseInt("12.1ab"); //12
parseFloat("12.1ab"); // 12.1
運(yùn)算符
算術(shù)運(yùn)算符:+、-、*、/、%(求余、取模)
邏輯運(yùn)算符:&&、||、!
注意:&&:看運(yùn)算符左邊的數(shù)是否為真值,如果為真值,返回右邊,如果為假值,返回左邊;||:看運(yùn)算符左邊的數(shù)是否為真值,如果為真值,返回左邊,如果為假值,返回右邊。
假值:空字符串""/數(shù)字0/null/undefined/false/NaN
循環(huán)語句:for while do...while for...in
函數(shù)聲明:1)聲明式函數(shù)——>函數(shù)聲明提前(會(huì)提升到當(dāng)前作用域的頂部);2)函數(shù)表達(dá)式(變量聲明提前)。如果同時(shí)存在變量聲明和函數(shù)聲明,那么聲明后的結(jié)果是一個(gè)函數(shù)。
參數(shù)arguments獲取實(shí)參的相關(guān)信息;函數(shù)的返回值由return 語句決定。
異常:JS代碼執(zhí)行的時(shí)候出現(xiàn)的錯(cuò)誤,出現(xiàn)錯(cuò)誤之后,后面的代碼無法執(zhí)行。
異常捕獲:代碼出現(xiàn)了異常之后,進(jìn)行手動(dòng)的捕捉。
異常捕獲的使用場(chǎng)景:一段代碼可能發(fā)生錯(cuò)誤,這個(gè)錯(cuò)誤現(xiàn)在沒時(shí)間解決,為了保證后面的代碼可以成功執(zhí)行,就進(jìn)行異常捕獲:try...catch。
面向?qū)ο?/p>
JS是一門基于對(duì)象的多泛式語言,可以使用面向過程進(jìn)行開發(fā),比如:獲取元素,綁定事件、設(shè)置樣式、完成動(dòng)畫等。
可以使用面向?qū)ο蟮姆绞竭M(jìn)行開發(fā)
面向(關(guān)注于)過程:基于函數(shù)、封裝函數(shù)
面向?qū)ο?#xff1a;關(guān)注點(diǎn)變成了對(duì)象
對(duì)象的概念:數(shù)據(jù)集、功能集
構(gòu)造函數(shù)
為什么要有構(gòu)造函數(shù)?一些對(duì)象具有相同的屬性和方法(特征和行為),將他們抽象出一個(gè)同一個(gè)類型,在JS中就需要通過一個(gè)構(gòu)造函數(shù)來創(chuàng)建這些對(duì)象,在構(gòu)造函數(shù)內(nèi)部設(shè)置對(duì)象的屬性和方法。
好處:一次封裝,多次調(diào)用,可省略一些代碼,也讓代碼更具有可讀性。
獲取對(duì)象上的屬性和方法
1)屬性:
a. 實(shí)例.屬性名;
b. 實(shí)例["屬性名"];
2)方法:
a. 實(shí)例.方法名;
b. 實(shí)例["方法名"];
設(shè)置對(duì)象上的屬性和方法
1)屬性:
a. 實(shí)例.屬性名=新的值;
b. 實(shí)例["屬性名"]=新的值;
2)方法:
a. 實(shí)例.方法名=新的值;
b. 實(shí)例["方法名"]=新的值;
刪除原型對(duì)象中的say方法:delete
構(gòu)造函數(shù)和普通函數(shù)的區(qū)別:
構(gòu)造函數(shù)和普通函數(shù)只在調(diào)用方式不同
1)當(dāng)成普通函數(shù)來調(diào)用:
a. 函數(shù)內(nèi)部的this指向調(diào)用的對(duì)象(如果沒有找到調(diào)用的對(duì)象,this指向window)
b. 函數(shù)的返回值由return語句決定,如果沒有說明函數(shù)沒有返回值(返回值是undefined)
2)當(dāng)成了構(gòu)造函數(shù)來調(diào)用會(huì)經(jīng)歷以下過程
a. 創(chuàng)建一個(gè)該構(gòu)造函數(shù)的實(shí)例
b. 將構(gòu)造函數(shù)內(nèi)部的this的值指向該實(shí)例
c. 執(zhí)行函數(shù)體
d. 默認(rèn)的返回值:該實(shí)例
3)函數(shù)調(diào)用的4種方式 function fn(){}
a. 普通調(diào)用:fn();
b. 當(dāng)成構(gòu)造函數(shù)調(diào)用:new fn();
c. 被對(duì)象調(diào)用:o.fn();
d. 上下文模式:call/apply
4)構(gòu)造函數(shù)的返回值
a. 構(gòu)造函數(shù)沒有手動(dòng)添加返回值,返回構(gòu)造函數(shù)的實(shí)例
b. 構(gòu)造函數(shù)返回基本數(shù)據(jù)類型的值,返回的還是構(gòu)造函數(shù)的實(shí)例
c. 構(gòu)造函數(shù)返回對(duì)象類型的值,返回就是那個(gè)對(duì)象
原型對(duì)象:構(gòu)造函數(shù)的prototype屬性:隨著實(shí)例化的次數(shù)增加,不同的對(duì)象他們擁有的say方法指向不同的內(nèi)存,功能相同,造成了內(nèi)存的浪費(fèi),為了解決內(nèi)存,將這個(gè)方法放在某個(gè)對(duì)象(原型對(duì)象)中。
結(jié)論1:給構(gòu)造函數(shù)的prototype屬性(對(duì)象)添加一個(gè)方法,這個(gè)方法就可以被構(gòu)造函數(shù)的實(shí)例所共享。
推論1:構(gòu)造函數(shù)的prototype屬性(對(duì)象)上面的屬性、方法都可以被構(gòu)造函數(shù)的實(shí)例所共享。
推論2:Student.prototype.constructor===s1.constructor。
結(jié)論2:構(gòu)造函數(shù)的實(shí)例有一個(gè)__proto__指向的是構(gòu)造函數(shù)的prototype屬性(原型對(duì)象) s1.__proto__===Student.prototype
總結(jié):
a.原型對(duì)象是構(gòu)造函數(shù)的prototype屬性;
b.構(gòu)造函數(shù)的實(shí)例的__proto__屬性指向原型對(duì)象;
c.原型對(duì)象有一個(gè)constructor屬性指向構(gòu)造函數(shù)本身。
以上只是JavaScript知識(shí)點(diǎn)的一小部分,對(duì)于想要入行Web前端行業(yè)的人來說,就業(yè)是個(gè)大問題,也直接影響著各個(gè)的決定。因此,選擇專業(yè)的學(xué)習(xí)比較好,不僅理論基礎(chǔ)扎實(shí),還有豐富的項(xiàng)目開發(fā)經(jīng)驗(yàn),有明確的職業(yè)規(guī)劃和嫻熟的面試技巧,為自身的快速就業(yè)提供了可能。
總結(jié)
以上是生活随笔為你收集整理的c++局部对象是什么_小白学Web前端难点是什么 JS进阶知识点有哪些的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 掩膜区域内像素值_基于颜色空间采样的抠图
- 下一篇: 各维度 特征 重要程度 随机森林_机器学