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
TML,即超文本標(biāo)記語(yǔ)言(HyperText Markup Language),是構(gòu)建網(wǎng)頁(yè)和網(wǎng)絡(luò)應(yīng)用的基石。自從它的誕生以來(lái),HTML經(jīng)歷了多次迭代,每個(gè)版本都對(duì)Web開(kāi)發(fā)的可能性進(jìn)行了擴(kuò)展。以下是HTML發(fā)展歷程的概述,包括每個(gè)主要版本的變化和未來(lái)趨勢(shì)。
HTML的歷史可以追溯到1989年,當(dāng)時(shí)**蒂姆·伯納斯-李(Tim Berners-Lee)**在CERN(歐洲核子研究組織)提出了一個(gè)創(chuàng)新的想法,即創(chuàng)建一個(gè)互聯(lián)的信息系統(tǒng),這個(gè)系統(tǒng)后來(lái)演變成了萬(wàn)維網(wǎng)(World Wide Web)。HTML是這個(gè)系統(tǒng)的核心組成部分,它允許文檔通過(guò)超鏈接互相引用,形成一個(gè)信息網(wǎng)絡(luò)。
隨著Web技術(shù)的不斷發(fā)展,HTML也在不斷進(jìn)化。未來(lái)的HTML可能會(huì)包括:
HTML的歷史是Web技術(shù)發(fā)展的縮影。從簡(jiǎn)單的文檔標(biāo)記到復(fù)雜的Web應(yīng)用平臺(tái),HTML已經(jīng)成為現(xiàn)代互聯(lián)網(wǎng)不可或缺的一部分。隨著技術(shù)的進(jìn)步,我們可以期待HTML將繼續(xù)演進(jìn),以滿(mǎn)足未來(lái)網(wǎng)絡(luò)世界的需求。
嘍,大家好,我是雷工。
今天學(xué)習(xí)JavaScript基礎(chǔ)知識(shí)的分支語(yǔ)句,以下為學(xué)習(xí)筆記。
○寫(xiě)幾句就從上往下執(zhí)行幾句,這種叫做順序結(jié)構(gòu);
○有時(shí)要根據(jù)條件選擇執(zhí)行代碼,這種叫分支結(jié)構(gòu);
○某段代碼被重復(fù)執(zhí)行,就叫循環(huán)結(jié)構(gòu);
○分支語(yǔ)句可以讓我們有選擇性的執(zhí)行想要執(zhí)行的代碼
○分支語(yǔ)句包含:
→ if分支語(yǔ)句
→ 三元運(yùn)算符
→ switch語(yǔ)句
2.1、if分支語(yǔ)句
● if語(yǔ)句有三種使用:?jiǎn)畏种?、雙分支、多分支
● 單條件分支語(yǔ)句:程序如果執(zhí)行的時(shí)候,如果條件成立就執(zhí)行某一行代碼,如果條件不成立則執(zhí)行其他代碼
使用語(yǔ)法:
if(條件)
{
滿(mǎn)足條件要執(zhí)行的代碼
}
? 小括號(hào)內(nèi)的條件為true時(shí),進(jìn)入大括號(hào)里執(zhí)行代碼。
? 小括號(hào)內(nèi)的結(jié)果若不是布爾類(lèi)型時(shí),會(huì)發(fā)生隱式轉(zhuǎn)換轉(zhuǎn)換為布爾類(lèi)型。
? 如果大括號(hào)內(nèi)只有一個(gè)語(yǔ)句,大括號(hào)可以省略,但是,一般不提倡這么做~
● 雙分支if語(yǔ)法:
if(條件)
{
滿(mǎn)足條件要執(zhí)行的代碼
}
else
{
不滿(mǎn)足條件時(shí)要執(zhí)行的代碼
}
語(yǔ)法解釋?zhuān)?/strong>
1>程序先判斷if中的條件是否成立(true),如果條件成立,則執(zhí)行if后面對(duì)應(yīng)的代碼,else中的代碼不會(huì)執(zhí)行。
2>如果if中的條件不成立(False),程序只執(zhí)行else后{}中的代碼,if后{}內(nèi)的代碼不會(huì)執(zhí)行。
● 多條件分支語(yǔ)句if:
應(yīng)用場(chǎng)景:當(dāng)有多個(gè)結(jié)果的時(shí)候,比如學(xué)習(xí)成績(jī)可以分為:優(yōu)秀、良好、及格、不及格四個(gè)選項(xiàng)。
語(yǔ)法:
if(條件1)
{
滿(mǎn)足條件1要執(zhí)行的代碼1
}
else if(條件2)
{
滿(mǎn)足條件2要執(zhí)行的代碼2
}
else if(條件3)
{
滿(mǎn)足條件3要執(zhí)行的代碼3
}
else
{
以上條件均不滿(mǎn)足時(shí)執(zhí)行代碼n
}
語(yǔ)法說(shuō)明:
? 先判斷條件1,若滿(mǎn)足條件1就執(zhí)行代碼1,其他代碼統(tǒng)統(tǒng)不執(zhí)行;
? 若不滿(mǎn)足則按順序向下判斷條件2,滿(mǎn)足條件2執(zhí)行代碼2,其他代碼不執(zhí)行;
? 若依然不滿(mǎn)足繼續(xù)往下判斷,依次類(lèi)推 ;
? 若以上條件都不滿(mǎn)足,執(zhí)行else里的代碼n ;
? 注:可以根據(jù)實(shí)際需要寫(xiě)N個(gè)條件,但這里演示只寫(xiě)2個(gè);
單條件分支語(yǔ)句和多條件分支語(yǔ)句總結(jié):
a)不管是單條件分支語(yǔ)句,還是多條件分支語(yǔ)句,else都可以省略(前提else中沒(méi)有代碼)
b)條件分支語(yǔ)句,如果只有一行代碼,則{}可以省略。
例:if(3>0)alert("雷工筆記");
c)分支語(yǔ)句可以相互嵌套。
2.2、三元表達(dá)式
就是單條件分支語(yǔ)句的另外一種寫(xiě)法
語(yǔ)法:
條件 ? 代碼1 : 代碼2;
語(yǔ)法說(shuō)明:
a)判斷條件的真假,如果為真,則執(zhí)行代碼1,后面的代碼2不執(zhí)行;
b)如果條件不成立,則執(zhí)行代碼2,前面的代碼1不執(zhí)行;
● 一般用來(lái)取值
2.3、switch分支語(yǔ)句
switch 分支語(yǔ)句就是多條件分支語(yǔ)句的另外一種寫(xiě)法
語(yǔ)法:
switch(數(shù)據(jù)/變量)
{
case 值1:
代碼1;
break;
case 值2:
代碼2;
break;
case 值3:
代碼3;
break;
default:
代碼n;
break;
}
釋義:
? 找到跟小括號(hào)里數(shù)據(jù)/變量全等的case值,并執(zhí)行里面對(duì)應(yīng)的代碼
? 若沒(méi)有全等 === 的則執(zhí)行 default里面的代碼
? 例:數(shù)據(jù)若跟值1全等,則執(zhí)行代碼1
注意事項(xiàng):
1>. switch case語(yǔ)句一般用于等值判斷,不適合于區(qū)間判斷;
2>. switch case一般需要配合break關(guān)鍵字使用 沒(méi)有break會(huì)造成case穿透(default后面的break可以省略);
3>.什么情況下使用switch語(yǔ)法?什么情況下使用多條件分支if語(yǔ)句?
a)在任何情況下都可以使用switch語(yǔ)句或者多條件分支語(yǔ)句;
b)如果變量的值是某些固定的值,推薦使用switch;
示例1:一年有12個(gè)月,1月-12月;
示例2:一年有4個(gè)季節(jié),春,夏,秋,冬
c)如果變量的值是一個(gè)范圍,推薦使用if多分支語(yǔ)句
示例:
1,現(xiàn)在my-pro項(xiàng)目下,新建若干用于測(cè)試的分支。
git checkout master #將HEAD指向master分支
git branch testdel #在master分之下新建分支
git checkout testdel #將HEAD指向testdel分支
#在這里修改一下style.css,例如加一個(gè)背景色background:#d8d8d8
git commit css/style.css -m'just a test commit' #在testdel分之下執(zhí)行一個(gè)commit操作
git branch testagain
?
git checkout master
git branch anothertest
gitk --all #使用gitk可視化查看當(dāng)前分支狀況
經(jīng)過(guò)多次分支新建及commit操作之后,我們的分支變成了如下圖的結(jié)構(gòu):
2,使用git branch -d 【分支名稱(chēng)】命令,刪除某個(gè)指定分支。
Yooye-2:my-pro yooye$ git branch -av #查看當(dāng)前分支狀態(tài)
anothertest dc7ecf7 let index.html link the style file
change-border-color 413552e change the box border-color
* master dc7ecf7 let index.html link the style file
testagain e1e471a just a test
testdel e1e471a just a test
Yooye-2:my-pro yooye$ git checkout master #進(jìn)入master分支
Switched to branch 'master'
Yooye-2:my-pro yooye$ git branch -d testagain #使用-d刪除某個(gè)分支
error: The branch 'testagain' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testagain'. #提示我們使用-D進(jìn)行刪除
Yooye-2:my-pro yooye$ git branch -D testagain #使用-D再次嘗試刪除某個(gè)分支
Deleted branch testagain (was e1e471a). #刪除成功
Yooye-2:my-pro yooye$ gitk --all #查看刪除后的可視化分支狀態(tài)
刪除testagain分之后的狀態(tài)如下:
3,當(dāng)我們使用git checkout在testdel與master分支間切換的時(shí)候,項(xiàng)目中的style.css等代碼文件,會(huì)隨之切換。如果刪除testdel分支,則在該分支下提交的所有commit操作記錄將全被移除。所以我們?cè)趧h除分支的之前一定要做版本確認(rèn)。
使用 git commit --amend命令,修改最近一次提交的commit的描述性文字。操作流程如下:
Yooye-2:my-pro yooye$ git checkout testdel #【1】進(jìn)入testdel分支
Switched to branch 'testdel'
?
Yooye-2:my-pro yooye$ git log -1 #【2】查看最近一次的提交記錄,注意這里是git log -[數(shù)字1]
commit e1e471a5945ab83673bc56055e3455e9fbec8e61 (HEAD -> testdel)
Author: 盧大濕 <dashi@vip.com>
Date: Fri Mar 1 10:26:49 2019 +0800
just a test # 【2-1】這是修改之前的描述文字
Yooye-2:my-pro yooye$ git commit --amend # 【3】執(zhí)行修改命令,進(jìn)入修改狀態(tài),詳細(xì)操作看下面第【4】步
?
Yooye-2:my-pro yooye$ git log -1 #【5】查看確定是否修改成功
commit 1062fa43b85ad7111738d4eaee56436279768757 (HEAD -> testdel)
Author: 盧大濕 <dashi@vip.com>
Date: Fri Mar 1 10:26:49 2019 +0800
just a test and i had change this words 【5-1】修改后的描述文字
Yooye-2:my-pro yooye$
【4】執(zhí)行g(shù)it commit --amend修改命令,修改的方式如下圖:
使用 git rebase -i [被修改的父級(jí)commit的唯一id] 命令進(jìn)入變基操作。
【注意】:上面使用的是父級(jí)commit進(jìn)入變基操作,進(jìn)去操作的是父級(jí)下面的commit。
1,因?yàn)閞ebase狀態(tài)下可以支持多種操作,這里我們要將需要修改的commit前面默認(rèn)pick操作方式改為reword(也就是修改的意思)。然后按照第二步中一樣的方式保存退出,進(jìn)入下一個(gè)操作界面。
2,這個(gè)操作界面,可以將原本commit的描述內(nèi)容進(jìn)行修改,如下圖第一行所示。然后繼續(xù)保存退出。
3,使用git log --graph 查看修改后的結(jié)果,如下圖:
根據(jù)上一步git log --graph的結(jié)果可以看出,其實(shí)上面有三個(gè)commit都是為了給讓index.html以正常的表現(xiàn)展示出來(lái),所以我們可以將除了readme操作之外的其他三個(gè)commit進(jìn)行合并。
1,使用git rebase -i [最開(kāi)始創(chuàng)建readme的commit唯一id]命令,進(jìn)入操作界面。將這三個(gè)commit合并至其中某一個(gè),然后保存退出進(jìn)入下一步。
pick 789f15c add a index.html file #【1】表示將其他commit合并至這個(gè)commit
squash e7bf7b0 add aaaaaaa style file #【2】合并
squash 4216faf let index.html link the style file #【3】合并
?
# Rebase 1bb42bc..4216faf onto 1bb42bc (3 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
#
# Note that empty commits are commented out
~
:wq!
2,填寫(xiě)此次合并的描述文字,并保留原commit的描述文字,方便后續(xù)查看。
# This is the 1st commit messages:
?
I am trying to make a combination, Yeah! #【1】此次合并操作的描述文字
?
add a index.html file # 【2-1】保留的原有commit描述文字
# This is the commit message #2:
?
add aaaaaaa style file # 【2-2】保留的原有commit描述文字
?
# This is the commit message #3:
?
let index.html link the style file # 【2-3】保留的原有commit描述文字
?
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date: Wed Feb 27 11:42:12 2019 +0800
#
# interactive rebase in progress; onto 1bb42bc
# Last commands done (3 commands done):
# squash e7bf7b0 add aaaaaaa style file
# squash 4216faf let index.html link the style file
# No commands remaining.
# You are currently rebasing branch 'anothertest' on '1bb42bc'.
#
# Changes to be committed:
# new file: css/style.css
# new file: index.html
#
# Untracked files:
# js/
#
:wq!
3,使用git log --graph 查看合并后的版本狀態(tài)。
1,基于上一步,為了演示我們將其他測(cè)試分支全部移除,只保留原本的master分支,及與index.html、style.css、readme.md相關(guān)的三個(gè)commit。
之后我們修改my-pro下的readme.md文件內(nèi)容,并執(zhí)行一次commit操作。然后使用git log --graph命令,查看當(dāng)前的commit狀態(tài)列表。
2,因?yàn)樽钋懊娓詈竺娴腸ommit都是關(guān)于readme的提交,所以我們需要將其合并。在執(zhí)行g(shù)it rebase -i [最下面的祖先commit]之前,記得復(fù)制改祖先commit的id(如:1bb42bc),以備使用。
進(jìn)入操作窗口后,按照下面代碼所示進(jìn)行操作保存退出。
pick 1bb42bc8 #【1】這一句是我們自己新增的,就是將另一個(gè)操作readme的commit操作合并過(guò)來(lái)
squash 702dcbf I am the real readme.md file # 【2】這一行本來(lái)在最下面,我們移動(dòng)到這一樣,并修改pick至squash
pick 2b2e247 I am trying to make a combination, Yeah!
?
# Rebase 1bb42bc..702dcbf onto 1bb42bc (2 commands)
#
# Commands:這里本來(lái)有很多command提示,被刪除了
# These lines can be re-ordered; they are executed from top to bottom.
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
:wq!
3,如果保存退出后提醒分支不連續(xù),我們可以使用git rebase --continue繼續(xù)執(zhí)行下一步操作。
1,修改my-pro倉(cāng)庫(kù)中index.html的內(nèi)容。
2,執(zhí)行一次git add 操作。
3,使用 git diff -cached 查看暫存區(qū)與HEAD所含文件差異。
Yooye-2:my-pro yooye$ git diff --cached #【1】執(zhí)行對(duì)比命令
diff --git a/index.html b/index.html
index 084901f..ec530c2 100644
--- a/index.html
+++ b/index.html
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="css/style.css">
- <title>Document</title> #【2-1】未改動(dòng)之前HEAD指向的舊內(nèi)容
+ <title>Learn Git</title> #【2-2】改動(dòng)后通過(guò)git add新增到暫存區(qū)的內(nèi)容
</head>
<body>
<div class="box"></div>
1,基于上一步操作,我們?cè)僬{(diào)整一下style.css文件(如:添加個(gè)背景),然后先不執(zhí)行g(shù)it add操作,這個(gè)時(shí)候,我們剛才編輯的style.css文件的改變就屬于工作區(qū)。
2,執(zhí)行g(shù)it diff命令,查看工作區(qū)與之前提交的暫存區(qū)文件區(qū)別。
Yooye-2:my-pro yooye$ git diff
diff --git a/css/style.css b/css/style.css
index 20ce14c..488853c 100644
--- a/css/style.css
+++ b/css/style.css
@@ -2,4 +2,5 @@
width: 100px;
height: 100px;
border: 1px solid red;
+ background: pink;
}
\ No newline at end of file
Yooye-2:my-pro yooye$
3,如果再提交至?xí)捍鎱^(qū)前,修改了多個(gè)文件,然而我們只想查看某個(gè)文件的變動(dòng),例如readme.md,可以使用如下命令:
git diff -- readme.md
使用場(chǎng)景,我們?cè)诘诹?,將index.html修改后,通過(guò)git add提交到了暫存區(qū),如果這個(gè)時(shí)候我們反悔了,就可以使用 git reset HEAD 命令,將其恢復(fù)到與HEAD一樣。測(cè)試流程如下:
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。