JS總結(jié)

·? JS是什么?

JavaScript是一種屬于網(wǎng)絡(luò)的腳本語(yǔ)言,已經(jīng)被廣泛用于Web應(yīng)用開(kāi)發(fā),常用來(lái)為網(wǎng)頁(yè)添加各式各樣的動(dòng)態(tài)功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過(guò)嵌入在HTML中來(lái)實(shí)現(xiàn)自身的功能的。

Js(JavaScript)是一種直譯式的腳本語(yǔ)言;是一種動(dòng)態(tài)、弱類型的語(yǔ)言;是一種基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶端腳本語(yǔ)言。通常認(rèn)為它是瀏覽器的一部分,它的解釋器被稱為JavaScript引擎,是客戶端廣泛應(yīng)用的一種腳本語(yǔ)言。


·? JS有何作用?

最早是在HTML網(wǎng)頁(yè)上使用,用來(lái)給HTML網(wǎng)頁(yè)增加動(dòng)態(tài)效果,目前已經(jīng)被廣泛應(yīng)用于Web應(yīng)用程序開(kāi)發(fā),經(jīng)常被用來(lái)為網(wǎng)頁(yè)添加各種各樣的動(dòng)態(tài)功能,為用戶提供更流暢美觀的瀏覽效果。


·? JS的常見(jiàn)的使用場(chǎng)景?

用于 HTML 和 web,更可廣泛用于服務(wù)器、PC、筆記本電腦、平板電腦和智能手機(jī)等設(shè)備,瀏覽器端,服務(wù)器端


·? 如何在網(wǎng)頁(yè)中使用JS?

1、HTML標(biāo)簽中內(nèi)嵌JS(不提倡使用):

示例:<button

onclick="javascript:alert('你真點(diǎn)??!')">有本事點(diǎn)我呀!?。?/p>

2、HTML頁(yè)面中直接使用JS:

//JS代碼

3、引用外部JS文件:


·? JS的常用數(shù)據(jù)類型有?

值類型(基本類型):字符串(String)、數(shù)字(Number)、布爾(Boolean)、對(duì)空(Null)、未定義(Undefined)、Symbol。

引用數(shù)據(jù)類型:對(duì)象(Object)、數(shù)組(Array)、函數(shù)(Function)。



·? 引用類型和基礎(chǔ)類型的區(qū)別?

① 引用類型值可添加屬性和方法,而基本類型值則不可以。

?② 在復(fù)制變量值時(shí),基本類型會(huì)在變量對(duì)象上創(chuàng)建一個(gè)新值,再?gòu)?fù)制給新變量。此后,兩個(gè)變量的任何操作都不會(huì)影響到對(duì)方;而引用類型是將存儲(chǔ)在變量對(duì)象的值復(fù)制一份給新變量,但是兩個(gè)變量的值都指向存儲(chǔ)在堆中的一個(gè)對(duì)象,也就是說(shuō),其實(shí)他們引用了同一個(gè)對(duì)象,改變其中一個(gè)變量就會(huì)影響到另一個(gè)變量。

基本數(shù)據(jù)類型指的是簡(jiǎn)單的數(shù)據(jù)段。基本數(shù)據(jù)類型是按值訪問(wèn)的

引用數(shù)據(jù)類型指的是有多個(gè)值構(gòu)成的對(duì)象。引用類型數(shù)據(jù)在棧內(nèi)存中保存的實(shí)際上是對(duì)象在堆內(nèi)存中的引用地址。通過(guò)這個(gè)引用地址可以快速查找到保存中堆內(nèi)存中的對(duì)象。

·? 如何檢測(cè)一個(gè)變量的類型?

? ? typeof:確定變量是字符串、數(shù)值、布爾值還是undefined的最佳工具。


·? JS中的分支方式有?

1、當(dāng)條件滿足時(shí),去運(yùn)行某些語(yǔ)句

??? if結(jié)構(gòu)

2、當(dāng)條件滿足時(shí),去運(yùn)行某些語(yǔ)句

?? 當(dāng)條件不滿足時(shí),去運(yùn)行另外一些一句

??? if ... else ...結(jié)構(gòu)

3:??else … if結(jié)構(gòu)

4:switch-case結(jié)構(gòu): switch 語(yǔ)句用于基于不同的條件來(lái)執(zhí)行不同的動(dòng)作

·? JS中常用的變量及區(qū)別?

變量是存儲(chǔ)信息的容器:number,?string,?boolean,?object,?function,?undefined

數(shù)值變量

文本(字符串)變量

布爾變量,

對(duì)象變量

函數(shù)變量

未定義的變量

·? 截取字符串的方法有?

slice()、substring()、substr()這三種方法

·? var letconst的區(qū)別?

var 關(guān)鍵字聲明的變量不具備塊級(jí)作用域的特性,它在 {} 外依然能被訪問(wèn)到。

let 聲明的變量只在 let 命令所在的代碼塊內(nèi)有效。

const 聲明一個(gè)只讀的常量,一旦聲明,常量的值就不能改變。

·? JS中如何定義函數(shù)?

JavaScript 使用關(guān)鍵字function 定義函數(shù)。函數(shù)同樣可以通過(guò)內(nèi)置的 JavaScript 函數(shù)構(gòu)造器(Function())定義。

·? 為何說(shuō)JS中的函數(shù)也是對(duì)象?

在Javascript中,每一個(gè)函數(shù)實(shí)際上都是一個(gè)函數(shù)對(duì)象.

JavaScript 對(duì)象是擁有屬性和方法的數(shù)據(jù)。

對(duì)象的方法定義了一個(gè)函數(shù),并作為對(duì)象的屬性存儲(chǔ)。

對(duì)象方法通過(guò)添加 () 調(diào)用 (作為一個(gè)函數(shù))。

·? JS中最常用的繼承方式是?

原型鏈繼承,構(gòu)造函數(shù)繼承,

組合繼承是將原型鏈繼承和構(gòu)造函數(shù)結(jié)合起來(lái),從而發(fā)揮二者之長(zhǎng)的一種模式

原型式繼承

寄生式繼承

寄生組合式繼承

·? this是什么?常用指向和改變的方法有?

面向?qū)ο笳Z(yǔ)言中 this表示當(dāng)前對(duì)象的一個(gè)引用。

但在JavaScript 中 this 不是固定不變的,它會(huì)隨著執(zhí)行環(huán)境的改變而改變。

改變this指向的三個(gè)常用方法bind,call和apply

·?ES5/ES6/ES7對(duì)異步編程處理的比較?

ES7的async和await,目前最為簡(jiǎn)略的異步解決方案

異步的幾種實(shí)現(xiàn)方法

(1)回調(diào)函數(shù)

(2)事件監(jiān)聽(tīng)

(3)發(fā)布訂閱(類似于emit,on觀察者模式)

(4)ES6的promise

·? DOM的作用是?

通過(guò) HTML DOM,可訪問(wèn) JavaScript HTML 文檔的所有元素。

當(dāng)網(wǎng)頁(yè)被加載時(shí),瀏覽器會(huì)創(chuàng)建頁(yè)面的文檔對(duì)象模型(Document Object Model)。

HTML DOM 模型被構(gòu)造為對(duì)象的樹(shù):

HTML DOM 樹(shù)

通過(guò)可編程的對(duì)象模型,JavaScript獲得了足夠的能力來(lái)創(chuàng)建動(dòng)態(tài)的 HTML。

JavaScript 能夠改變頁(yè)面中的所有 HTML 元素

JavaScript 能夠改變頁(yè)面中的所有 HTML 屬性

JavaScript 能夠改變頁(yè)面中的所有 CSS 樣式

JavaScript 能夠?qū)?yè)面中的所有事件做出反應(yīng)

·? DOM中獲取元素的方法有?

通過(guò) id 找到 HTML 元素

通過(guò)標(biāo)簽名找到 HTML 元素

通過(guò)類名找到 HTML 元素

·? DOM是如何處理HTML中的常用事件的?

在HTML中的事件處理方式: 只要在按鈕的地方加入onclick事件綁定點(diǎn)擊事件處理的函數(shù),就完成了事件處理。

DOM元素對(duì)象的屬性事件綁定處理方式

DOM元素對(duì)象的addEventListener()函數(shù)添加事件的處理方式

·? BOM的作用是是什么?

瀏覽器對(duì)象模型 (BOM) 使 JavaScript 有能力與瀏覽器"對(duì)話"。

·? BOM和DOM的關(guān)系是?

JavaScript是通過(guò)訪問(wèn)BOM(Browser Object Model)對(duì)象來(lái)訪問(wèn)、控制、修改客戶端(瀏覽器),由于BOMwindow包含了document,window對(duì)象的屬性和方法是直接可以使用而且被感知的,因此可以直接使用window對(duì)象的document屬性,通過(guò)document屬性就可以訪問(wèn)、檢索、修改XHTML文檔內(nèi)容與結(jié)構(gòu)。因?yàn)閐ocument對(duì)象又是DOM的根節(jié)點(diǎn)??梢哉f(shuō),BOM包含了DOM(對(duì)象),瀏覽器提供出來(lái)給予訪問(wèn)的是BOM對(duì)象,從BOM對(duì)象再訪問(wèn)到DOM對(duì)象,從而js可以操作瀏覽器以及瀏覽器讀取到的文檔。

·? BOM中常用的方法有?

alert():彈出一個(gè)警告對(duì)話框。

prompt([text],[defaulttext]):彈出一個(gè)輸入對(duì)話框。

confirm(text):彈出一個(gè)確認(rèn)對(duì)話框。如果單擊“確定按鈕”返回true,如果單擊“取* * 消”返回false。 text:要顯示的純文本

close():關(guān)閉窗口

print():打印窗口

open([url],[name],[options]):打開(kāi)一個(gè)新窗口

延時(shí)器:window.setTimeout(“code”,1000);// code一般是一個(gè)函數(shù),但是放在雙引號(hào)下,1000ms

返回值是延時(shí)器的id,給clearTimeout使用

定時(shí)器:window.setInterval(“code”,1000);// code一般是一個(gè)函數(shù),但是放在”“下,1000ms

返回值是定時(shí)器的id,給clearInterval使用

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

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

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