Js基礎知識
1.基本概念
爲什麼需要有JavaScript(JS有什麼用)
HTML:負責呈現內容
CSS:負責內容呈現的方式
HTML+CSS:實現了靜態頁面
實際上,我們更多的頁面的要求是動態的
比如新浪的動態新聞,熱點,聚焦...頁面的自動切換。
比如時間也是動態顯示的。
還有驗證碼、註冊頁面的數據驗證...
怎麼才能讓頁面動起來?
答案就是JavaScript。
案例1:
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8"/>
<title></title>
<style>
p{
color: red;
}
</style>
</head>
<body>
<p id="time">今天是...</p>
</body>
<script src="E103-01-01.html"></script>
<script>
var
p1 = document.getElementById("time");
p1.innerHTML
= new
Data().toString();
</script>
</html>
實現的效果爲:
很明顯,這個內容不是HTML提供的,而是由JS動態生成。所以JS
是實現動態頁面的,即頁面的行爲。
案例2:
<!DOCTYPE
html>
<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>標籤,代碼直接寫在標籤中。
JS:負責內容的動作交互(行爲)
(2) 外部引用,用<script src=“路徑”></script>
JavaScript的備註方式:1、單行註釋 //.....
2、多行註釋 /*...*/
Js是一種解釋型語言。
計算機語言分爲兩種,編譯型語言,java,C,C++,C#,PHP...
解釋性語言:JS、CSS等...
程序員使用高級語言彙編程序,但是程序最終是由計算機去執行,計算機只能執行機器語言(二進制),那麼這個過程就必然有一個從高級語言到機器語言的“翻譯”過程。
有兩種“翻譯”方式:
(1)編譯:將代碼整體翻譯成機器代碼,如果有錯誤的話則停止翻譯,全部成功翻譯完才能執行;
(2)解釋:將代碼翻譯一條馬上執行一條,如果遇到錯誤則停止。
程序設計基礎
WWH:what、why、how
常規數據類型與變量
數據的幾個屬性:名稱,值,類型
名稱是月銷量,值是47,數值
名稱是大小,值是190×100mm,字符
名稱是是否包郵:值是“是”,布爾類型
2.1 常規數據類型
名字:xxx 字符串 string
身高:1111 數字 number
體重:1111 數字
性別:男 字符串
單身與否:是 布爾類型boolean
數據判斷類型:typeof();
警告提示框:(打印)
爲什麼要有數據類型?
生活是存在不同的數據類型的,計算機要解決生活問題,那麼他就和生活中的數據類型產生了映射,所以有了數據類型。
數值類型的表現形式:
十進制:23,3.14;
八進制:023;(19)
十六進制:0x23;(35)
科學技術法:3e2;(3×105),3.5e-2(3.5×10-2);
2.2 變量
爲什麼要變量?
因爲生活中一些數據不是一成不變的,他的值會改變,所以js裏面有了變量今和他相對應。
變量:
var:variable的縮寫,變量的意思,聲明一個變量。
命名規則:
1.關鍵字不能用。
2.一般情況下只用英文開頭,也可以是$或者_,但是不建議使用。
3.不能使用數字開頭,因爲和八進制十六進制衝突。
錯誤命名示範:var 1name = "xx";
命名的原則:
見名思意:
(1)儘量使用英文單詞或者組合,或者專業名詞
weight color
fileName(駝峯命名法)
(2)儘量不要使用拼音
變量的值:
變量的類型是由變量的值來決定的。
系統會爲不同的類型分配不同的大小來存儲數據。
如果是布爾類型就分配一個字節的大小來存儲
如果是數字和字符串,那麼根據他的大小和長度來分配字節數來存儲。
Js是弱類型語言,所以的類型的變量都用var來聲明。
Js是動態類型的語言,變量的類型根據值的變化而變化,不會出錯。
變量的本質就是一個內存單元。
var
weight = 65;
weight = weight + 5;
把名爲weight的內存單元中的值65拿出來,之後和5做減法運算,然後把得到的結果再放回到名字名爲weight的內存單元中。
Js語言特點:
更加高級,不嚴謹
變量不聲明就可以用。
使用嚴謹的格式,就必須先定義變量才能使用變量。
"use strict";
weight = "中等";
alert(weight);
name這個命名是特殊的,使用name來給變量起名字時,他不會報錯。
weight1
= "中等";
weightl =
"123";
alert(weight1);
這裏的weightl不是預期的“中等”而是“123”原因是拼寫錯誤,而且不會報錯。
如果使用嚴格模式,明顯可以看到第二個變量拼寫錯誤。
2.2對象類型
對象在js當中對應的是object
狗
名字:“藏藏”
品種:“藏獒”
顏色:“顏色”
性別:“雄”
年齡:“3”
是否婚配:否。
定義一個對象:
var
dog = {name:"藏藏",type:"藏獒",color:"花的",
sex:"雄",age:"3",marry:false}
使用new Object()定義一個對象類型的變量。
var
dog = new
Object();
dog.name
= "藏獒";
dog.age
= 3;
dog.marry
= false;
爲什麼有對象?
和爲什麼有數據類型是一樣的,就是生活中處處都是對象,所以js中有這種對象類型。
如何使用對象裏面的屬性?
使用對象名+ . +對象屬性名
alert(typeof (dog.name));