JavaScript基礎知識
1.1基本概念
爲什麼需要有JavaScript(JS有什麼作用)
HTML負責呈現什麼內容,CSS負責以何種方式來呈現
HTML+CSS:實現了靜態頁面
實際上,我們更多的頁面是動態的,比如12306:
時間也應該是動態顯示的。
還有驗證碼、註冊頁面的數據驗證……
那麼怎麼才能讓頁面動起來呢?
答案就是JavaScript!
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style type="text/css">
p{
color:red;
}
</style>
</head>
<body>
<p id="time">今天是……</p>
</body>
<script>
var p1 = document.getElementById("time");
p1.innerHTML = new Date().toString();
</script>
</html>
很明顯,這個內容不是HTML提供的,而是由腳本語言JS動態生成的。所以JS是實現動態頁面的,即頁面的行爲。
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
#div1{
height: 100px;
width: 100px;
background: skyblue;
margin: 0 auto;
}
</style>
</head>
<body>
<div id="div1" ></div>
</body>
<script language="javascript">
var timer = setInterval("zoom()",50);
var div = document.getElementById("div1");
var timer;
var width = 100;
function zoom(){
if(width >= 600){
clearTimeout(timer);
}
width = width + 5;
div.style.width = width + "px";
}
</script>
</html>
這個案例是用定時器動態去改變元素的寬度,從而實現動態的效果。
怎麼用?
兩種方式:
(1)內部引用:使用<script>標籤,代碼直接寫在標籤中。
(2)外部引用:使用<script>標籤引用,例如<script src=”E103-01-03.js”></script>
JS是一種解釋性語言
計算機語言分爲編譯型和解釋型
程序員使用高級語言編制程序,但是程序最終由計算機去執行,但是計算機只能執行機器語言(即二進制代碼),那麼這個過程就必然有一個從高級語言到機器語言的“翻譯”過程。
有兩種“翻譯”方式:
(1)編譯:將代碼整體翻譯成機器代碼,如果有錯誤則停止翻譯,全部成功翻譯完才能執行;
(2)解釋:將代碼翻譯一條馬上執行一條,如果遇到錯誤則停止。
JavaScript的註釋方式:
1.//單行註釋
2./*註釋內容*/多行註釋
計算機語言分爲兩種:編譯型語言:JAVA、C++、C、PHP...
解釋性語言:JavaScript、CSS...
程序設計基礎
2.1數據類型
計算機程序就是去處理現實中各種數據
數據的幾個屬性:名稱、值、類型
名稱是月銷量,值是47,數值
名稱是大小,值是“190×100mm”,字符串
是否包郵:是
名稱是是否包郵,值是“是”,布爾類型
名字:“曹鵬飛”字符串 string
身高:165 數值 number
體重:65 數值 number
性別:男 字符串 string
是否單身:是 布爾 boolean
alert() 警告提示框(打印)
typeof() 數據的類型
爲什麼要有數據類型?
生活中是存在不同的數據類型的,計算機要解決生活問題,那麼他就和生活中的數據類型產生映射,所以有了數據類型。
數值類型的表示形式:
十進制:25,2.56;
八進制:023(19)
十六進制:0x23(35)
科學計數法:3e2(3×102),3.5e-2(3.5×10-2)
2.2變量
爲什麼要有變量?
因爲生活中一些數據不是一成不變的,它的值會改變,所以JS裏面有了變量與之對應。
變量:
var name = "曹鵬飛";
Var variable的縮寫變量的意思。聲明一個變量。
變量名
Name 變量名
命名規則:
1、可以由字母、數字、下劃線和$組成
2、不能用數字開頭,因爲和八進制與十六進制會產生衝突
3、關鍵字不能使用(var,if)
Var 1name = “曹鵬飛”;
命名的原則:見名思義
規範:
(1)儘量使用英文單詞或組合,或者專業名詞
weight/color
fileName(駝峯命名法)
(2)儘量不要使用拼音
變量的值:
變量的類型是由變量的值決定的
系統會爲不同的類型分配不同的大小來存儲數據。
如果是布爾類型就分配一個字節大小來存儲
如果是數字和字符串,那麼根據它的大小和長度來分配字節數存儲。
JS是弱類型的語言,所有的類型的變量都用var來聲明。
JS是動態類型的語言,變量的類型會根據值的變化而變化,不會出錯。
什麼是變量?
變量就是一個內存單元。
用本質來解釋weight = weight - 5;
var weight = 65;
weight = weight - 5;
把名字爲weight的內存單元的值65拿出來,之後和5做減法運算,然後把得到的結果再放回到名字爲weight的內存單元中。
JS語言特點:
更加高級,不嚴謹。
變量不聲明就可以使用。
使用嚴謹的格式,就必須先定義變量才能才能使用。
"use strict";
weight = 65;
alert(weight);
Name這個名字是特殊的,使用name來給變量其名字是,不會報錯。
var weight1 = "中等";
weight1= 47;
alert(weight1);
此處輸出的不是47,而是“中等”,原因是兩個變量拼寫錯誤,而且不會報錯。
"use strict";
var
weight1 = "中等";
weightl =
65;
alert(weight1);
如果使用嚴格模式,明顯可以看到第二個變量拼寫錯誤。
2.2對象類型
對象在js當中對應的是object
定義一個狗的對象
var dog = {
name:"藏藏",
type:"藏獒",
color:"花色",
sex:"雄",
age:3,
marry:false
};
狗:
名字:“藏藏”
品種:“藏獒”
顏色:“花色”
性別:“公的”
年齡:3
行爲:走,跑,吃,睡覺。
是否婚配:否
使用new Object()定義一個對象類型的變量
var dog = new Object();
dog.name = "小七";
dog.age = 3;
dog.marry = false;
爲什麼要有對象?
和爲什麼有數據類型是一樣的,就是生活中處處是對象,所以JS中有這種數據類型。
如何使用對象裏面的屬性?
使用對象名+.+對象屬性名
alert(typeof dog.name);
思考:對象中的屬性中能不能有對象類型?
答案是可以的,下面給出一個案例
var bir = { month:8, day:29 }; var friend = { name:"大凌", sex:"男", birthday:bir, phone:"152********" }; alert(friend.phone);