JS在頁面中的位置
我們可以將JavaScript代碼放在HTML文件中任何位置,但是我們一般放在網(wǎng)頁的<head>
或者<body>
部分诅岩。放在
<head>
部分
最常用的方式是在頁面中<head>
部分放置<script>
元素,瀏覽器解析head部分就會執(zhí)行這個代碼,然后才解析頁面的其余部分渐逃。-
放在
<body>
部分
JavaScript代碼在網(wǎng)頁讀取到該語句的時候就會執(zhí)行。
注意:JavaScript作為一種腳本語言可以放在html頁面中任何位置民褂,但是瀏覽器解釋html時是按先后順序的茄菊,所以前面的script就先被執(zhí)行。比如進行頁面顯示初始化的js必須放在<head>
里面赊堪,因為初始化都要求提前進行(如給頁面body設置css等)面殖;而如果是通過事件調用執(zhí)行的function,那么對位置沒什么要求的哭廉。 引用JS外部文件
<script src="script.js"></script>
-
變量
3.1 語法var 變量名;
3.2 變量名命名規(guī)則:
* 可以使用任意多個英文字母脊僚、數(shù)字、下劃線(_)或者美元符($)組成遵绰;
* 不能以數(shù)字開始辽幌;
* 不能使用關鍵詞與保留字。
3.3 變量要先聲明再賦值椿访,如下:var mychar; mychar="javascript"; var mynum = 6;
3.4 變量可以重復賦值乌企,如下:
var mychar; mychar="javascript"; mychar="hello";
注意:
- 在JS中嚴格區(qū)分大小寫,如變量mychar與myChar是不一樣的成玫,表示是兩個變量加酵。
- 變量雖然也可以不聲明,直接使用哭当,但不規(guī)范猪腕,需要先聲明,后使用钦勘。
數(shù)組
數(shù)組是一組按順序排列的集合陋葡,集合的每個值稱為元素。JavaScript的數(shù)組可以包括任意數(shù)據(jù)類型彻采。例如:
[1, 2, 3.14, 'Hello', null, true];
上述數(shù)組包含6個元素脖岛。數(shù)組用[]
表示朵栖,元素之間用,
分隔。
另一種創(chuàng)建數(shù)組的方法是通過Array()函數(shù)實現(xiàn):
new Array(1, 2, 3); // 創(chuàng)建了數(shù)組[1, 2, 3]
然而柴梆,出于代碼的可讀性考慮,強烈建議直接使用[]终惑。
數(shù)組的元素可以通過索引來訪問绍在。請注意,索引的起始值為0:
var arr = [1, 2, 3.14, 'Hello', null, true];
arr[0]; // 返回索引為0的元素雹有,即1
arr[5]; // 返回索引為5的元素偿渡,即true
arr[6]; // 索引超出了范圍,返回undefined
- 對象
JavaScript中的對象可以理解為OC中的字典:有鍵值對組成的無序集合霸奕。重點有三:- 鍵:必須是字符串溜宽,也稱為對象的屬性;
- 值:可以是任意類型质帅;
- 訪問方法:以
對象名.屬性名
的形式訪問适揉;
示例:
var person = {
pID = 1,
pName = 'CC',
pAge = 20,
};
console.log(person.pID);
- strict模式
JavaScript在設計之初,為了方便初學者學習煤惩,并不強制要求用var
申明變量嫉嘀。這個設計錯誤帶來了嚴重的后果:如果一個變量沒有通過var
申明就被使用,那么該變量就自動被申明為全局變量:
i = 10; // i現(xiàn)在是全局變量
在同一個頁面的不同的JavaScript文件中魄揉,如果都不用var
申明剪侮,恰好都使用了變量i,將造成變量i互相影響洛退,產生難以調試的錯誤結果瓣俯。
使用var
申明的變量則不是全局變量,它的范圍被限制在該變量被申明的函數(shù)體內(函數(shù)的概念將稍后講解)兵怯,同名變量在不同的函數(shù)體內互不沖突彩匕。
為了修補JavaScript這一嚴重設計缺陷,ECMA在后續(xù)規(guī)范中推出了strict模式摇零,在strict模式下運行的JavaScript代碼推掸,強制通過var
申明變量,未使用var
申明變量就使用的驻仅,將導致運行錯誤谅畅。
啟用strict模式的方法是在JavaScript代碼的第一行寫上:
'use strict';
這是一個字符串,不支持strict模式的瀏覽器會把它當做一個字符串語句執(zhí)行噪服,支持strict模式的瀏覽器將開啟strict模式運行JavaScript毡泻。
來測試一下你的瀏覽器是否能支持strict模式:
'use strict';
// 如果瀏覽器支持strict模式,
// 下面的代碼將報ReferenceError錯誤:
abc = 'Hello, world';
alert(abc);
擴展內容: