2018-09-12學(xué)習(xí)JavaScript

一、如何插入JS

使用<script>標(biāo)簽在HTML網(wǎng)頁中插入JavaScript代碼。注意, <script>標(biāo)簽要成對(duì)出現(xiàn),并把JavaScript代碼寫在<script></script>之間。


image.png

<script type="text/javascript">表示在<script></script>之間的是文本類型(text),javascript是為了告訴瀏覽器里面的文本是屬于JavaScript語言。

二、引用JS外部文件

JavaScript代碼只能寫在HTML文件中嗎?當(dāng)然不是,我們可以把HTML文件和JS代碼分開,并單獨(dú)創(chuàng)建一個(gè)JavaScript文件(簡稱JS文件),其文件后綴通常為.js,然后將JS代碼直接寫在JS文件中。


image.png

注意:在JS文件中,不需要<script>標(biāo)簽,直接編寫JavaScript代碼就可以了。
JS文件不能直接運(yùn)行,需嵌入到HTML文件中執(zhí)行,我們需在HTML中添加如下代碼,就可將JS文件嵌入HTML文件中。
<script src="script.js"></script>


image.png

三、JS在頁面中的位置

我們可以將JavaScript代碼放在html文件中任何位置,但是我們一般放在網(wǎng)頁的head或者body部分。
放在<head>部分
最常用的方式是在頁面中head部分放置<script>元素,瀏覽器解析head部分就會(huì)執(zhí)行這個(gè)代碼,然后才解析頁面的其余部分。
放在<body>部分
JavaScript代碼在網(wǎng)頁讀取到該語句的時(shí)候就會(huì)執(zhí)行。


image.png

注意: javascript作為一種腳本語言可以放在html頁面中任何位置,但是瀏覽器解釋html時(shí)是按先后順序的,所以前面的script就先被執(zhí)行。比如進(jìn)行頁面顯示初始化的js必須放在head里面,因?yàn)槌跏蓟家筇崆斑M(jìn)行(如給頁面body設(shè)置css等);而如果是通過事件調(diào)用執(zhí)行的function那么對(duì)位置沒什么要求的。

四、JavaScript-認(rèn)識(shí)語句和符號(hào)

JavaScript語句是發(fā)給瀏覽器的命令。這些命令的作用是告訴瀏覽器要做的事情。
每一句JavaScript代碼格式: “語句;”

<script type="text/javascript">
   alert("hello!");
</script>

例子中的alert("hello!");就是一個(gè)JavaScript語句.
一行的結(jié)束就被認(rèn)定為語句的結(jié)束,通常在結(jié)尾加上一個(gè)分號(hào)";"來表示語句的結(jié)束。
看看下面這段代碼,有三條語句,每句結(jié)束后都有";",按順序執(zhí)行語句。

<script type="text/javascript">
   document.write("I");
   document.write("love");
   document.write("JavaScript");
</script>

注意:

  1. “;”分號(hào)要在英文狀態(tài)下輸入,同樣,JS中的代碼和符號(hào)都要在英文狀態(tài)下輸入。

  2. 雖然分號(hào)“;”也可以不寫,但我們要養(yǎng)成編程的好習(xí)慣,記得在語句末尾寫上分號(hào)。

JavaScript-注釋很重要

注釋的作用是提高代碼的可讀性,幫助自己和別人閱讀和理解你所編寫的JavaScript代碼,注釋的內(nèi)容不會(huì)在網(wǎng)頁中顯示。注釋可分為單行注釋與多行注釋兩種。

我們?yōu)榱朔奖汩喿x,注釋內(nèi)容一般放到需要解釋語句的結(jié)尾處或周圍。

單行注釋,在注釋內(nèi)容前加符號(hào) “//”。

<script type="text/javascript">
  document.write("單行注釋使用'//'");  // 我是注釋,該語句功能在網(wǎng)頁中輸出內(nèi)容
</script>

多行注釋以"/"開始,以"/"結(jié)束。

<script type="text/javascript">
   document.write("多行注釋使用/*注釋內(nèi)容*/");
   /*
    多行注釋
    養(yǎng)成書寫注釋的良好習(xí)慣
   */
</script>

JavaScript-什么是變量

什么是變量? 從字面上看,變量是可變的量;從編程角度講,變量是用于存儲(chǔ)某種/某些數(shù)值的存儲(chǔ)器。我們可以把變量看做一個(gè)盒子,為了區(qū)分盒子,可以用BOX1,BOX2等名稱代表不同盒子,BOX1就是盒子的名字(也就是變量的名字)。


image.png

定義變量使用關(guān)鍵字var,語法如下:

var 變量名

變量名可以任意取名,但要遵循命名規(guī)則:

1.變量必須使用字母、下劃線(_)或者美元符($)開始。

2.然后可以使用任意多個(gè)英文字母、數(shù)字、下劃線(_)或者美元符($)組成。

3.不能使用JavaScript關(guān)鍵詞與JavaScript保留字。

變量要先聲明再賦值,如下:

var mychar;
mychar="javascript";
var mynum = 6;
變量可以重復(fù)賦值,如下:
var mychar;
mychar="javascript";
mychar="hello";

注意:

  1. 在JS中區(qū)分大小寫,如變量mychar與myChar是不一樣的,表示是兩個(gè)變量。

  2. 變量雖然也可以不聲明,直接使用,但不規(guī)范,需要先聲明,后使用。

JavaScript-判斷語句(if...else)

if...else語句是在指定的條件成立時(shí)執(zhí)行代碼,在條件不成立時(shí)執(zhí)行else后的代碼。

語法:

if(條件)
{ 條件成立時(shí)執(zhí)行的代碼 }
else
{ 條件不成立時(shí)執(zhí)行的代碼 }

假設(shè)我們通過年齡來判斷是否為成年人,如年齡大于等于18歲,是成年人,否則不是成年人。代碼表示如下:

<script type="text/javascript">
   var myage = 18;
   if(myage>=18)  //myage>=18是判斷條件
   { document.write("你是成年人。");}
   else  //否則年齡小于18
   { document.write("未滿18歲,你不是成年人。");}
</script>

JavaScript-什么是函數(shù)

函數(shù)是完成某個(gè)特定功能的一組語句。如沒有函數(shù),完成任務(wù)可能需要五行、十行、甚至更多的代碼。這時(shí)我們就可以把完成特定功能的代碼塊放到一個(gè)函數(shù)里,直接調(diào)用這個(gè)函數(shù),就省重復(fù)輸入大量代碼的麻煩。

如何定義一個(gè)函數(shù)呢?基本語法如下:

function 函數(shù)名()
{
     函數(shù)代碼;
}

說明:

  1. function定義函數(shù)的關(guān)鍵字。

  2. "函數(shù)名"你為函數(shù)取的名字。

  3. "函數(shù)代碼"替換為完成特定功能的代碼。

我們來編寫一個(gè)實(shí)現(xiàn)兩數(shù)相加的簡單函數(shù),并給函數(shù)起個(gè)有意義的名字:“add2”,代碼如下:

function add2(){
   var sum = 3 + 2;
   alert(sum);
}

函數(shù)調(diào)用:

函數(shù)定義好后,是不能自動(dòng)執(zhí)行的,所以需調(diào)用它,只需直接在需要的位置寫函數(shù)就ok了,代碼如下:


image.png

JavaScript-輸出內(nèi)容(document.write)

document.write() 可用于直接向 HTML 輸出流寫內(nèi)容。簡單的說就是直接在網(wǎng)頁中輸出內(nèi)容。

第一種:輸出內(nèi)容用""括起,直接輸出""號(hào)內(nèi)的內(nèi)容。

<script type="text/javascript">
  document.write("I love JavaScript!"); //內(nèi)容用""括起來,""里的內(nèi)容直接輸出。
</script>
第二種:通過變量,輸出內(nèi)容

<script type="text/javascript">
  var mystr="hello world!";
  document.write(mystr);  //直接寫變量名,輸出變量存儲(chǔ)的內(nèi)容。
</script>
第三種:輸出多項(xiàng)內(nèi)容,內(nèi)容之間用+號(hào)連接。

<script type="text/javascript">
  var mystr="hello";
  document.write(mystr+"I love JavaScript"); //多項(xiàng)內(nèi)容之間用+號(hào)連接
</script>
第四種:輸出HTML標(biāo)簽,并起作用,標(biāo)簽使用""括起來。

<script type="text/javascript">
  var mystr="hello";
document.write(mystr+"<br>");//輸出hello后,輸出一個(gè)換行符
  document.write("JavaScript");

JS中如何輸出空格

1. 使用輸出html標(biāo)簽&nbsp;來解決

 document.write("&nbsp;&nbsp;"+"1"+"&nbsp;&nbsp;&nbsp;&nbsp;"+"23");
 結(jié)果:  1    23
2. 使用CSS樣式來解決

 document.write("<span style='white-space:pre;'>"+"  1        2    3    "+"</span>");
 結(jié)果:  1       2     3    
 在輸出時(shí)添加“white-space:pre;”樣式屬性。這個(gè)樣式表示"空白會(huì)被瀏覽器保留"

JavaScript-警告(alert 消息對(duì)話框)

我們?cè)谠L問網(wǎng)站的時(shí)候,有時(shí)會(huì)突然彈出一個(gè)小窗口,上面寫著一段提示信息文字。如果你不點(diǎn)擊“確定”,就不能對(duì)網(wǎng)頁做任何操作,這個(gè)小窗口就是使用alert實(shí)現(xiàn)的。

語法:

alert(字符串或變量);  
看下面的代碼:

<script type="text/javascript">
   var mynum = 30;
   alert("hello!");
   alert(mynum);
</script>
注:alert彈出消息對(duì)話框(包含一個(gè)確定按鈕)。

結(jié)果:按順序彈出消息框


image.png

image.png

注意:

  1. 在點(diǎn)擊對(duì)話框"確定"按鈕前,不能進(jìn)行任何其它操作。

  2. 消息對(duì)話框通常可以用于調(diào)試程序。

  3. alert輸出內(nèi)容,可以是字符串或變量,與document.write 相似。

JavaScript-確認(rèn)(confirm 消息對(duì)話框)

confirm 消息對(duì)話框通常用于允許用戶做選擇的動(dòng)作,如:“你對(duì)嗎?”等。彈出對(duì)話框(包括一個(gè)確定按鈕和一個(gè)取消按鈕)。

語法:

confirm(str);
參數(shù)說明:
str:在消息對(duì)話框中要顯示的文本
返回值: Boolean值

返回值:
當(dāng)用戶點(diǎn)擊"確定"按鈕時(shí),返回true
當(dāng)用戶點(diǎn)擊"取消"按鈕時(shí),返回false
注: 通過返回值可以判斷用戶點(diǎn)擊了什么按鈕

看下面的代碼:

<script type="text/javascript">
    var mymessage=confirm("你喜歡JavaScript嗎?");
    if(mymessage==true)
    {   document.write("很好,加油!");   }
    else
    {  document.write("JS功能強(qiáng)大,要學(xué)習(xí)噢!");   }
</script>
image.png

注: 消息對(duì)話框是排它的,即用戶在點(diǎn)擊對(duì)話框按鈕前,不能進(jìn)行任何其它操作。

JavaScript-提問(prompt 消息對(duì)話框)

prompt彈出消息對(duì)話框,通常用于詢問一些需要與用戶交互的信息。彈出消息對(duì)話框(包含一個(gè)確定按鈕、取消按鈕與一個(gè)文本輸入框)。

語法:

prompt(str1, str2);
參數(shù)說明:

str1: 要顯示在消息對(duì)話框中的文本,不可修改
str2:文本框中的內(nèi)容,可以修改

返回值:

1. 點(diǎn)擊確定按鈕,文本框中的內(nèi)容將作為函數(shù)返回值
2. 點(diǎn)擊取消按鈕,將返回null

看看下面代碼:

var myname=prompt("請(qǐng)輸入你的姓名:");
if(myname!=null)
  {   alert("你好"+myname); }
else
  {  alert("你好 my friend.");  }
image.png

注:在用戶點(diǎn)擊對(duì)話框的按鈕前,不能進(jìn)行任何其它操作。

JavaScript-打開新窗口(window.open)

open() 方法可以查找一個(gè)已經(jīng)存在或者新建的瀏覽器窗口.

語法:

window.open([URL], [窗口名稱], [參數(shù)字符串])

參數(shù)說明:

URL:可選參數(shù),在窗口中要顯示網(wǎng)頁的網(wǎng)址或路徑。如果省略這個(gè)參數(shù),或者它的值是空字符串,那么窗口就不顯示任何文檔。
窗口名稱:可選參數(shù),被打開窗口的名稱。
    1.該名稱由字母、數(shù)字和下劃線字符組成。
    2."_top"、"_blank"、"_self"具有特殊意義的名稱。
       _blank:在新窗口顯示目標(biāo)網(wǎng)頁
       _self:在當(dāng)前窗口顯示目標(biāo)網(wǎng)頁
       _top:框架網(wǎng)頁中在上部窗口中顯示目標(biāo)網(wǎng)頁
    3.相同 name 的窗口只能創(chuàng)建一個(gè),要想創(chuàng)建多個(gè)窗口則 name 不能相同。
   4.name 不能包含有空格。
參數(shù)字符串:可選參數(shù),設(shè)置窗口參數(shù),各參數(shù)用逗號(hào)隔開。

參數(shù)表:


image.png
例如:打開http://www.imooc.com網(wǎng)站,大小為300px * 200px,無菜單,無工具欄,無狀態(tài)欄,有滾動(dòng)條窗口:
<script type="text/javascript"> window.open('http://www.imooc.com','_blank','width=300,height=200,menubar=no,toolbar=no, status=no,scrollbars=yes')
</script>

注意:運(yùn)行結(jié)果考慮瀏覽器兼容問題。

JavaScript-關(guān)閉窗口(window.close)

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

用法:

window.close();   //關(guān)閉本窗口
或

<窗口對(duì)象>.close();   //關(guān)閉指定的窗口
例如:關(guān)閉新建的窗口。

<script type="text/javascript">
   var mywin=window.open('http://www.imooc.com'); //將新打的窗口對(duì)象,存儲(chǔ)在變量mywin中
   mywin.close();
</script>

注意:上面代碼在打開新窗口的同時(shí),關(guān)閉該窗口,看不到被打開的窗口。

認(rèn)識(shí)DOM

文檔對(duì)象模型DOM(Document Object Model)定義訪問和處理HTML文檔的標(biāo)準(zhǔn)方法。DOM 將HTML文檔呈現(xiàn)為帶有元素、屬性和文本的樹結(jié)構(gòu)(節(jié)點(diǎn)樹)。


image.png

將HTML代碼分解為DOM節(jié)點(diǎn)層次圖:


image.png

HTML文檔可以說由節(jié)點(diǎn)構(gòu)成的集合,三種常見的DOM節(jié)點(diǎn):
  1. 元素節(jié)點(diǎn):上圖中<html>、<body>、<p>等都是元素節(jié)點(diǎn),即標(biāo)簽。

  2. 文本節(jié)點(diǎn):向用戶展示的內(nèi)容,如<li>...</li>中的JavaScript、DOM、CSS等文本。

  3. 屬性節(jié)點(diǎn):元素屬性,如<a>標(biāo)簽的鏈接屬性。

看下面代碼:

<a >JavaScript DOM</a>
image.png

通過ID獲取元素

學(xué)過HTML/CSS樣式,都知道,網(wǎng)頁由標(biāo)簽將信息組織起來,而標(biāo)簽的id屬性值是唯一的,就像是每人有一個(gè)身份證號(hào)一樣,只要通過身份證號(hào)就可以找到相對(duì)應(yīng)的人。那么在網(wǎng)頁中,我們通過id先找到標(biāo)簽,然后進(jìn)行操作。

語法:

 document.getElementById(“id”) 
image.png

結(jié)果:null或[object HTMLParagraphElement]


image.png

注:獲取的元素是一個(gè)對(duì)象,如想對(duì)元素進(jìn)行操作,我們要通過它的屬性或方法。

innerHTML 屬性

innerHTML 屬性用于獲取或替換 HTML 元素的內(nèi)容。

語法:

Object.innerHTML

注意:

1.Object是獲取的元素對(duì)象,如通過document.getElementById("ID")獲取的元素。

2.注意書寫,innerHTML區(qū)分大小寫。

我們通過id="con"獲取<p> 元素,并將元素的內(nèi)容輸出和改變?cè)貎?nèi)容,代碼如下:


image.png

結(jié)果


image.png

改變 HTML 樣式

HTML DOM 允許 JavaScript 改變 HTML 元素的樣式。如何改變 HTML 元素的樣式呢?

語法:

Object.style.property=new style;

注意:Object是獲取的元素對(duì)象,如通過document.getElementById("id")獲取的元素。
基本屬性表(property):


image.png

注意:該表只是一小部分CSS樣式屬性,其它樣式也可以通過該方法設(shè)置和修改。

看看下面的代碼:

改變 <p> 元素的樣式,將顏色改為紅色,字號(hào)改為20,背景顏色改為藍(lán):

<p id="pcon">Hello World!</p>
<script>
   var mychar = document.getElementById("pcon");
   mychar.style.color="red";
   mychar.style.fontSize="20";
   mychar.style.backgroundColor ="blue";
</script>
image.png

顯示和隱藏(display屬性)

網(wǎng)頁中經(jīng)常會(huì)看到顯示和隱藏的效果,可通過display屬性來設(shè)置。

語法:

Object.style.display = value

注意:Object是獲取的元素對(duì)象,如通過document.getElementById("id")獲取的元素。

value取值:


image.png

看看下面代碼:


image.png

控制類名(className 屬性)

className 屬性設(shè)置或返回元素的class 屬性。

語法:

object.className = classname

作用:

1.獲取元素的class 屬性

  1. 為網(wǎng)頁內(nèi)的某個(gè)元素指定一個(gè)css樣式來更改該元素的外觀

看看下面代碼,獲得 <p> 元素的 class 屬性和改變className:


image.png

結(jié)果:


image.png

重置

document.getElementById("ID").removeAttribute("style");
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,564評(píng)論 0 13
  • HTML 5 HTML5概述 因特網(wǎng)上的信息是以網(wǎng)頁的形式展示給用戶的,因此網(wǎng)頁是網(wǎng)絡(luò)信息傳遞的載體。網(wǎng)頁文件是用...
    阿啊阿吖丁閱讀 4,953評(píng)論 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,818評(píng)論 1 45
  • 前言 本系列文章主要是基于W3school這個(gè)學(xué)習(xí)網(wǎng)站來總結(jié)的,之所以會(huì)自己總結(jié)一番,一來是因?yàn)榫W(wǎng)站中的實(shí)例效果,...
    碼字與律動(dòng)閱讀 2,977評(píng)論 7 71
  • 不那么準(zhǔn)確來說,從2013年以來自媒體就如一個(gè)新生的嬰兒開始面對(duì)這紛繁的信息化時(shí)代了!在這過程中有不少人開始走...
    北極鑫閱讀 459評(píng)論 0 0

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