Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
JavaScript中,this關(guān)鍵字的指向是動態(tài)變化的,它依賴于函數(shù)的調(diào)用方式。理解this的指向是JavaScript編程中的一項重要技能,因為它直接影響到函數(shù)內(nèi)部訪問到的對象。下面詳細(xì)解釋幾種常見的this指向情況:
在全局作用域(瀏覽器中的全局對象是window,Node.js中的全局對象是global)中,this指向全局對象。
console.log(this===window); // 在瀏覽器中輸出 true
console.log(this.document !==undefined); // 驗證this指向全局對象
在普通函數(shù)調(diào)用時(非嚴(yán)格模式下),this指向全局對象(瀏覽器中是window,Node.js中是global)。在嚴(yán)格模式('use strict';)下,this是undefined。
function test() {
console.log(this===window); // 非嚴(yán)格模式下為 true
}
test();
function strictTest() {
'use strict';
console.log(this===undefined); // 嚴(yán)格模式下為 true
}
strictTest();
當(dāng)一個函數(shù)被保存為某個對象的屬性時,我們稱之為方法。在方法調(diào)用中,this指向調(diào)用該方法的對象。
const obj={
method: function() {
console.log(this===obj); // 輸出 true
}
};
obj.method();
在構(gòu)造函數(shù)中,this指向新創(chuàng)建的對象實例。
function Car(make, model) {
this.make=make;
this.model=model;
}
const myCar=new Car('Ford', 'Mustang');
console.log(myCar.make); // 輸出 Ford
箭頭函數(shù)不綁定自己的this,它會捕獲其所在上下文的this值,作為自己的this值。
const obj={
method: function() {
return ()=> {
console.log(this===obj); // 輸出 true
};
}
};
const func=obj.method();
func();
使用call()、apply()和bind()方法可以顯式設(shè)置函數(shù)執(zhí)行時this的指向。
這些方法都允許你調(diào)用一個函數(shù),并顯式地設(shè)置函數(shù)體內(nèi)this的值,call和apply會立即執(zhí)行函數(shù),而bind會返回一個新的函數(shù),這個新函數(shù)在被調(diào)用時,this會被設(shè)置為bind的第一個參數(shù),而其余參數(shù)將作為新函數(shù)的參數(shù),供調(diào)用時使用。
call()方法調(diào)用一個函數(shù),其具有一個指定的this值和分別提供的參數(shù)(參數(shù)的列表)。
function greet(greeting, punctuation) {
console.log(this.name + ' says, ' + greeting + punctuation);
}
const person={
name: 'Alice'
};
// 使用call()顯式設(shè)置this指向person對象
greet.call(person, 'Hello', '!');
// 輸出: Alice says, Hello!
apply()方法調(diào)用一個函數(shù),其具有一個指定的this值,以及作為一個數(shù)組(或類數(shù)組對象)提供的參數(shù)。
function greet(greeting, punctuation) {
console.log(this.name + ' says, ' + greeting + punctuation);
}
const person={
name: 'Bob'
};
// 使用apply()顯式設(shè)置this指向person對象,參數(shù)作為數(shù)組傳遞
greet.apply(person, ['Hi', '.']);
// 輸出: Bob says, Hi.
bind()方法創(chuàng)建一個新的函數(shù),在bind()被調(diào)用時,這個新函數(shù)的this被指定為bind()的第一個參數(shù),而其余參數(shù)將作為新函數(shù)的參數(shù),供調(diào)用時使用。
function greet(greeting, punctuation) {
console.log(this.name + ' says, ' + greeting + punctuation);
}
const person={
name: 'Charlie'
};
// 使用bind()創(chuàng)建一個新函數(shù),其this指向person對象
const greetCharlie=greet.bind(person, 'Hey', '!');
// 調(diào)用新函數(shù)
greetCharlie();
// 輸出: Charlie says, Hey!
// 注意:bind()不會立即執(zhí)行函數(shù),而是返回一個新函數(shù)
理解這些this的指向規(guī)則,對于編寫清晰、可維護(hù)的JavaScript代碼至關(guān)重要。
HTML中,列表、引用和代碼是常用的結(jié)構(gòu),它們有助于組織內(nèi)容,突出顯示特定信息,并提高網(wǎng)頁的可讀性和功能性。本文將詳細(xì)介紹這些元素的使用方法和實例。
列表是組織項目或信息點的一種方式。在HTML中,有兩種主要類型的列表:有序列表和無序列表。
有序列表使用<ol>標(biāo)簽創(chuàng)建,列表中的每個項目使用<li>(列表項)標(biāo)簽標(biāo)記。有序列表通常用于表示有特定順序的步驟或排名。
<ol>
<li>開啟電腦。</li>
<li>打開瀏覽器。</li>
<li>訪問網(wǎng)站。</li>
</ol>
在這個例子中,步驟按照順序排列,用戶應(yīng)該按照列表的順序執(zhí)行。
無序列表使用<ul>標(biāo)簽創(chuàng)建,同樣使用<li>標(biāo)簽來定義列表項。無序列表適用于沒有特定順序要求的項目列表。
<ul>
<li>蘋果</li>
<li>香蕉</li>
<li>橘子</li>
</ul>
這個例子中的水果列表沒有特定的順序要求。
引用用于表示頁面上的文本是從其他來源引用的。在HTML中,<blockquote>標(biāo)簽用于定義長引用,而<q>標(biāo)簽用于定義短引用。
長引用通常用于引用段落長度的文本。它通常會縮進(jìn),并且可以包含引用的來源信息。
<blockquote cite="http://example.com/quote-source">
<p>這是一個長引用的實例,通常用于引用段落文本。引用的文本應(yīng)該保持原作的語境和意義。</p>
<footer>— 引用自 <cite>《引用來源的書名》</cite></footer>
</blockquote>
短引用用于行內(nèi)文本,它通常不會改變文本的布局。
<p>正如某人所說:<q>知識就是力量。</q></p>
在網(wǎng)頁中展示代碼片段時,HTML提供了<code>標(biāo)簽用于標(biāo)記代碼。對于多行代碼或需要保持格式的代碼,可以使用<pre>標(biāo)簽。
單行代碼用于展示簡短的代碼或命令。
<p>要添加一個段落,你可以使用<code><p>...</p></code>標(biāo)簽。</p>
多行代碼或需要保持原始格式的代碼使用<pre>和<code>標(biāo)簽組合使用。
<pre><code>function greet(name) {
return 'Hello, ' + name + '!';
}</code></pre>
在這個例子中,<pre>標(biāo)簽保持了代碼的格式,而<code>標(biāo)簽表示文本是代碼。
HTML中的列表、引用和代碼是構(gòu)建清晰、有組織的網(wǎng)頁內(nèi)容的重要工具。列表幫助用戶理解信息的結(jié)構(gòu),引用增加了內(nèi)容的可信度,而代碼的正確展示對于教學(xué)和技術(shù)文章來說至關(guān)重要。通過熟練運用這些元素,你可以提高網(wǎng)頁的專業(yè)性,使內(nèi)容對用戶更加友好和易于理解。
.標(biāo)簽語義化
提到標(biāo)簽,很多剛?cè)腴T前端開發(fā)的人,肯定都會很納悶,這么多HTML標(biāo)簽我如何記住呢?我又應(yīng)該根據(jù)什么依據(jù)去正確使用它呢?其實這樣的問題,我剛開始和大家一樣苦悶,但是在我學(xué)習(xí)Web頁面開發(fā)的過程中,然后不斷的積累,不斷的總結(jié),發(fā)現(xiàn)要想記住HTML標(biāo)簽以及怎樣更好的去使用這些標(biāo)簽,需要做到以下三點:
第一點:不要死記硬背,沒意義,只需要記住常用的哪幾個足矣。
第二點:根據(jù)內(nèi)容選擇使用HTML標(biāo)簽,什么意思呢?見下文分解。
第三點:遵循W3C的規(guī)范。
首先,第一點咱們就不用說,不讓死記硬背,就是要多寫頁面,多敲代碼,久而久之孰能生巧,巧能生花,慢慢的你就能記住這些標(biāo)簽了,而且在開發(fā)頁面的過程中,你們會發(fā)現(xiàn),咱們最常用的也就是那么幾個而已。
其次,第二點根據(jù)內(nèi)容選擇使用HTML標(biāo)簽,這一點非常關(guān)鍵,因為你掌握了這一點,你能很好地去使用HTML標(biāo)簽,并且能讓頁面變得很優(yōu)質(zhì),這也會提高你網(wǎng)頁被搜索引擎收錄。
最后,也就是第三點,這一點自然不用懷疑,如果要想讓頁面更好的在不同的瀏覽器中呈現(xiàn)出一致的效果,那么必須遵循W3C的規(guī)范。
說了這么多,只是一些學(xué)習(xí)需要注意的問題,下面才是真正解開怎樣去使用和記住標(biāo)簽這個謎團(tuán)的方法。
我們在使用標(biāo)簽的過程中,大家會發(fā)現(xiàn)類似的標(biāo)簽,比如標(biāo)題標(biāo)簽(h1-h6)、p(段落標(biāo)簽)、a(超鏈接標(biāo)簽)以及圖片標(biāo)簽(img)等,通過這些標(biāo)簽的名稱,咱們是不是不難理解吧,很直觀的就知道這些標(biāo)簽該怎么,用于何處。而這些名稱的含義就是我們所說的標(biāo)簽語義化。隨著智能手機(jī)的出來,移動Web都是通過H5去開發(fā)頁面,而H5中的HTML標(biāo)簽就比之前版本的HTML標(biāo)簽更加具有語義化。
那么什么是標(biāo)簽語義化呢?所謂的標(biāo)簽語義化,指的就是標(biāo)簽所代表的含義。咱們可以通過標(biāo)簽的含義,正確地去使用它。
標(biāo)簽語義化的作用:
如下圖所示,通過使用語義化標(biāo)簽和沒使用任何標(biāo)簽,就能直觀感受到語義化標(biāo)簽的好處。
普通的文本和使用語義化標(biāo)簽后的效果對比圖
那么如何去判斷一個頁面中,語義化是否良好呢?很簡單,直接扒掉CSS這層漂亮的衣服,當(dāng)我們把CSS去掉后,如果頁面中的結(jié)構(gòu)依然組織有序,并且有良好的可讀性,那么它就是非常良好的。
如何去使用這些標(biāo)簽?zāi)??首先根?jù)內(nèi)容確定語義化的標(biāo)簽,其次再根據(jù)呈現(xiàn)需求,使用CSS樣式。因此HTML標(biāo)簽并非通過死記硬背,而是通過在使用的過程中,利用HTML標(biāo)簽的語義化去記憶。如下圖所示,通過使用語義化標(biāo)簽,瞬間就能把普通的文本,以更清晰的結(jié)構(gòu)呈現(xiàn)出來。
使用語義化的普通文本,變得更為結(jié)構(gòu)清晰
2.常用標(biāo)簽分類匯總
通常我們常見的標(biāo)簽有標(biāo)題標(biāo)簽、段落標(biāo)簽、水平線標(biāo)簽、換行標(biāo)簽以及div和span標(biāo)簽,這些標(biāo)簽又被統(tǒng)稱為排版標(biāo)簽。
在開發(fā)中,排版標(biāo)簽主要是和CSS搭配使用,主要是用于顯示網(wǎng)頁的整體結(jié)構(gòu),也是網(wǎng)頁布局中常用的標(biāo)簽。下面我一一了解一下。
排版標(biāo)簽:
【1】標(biāo)題標(biāo)簽(h1-h6)
標(biāo)題標(biāo)簽的使用
呈現(xiàn)的效果如下:
呈現(xiàn)的效果
一句話總結(jié):使用了標(biāo)題標(biāo)簽的文字會加粗,會根據(jù)級別顯示文字的大小,并且一行只能放一個標(biāo)題。
【2】段落標(biāo)簽(p)
p標(biāo)簽語法格式
【3】水平線標(biāo)簽(hr)
【4】換行標(biāo)簽(br)
文本
呈現(xiàn)效果:
使用br標(biāo)簽后的效果
【5】div和span標(biāo)簽
最后給大家來一個完美的總結(jié):
排版標(biāo)簽的匯總
難道這就完了嗎?咱們的標(biāo)簽就只有這些常用的嗎?那當(dāng)然不是,咱們接下來再看我們的文本格式化標(biāo)簽。
文本格式化標(biāo)簽
文本格式化標(biāo)簽的作用:通常文本格式化標(biāo)簽主要用于網(wǎng)頁中文字樣式的設(shè)置,比如字體加粗、斜體或下劃線等效果,當(dāng)然后期也會通過CSS樣式來實現(xiàn),會更加完美。
常見的文本格式化標(biāo)簽如下:
文本格式化標(biāo)簽
它們分別的區(qū)別:
我么網(wǎng)頁中除了排版標(biāo)簽、文本格式化標(biāo)簽,當(dāng)然還少不了圖片標(biāo)簽(img),通過圖片的展示,會讓整個頁面更加的生動形象。那么下面再來看一下這個標(biāo)簽吧。
圖片標(biāo)簽(img)
img標(biāo)簽屬性
標(biāo)簽屬性的特點:
圖片標(biāo)簽屬性使用
鏈接標(biāo)簽
a標(biāo)簽的常見屬性
提示:
內(nèi)部鏈接地址
注釋標(biāo)簽
注釋標(biāo)簽
好了,各位小伙伴,今天我就給大家分享到這兒了,希望我給大家總結(jié)的內(nèi)容,能幫到正在瀏覽我這篇內(nèi)容的前端開發(fā)者,也希望你們有所收獲。如果喜歡的,可以點擊關(guān)注,會繼續(xù)給大家分享更多的內(nèi)容。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。