TML,即超文本標記語言(HyperText Markup Language),是構建網頁和網絡應用的基石。自從它的誕生以來,HTML經歷了多次迭代,每個版本都對Web開發的可能性進行了擴展。以下是HTML發展歷程的概述,包括每個主要版本的變化和未來趨勢。
HTML的歷史可以追溯到1989年,當時**蒂姆·伯納斯-李(Tim Berners-Lee)**在CERN(歐洲核子研究組織)提出了一個創新的想法,即創建一個互聯的信息系統,這個系統后來演變成了萬維網(World Wide Web)。HTML是這個系統的核心組成部分,它允許文檔通過超鏈接互相引用,形成一個信息網絡。
隨著Web技術的不斷發展,HTML也在不斷進化。未來的HTML可能會包括:
HTML的歷史是Web技術發展的縮影。從簡單的文檔標記到復雜的Web應用平臺,HTML已經成為現代互聯網不可或缺的一部分。隨著技術的進步,我們可以期待HTML將繼續演進,以滿足未來網絡世界的需求。
嘍,大家好,我是雷工。
今天學習JavaScript基礎知識的分支語句,以下為學習筆記。
○寫幾句就從上往下執行幾句,這種叫做順序結構;
○有時要根據條件選擇執行代碼,這種叫分支結構;
○某段代碼被重復執行,就叫循環結構;
○分支語句可以讓我們有選擇性的執行想要執行的代碼
○分支語句包含:
→ if分支語句
→ 三元運算符
→ switch語句
2.1、if分支語句
● if語句有三種使用:單分支、雙分支、多分支
● 單條件分支語句:程序如果執行的時候,如果條件成立就執行某一行代碼,如果條件不成立則執行其他代碼
使用語法:
if(條件)
{
滿足條件要執行的代碼
}
? 小括號內的條件為true時,進入大括號里執行代碼。
? 小括號內的結果若不是布爾類型時,會發生隱式轉換轉換為布爾類型。
? 如果大括號內只有一個語句,大括號可以省略,但是,一般不提倡這么做~
● 雙分支if語法:
if(條件)
{
滿足條件要執行的代碼
}
else
{
不滿足條件時要執行的代碼
}
語法解釋:
1>程序先判斷if中的條件是否成立(true),如果條件成立,則執行if后面對應的代碼,else中的代碼不會執行。
2>如果if中的條件不成立(False),程序只執行else后{}中的代碼,if后{}內的代碼不會執行。
● 多條件分支語句if:
應用場景:當有多個結果的時候,比如學習成績可以分為:優秀、良好、及格、不及格四個選項。
語法:
if(條件1)
{
滿足條件1要執行的代碼1
}
else if(條件2)
{
滿足條件2要執行的代碼2
}
else if(條件3)
{
滿足條件3要執行的代碼3
}
else
{
以上條件均不滿足時執行代碼n
}
語法說明:
? 先判斷條件1,若滿足條件1就執行代碼1,其他代碼統統不執行;
? 若不滿足則按順序向下判斷條件2,滿足條件2執行代碼2,其他代碼不執行;
? 若依然不滿足繼續往下判斷,依次類推 ;
? 若以上條件都不滿足,執行else里的代碼n ;
? 注:可以根據實際需要寫N個條件,但這里演示只寫2個;
單條件分支語句和多條件分支語句總結:
a)不管是單條件分支語句,還是多條件分支語句,else都可以省略(前提else中沒有代碼)
b)條件分支語句,如果只有一行代碼,則{}可以省略。
例:if(3>0)alert("雷工筆記");
c)分支語句可以相互嵌套。
2.2、三元表達式
就是單條件分支語句的另外一種寫法
語法:
條件 ? 代碼1 : 代碼2;
語法說明:
a)判斷條件的真假,如果為真,則執行代碼1,后面的代碼2不執行;
b)如果條件不成立,則執行代碼2,前面的代碼1不執行;
● 一般用來取值
2.3、switch分支語句
switch 分支語句就是多條件分支語句的另外一種寫法
語法:
switch(數據/變量)
{
case 值1:
代碼1;
break;
case 值2:
代碼2;
break;
case 值3:
代碼3;
break;
default:
代碼n;
break;
}
釋義:
? 找到跟小括號里數據/變量全等的case值,并執行里面對應的代碼
? 若沒有全等 === 的則執行 default里面的代碼
? 例:數據若跟值1全等,則執行代碼1
注意事項:
1>. switch case語句一般用于等值判斷,不適合于區間判斷;
2>. switch case一般需要配合break關鍵字使用 沒有break會造成case穿透(default后面的break可以省略);
3>.什么情況下使用switch語法?什么情況下使用多條件分支if語句?
a)在任何情況下都可以使用switch語句或者多條件分支語句;
b)如果變量的值是某些固定的值,推薦使用switch;
示例1:一年有12個月,1月-12月;
示例2:一年有4個季節,春,夏,秋,冬
c)如果變量的值是一個范圍,推薦使用if多分支語句
示例:
1,現在my-pro項目下,新建若干用于測試的分支。
git checkout master #將HEAD指向master分支
git branch testdel #在master分之下新建分支
git checkout testdel #將HEAD指向testdel分支
#在這里修改一下style.css,例如加一個背景色background:#d8d8d8
git commit css/style.css -m'just a test commit' #在testdel分之下執行一個commit操作
git branch testagain
?
git checkout master
git branch anothertest
gitk --all #使用gitk可視化查看當前分支狀況
經過多次分支新建及commit操作之后,我們的分支變成了如下圖的結構:
2,使用git branch -d 【分支名稱】命令,刪除某個指定分支。
Yooye-2:my-pro yooye$ git branch -av #查看當前分支狀態
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 #進入master分支
Switched to branch 'master'
Yooye-2:my-pro yooye$ git branch -d testagain #使用-d刪除某個分支
error: The branch 'testagain' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testagain'. #提示我們使用-D進行刪除
Yooye-2:my-pro yooye$ git branch -D testagain #使用-D再次嘗試刪除某個分支
Deleted branch testagain (was e1e471a). #刪除成功
Yooye-2:my-pro yooye$ gitk --all #查看刪除后的可視化分支狀態
刪除testagain分之后的狀態如下:
3,當我們使用git checkout在testdel與master分支間切換的時候,項目中的style.css等代碼文件,會隨之切換。如果刪除testdel分支,則在該分支下提交的所有commit操作記錄將全被移除。所以我們在刪除分支的之前一定要做版本確認。
使用 git commit --amend命令,修改最近一次提交的commit的描述性文字。操作流程如下:
Yooye-2:my-pro yooye$ git checkout testdel #【1】進入testdel分支
Switched to branch 'testdel'
?
Yooye-2:my-pro yooye$ git log -1 #【2】查看最近一次的提交記錄,注意這里是git log -[數字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】執行修改命令,進入修改狀態,詳細操作看下面第【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】執行git commit --amend修改命令,修改的方式如下圖:
使用 git rebase -i [被修改的父級commit的唯一id] 命令進入變基操作。
【注意】:上面使用的是父級commit進入變基操作,進去操作的是父級下面的commit。
1,因為rebase狀態下可以支持多種操作,這里我們要將需要修改的commit前面默認pick操作方式改為reword(也就是修改的意思)。然后按照第二步中一樣的方式保存退出,進入下一個操作界面。
2,這個操作界面,可以將原本commit的描述內容進行修改,如下圖第一行所示。然后繼續保存退出。
3,使用git log --graph 查看修改后的結果,如下圖:
根據上一步git log --graph的結果可以看出,其實上面有三個commit都是為了給讓index.html以正常的表現展示出來,所以我們可以將除了readme操作之外的其他三個commit進行合并。
1,使用git rebase -i [最開始創建readme的commit唯一id]命令,進入操作界面。將這三個commit合并至其中某一個,然后保存退出進入下一步。
pick 789f15c add a index.html file #【1】表示將其他commit合并至這個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,填寫此次合并的描述文字,并保留原commit的描述文字,方便后續查看。
# 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 查看合并后的版本狀態。
1,基于上一步,為了演示我們將其他測試分支全部移除,只保留原本的master分支,及與index.html、style.css、readme.md相關的三個commit。
之后我們修改my-pro下的readme.md文件內容,并執行一次commit操作。然后使用git log --graph命令,查看當前的commit狀態列表。
2,因為最前面跟最后面的commit都是關于readme的提交,所以我們需要將其合并。在執行git rebase -i [最下面的祖先commit]之前,記得復制改祖先commit的id(如:1bb42bc),以備使用。
進入操作窗口后,按照下面代碼所示進行操作保存退出。
pick 1bb42bc8 #【1】這一句是我們自己新增的,就是將另一個操作readme的commit操作合并過來
squash 702dcbf I am the real readme.md file # 【2】這一行本來在最下面,我們移動到這一樣,并修改pick至squash
pick 2b2e247 I am trying to make a combination, Yeah!
?
# Rebase 1bb42bc..702dcbf onto 1bb42bc (2 commands)
#
# Commands:這里本來有很多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,如果保存退出后提醒分支不連續,我們可以使用git rebase --continue繼續執行下一步操作。
1,修改my-pro倉庫中index.html的內容。
2,執行一次git add 操作。
3,使用 git diff -cached 查看暫存區與HEAD所含文件差異。
Yooye-2:my-pro yooye$ git diff --cached #【1】執行對比命令
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】未改動之前HEAD指向的舊內容
+ <title>Learn Git</title> #【2-2】改動后通過git add新增到暫存區的內容
</head>
<body>
<div class="box"></div>
1,基于上一步操作,我們再調整一下style.css文件(如:添加個背景),然后先不執行git add操作,這個時候,我們剛才編輯的style.css文件的改變就屬于工作區。
2,執行git diff命令,查看工作區與之前提交的暫存區文件區別。
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,如果再提交至暫存區前,修改了多個文件,然而我們只想查看某個文件的變動,例如readme.md,可以使用如下命令:
git diff -- readme.md
使用場景,我們在第六步,將index.html修改后,通過git add提交到了暫存區,如果這個時候我們反悔了,就可以使用 git reset HEAD 命令,將其恢復到與HEAD一樣。測試流程如下:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。