-
什麼是java script
-
如何編寫,調試js
-
***變量
-
***數據類型
一.什麼是java script
HTML:專門編寫網頁內容的語言,構建整體框架。
CSS:專門美化網頁樣式的語言,具有“裝修功能”。
JS:專門編寫交互的程序語言
交互:用戶操作,程序處理用戶的操作,返回處理結果
如何運行:
瀏覽器:內容排版引擎 js解釋引擎
內容排版引擎:專門解析HTML和渲染CSS的軟件
JS解析引擎:專門解釋,並執行js程序的軟件
什麼是解釋和腳本?
解釋:默認從上向下,讀一行,運行一行;後讀到相同內容,會覆蓋先讀到的。
腳本:不需要預編譯,邊解釋邊執行的程序
2.JS發展史:
1955年:Netscape 公司和Sun 公司聯合開發出JavaScript 腳本語言,並在其Netscape Navigator 2 中實現了JavaScript 腳本規範的第一個版本即JavaScript 1.0 版
1957年:推出了ECMA-262 規範版本,其定義了以JavaScript 爲藍本、全新的ECMAScript 腳本語言。
其中的區別:
ECMAScript:標準,規定
JavaScript:Netscape:遵循ECMAScript標準實現的語言
JScript:微軟遵照ECMAScript標準實現的語言
1998年:W3C成立,改標準成爲了國際ISO標準
3.JavaScript:
廣義的JavaScript=ECMAScript(js的核心語法)+DOM(專門操作網頁內容的API)+BOM(專門操作瀏覽器窗口的API)
DOM:基於ES標準制定的專門操作網頁內容的API。
API:瀏覽器已經實現的,開發人員直接使用的編程接口。
BOM:專門操作瀏覽器窗口的API;沒有標準,各瀏覽器自行定義。
特點:
1.代碼可使用任何文本編輯工具編寫,語法類似於C和Java。
2.無需編譯,有JavaScript引擎解釋執行。
3.弱類型語言
4.基於對象
二.編寫和調試:
4.如何編寫和調試:
JS腳本程序,就是普通文本:用Deamwaerver編寫
運行腳本,分爲2種:
1.獨立安裝的JS解釋器中進行運行:比如Node.js
2.瀏覽器的JS解釋器
注意:*js程序區分大小寫!
*每條程序的語句都用;結尾
何時使用console:控制檯是專門調試程序的地方!
---在網頁中編寫JS:2處:
1.在<script>元素中:頁面中專門編寫js程序的區域
隨頁面加載過程順序解釋執行
向頁面中輸出一行話:直接在body元素中寫入html內容
使用頁面的輸出功能:docunment.writ("xxxxxx");
彈出功能:window.alert("xxxx"); --沒alert一次,就彈出一次
每個框都會阻斷瀏覽器的加載和程序執行過程
2.在元素的事件處理函數中:僅能編寫少量
事件:瀏覽器自動或用戶手動觸發的元素狀態改變
事件處理函數:on 事件名
本質是元素的一個屬性,屬性值是一個js語句
例:
<buttonοnclick="alert('ejwpiobhjfipobhsdpfbn')">點擊驚喜
3.使用外部js文件,單獨存儲js程序:
1.創建並編寫.js文件:
三大文件都要保存爲UTF-8編碼
2.在頁面中引入.js文件:<script src="url"></script>
---加載和執行過程和<script>中完全一樣
三.***變量
什麼是變量:內存中存儲一個數據的存儲空間,再起一個名字。
何時使用:程序中反覆使用的數據,都要先保存
如何使用:聲明 賦值 取值
1.聲明:在內存中創建一個新變量
如何聲明:var 變量名 (僅聲明,但未賦值,默認值爲undefined)
注意:1.不能以數字開頭
2.不能用保留字:js中以及預先使用的關鍵字
3.最好能見名知意:比如駝峯命名(第一個單子首字母小寫,之後每個單詞首字母大寫)
2.賦值:將等號右邊的數據,保存到等號左邊的變量中
如何賦值:變量名=值,*對已經包含值的變量賦新值,新值將覆蓋舊值*
3.取值: 只要使用變量名,在運行時,會被自動替換爲變量中的值。
特殊情況:1.只聲明,但未賦值的變量,可任意使用,輸出爲undefined。
2.從未聲明的變量,不能使用,得到錯誤提示 Uncaught ReferenceError
3.從未聲明的變量,缺可賦值 ---和var 不一樣
強烈建議:必須使用var 聲明變量
注意:只要在同一個頁面中,前面進行了聲明,賦值,後面就可以使用,但是再提前也無法超過本script
例1:
var hb="香辣雞腿堡"; console.log(hb); box="包子"; console.log(hb); console.log(box);
輸出分別爲:“香辣雞腿堡”“香辣雞腿堡”“包子”
****聲明提前:子啊程序正式執行前:都會將var聲明的變量提前到當前腳本塊的頂部集中聲明,再開始執行程序。{***賦值留在原地}
四.常量:一旦初始化,值不能改變的量。
何時使用:程序中,一旦定義不可擅自改變的值,都要用常量保存。
如何創建:const 常量名=值;用作常量的名字都要大寫
注意:
如果強求修改常量的值,不會報錯,但也無法修改成功
const PI=3.14; var deg=60; PI=1;//報錯?影響結果?
結果:不報錯,也不影響結果
五.****數據類型:數據在內存中的存儲形式
爲什麼要有不同數據類型:現實中不同類型的數據,都要專門的用途。
分類:2大類:“原始類型"的值和“引用類型”的對象
原始類型:值直接保存在變量本地的類型
5類:Number Srting Boolean Undefined Null
引用類型:值沒有直接保存在變量本地的類型,但是變量中只保存指向實際數據所在位置的地址值
1.Number:表示所有數字
如何定義:凡是不加引號的數字,都是Number類型數據。
何時使用:只要做計算或者比較的數字,都不加引號。
比如:年齡,價格
所佔空間:所有數字都是用64位二進制數來存儲的 1byte=8bit
整數採用32位二進制存儲 =爲4個字節
---數值大小和所佔空間大小無關
舍入誤差:計算機中也有無法精確計算的數字而導致的計算結果精度偏差,不可避免
解決方案:按指定小數位數四捨五入 --n.toFixed(2)-->將計算結果按2位小數四捨五入
2.String:字符串,表示所有文字信息
如何定義:凡是用作顯示的信息都要加引號,單雙引號。
何時使用:凡是用作顯示的信息都要加引號,JS中沒有字符類型,所以一個字也要加引號
所佔空間:字母或數字,每個1字節;每個漢字,2字節
JS的內存中都是用字符串的unicode號存儲字符
unicode:人爲給主要語言中的每個字符編一個號
***字符串一旦創建,值不可改變,非要改變,只能用新的字符串替換舊的字符串
特殊:+運算中,如果參與運算的都是字符串,則加法變爲字符串拼接
3.Boolean:只有兩個值:true ,flase
何時使用:只要保存對/錯,真/假,成立/不成立,都用boolean類型表示。
如何定義:不帶引號的true和flase就是boolean類型