JavaScript是腳本語言不能單獨使用,需要嵌入到其他語言中組合使用;
JavaScript由瀏覽器直接解析執行,不用編譯(解析一行執行一行);
作用:可以控制前端頁面的邏輯操作;
特點:交互性;安全性;跨平臺性;
JavaScript的組成:
ECMAScript DOM BOM
JavaScript與HTML的結合方式:
<script>標籤放在任何地方都可以,但要注意和HTML的加載順序;
<script type="text/javascript" src="demo.js"></script>
如果設置了src外部引用,標籤裏的代碼跳過;
JavaScript語法及使用:
是大小寫敏感的;
alert();
1.註釋 // /**/
2.變量
var 關鍵字 var
變量名 = 變量值;
變量值數據類型:原始數據類型,引用數據類型;
原始數據類型:
string
boolean
number 數字類型 整數,小數,NaN都是數字類型
number("無法強轉爲數字");轉化爲NaN;
null 對象爲空,空佔位符,廢除對象;
undefined 變量定義未賦值時,系統自動賦值爲undefined;
typeof(變量);判斷變量屬於哪種原始數據類型;
null是原始數據類型,但typeof(null) 爲object;
引用數據類型:
Object javascript當中,是所有對象的父對象;
是良好的數據的載體及傳播媒介;
FR: var str = new Object("false");alert(str);
boolean instanceof
判斷 變量屬於哪種類型
類型轉換:
轉換成字符串:
1.僞對象.toString();
var str = true;//僞對象
var str = new Boolean(true);//對象
2.+“” (開發中常用)
字符串轉數字(有返回值):
parseInt() 轉成整數
parseFloat() 轉成小數
強制類型轉換:
返回值均爲原始數據類型的值;
String(變量);會把字面值進行轉換,NaN,null,undefined會被轉換僞Object;
Boolean(變量);如果值是有意義的那麼true如果值趨向於無意義那麼false;
string number null underfined
object對象存在爲true;
運算符:
+ number轉換符(強轉)
var str = +"10";
- number轉換符(強轉)
var str = -"10"; //-10
=== 全等 比較值和類型,有一個不同就爲false;
邏輯運算符:一般和if語句連用,會用boolean類型運算,否則自動強轉;
條件運算符:var v = (表達式)?值1:值2;
流程控制語句:
if語句先賦值再進行boolean運算;
switch會對值和值的類型進行全等比較;
for循環;
for...in 循環;在JS中遍歷的都是數組的索引下標;接着遍歷對象的屬性;
對象:
String Array Regexp
Number對象:
創建: var num= 10; var num = new Number(10); var num = Number(10); 默認值爲0;
屬性: NaN 創建一個NaN;
方法:valueOf 返回原始數據類型的值;
開發中不允許用兩個對象進行對比,有歧義,用對象.valueOf()的原始值進行比較;
Boolean對象:
String對象:
方法:
String中的方法對原先對象沒有影響;
concat(str1,str2...) 連接字符串並返回連接後結果;
replace(regexp,replacement) 替換字符串;
split(separator) 根據分隔符分割字符串爲數組;
substring(start,stop)
substr(start,length) 截取字符串;
Array對象:
屬性不參與長度統計;
如果某位未定義值,默認複製undefined;
Array方法:
concat(arr1,arr2...);連接數組;
join(分隔符) 轉化成字符串返回;
pop() 刪除並返回數組的最後一個元素;
如果爲空則返回undefined;
shift() 刪除並返回數組的第一個元素;
push(element1,element2...) 向數組末尾添加一個或者多個元素;
unshift(element1,element2...) 向數組開頭...
reverse()反轉
sort() 對數組元素進行排序;unicode碼排序;
function s(a,b){return a-b};
Date對象:
var date = new Date(); 獲取當前系統日期;
var date = new Date(毫秒值);
方法:
toLocaleString(); 轉換成本地系統日期格式
getDate();返回一月中的某一天
getDay();返回一週中的某一天
getMonth();獲取月份 (0--11)
getFullYear();
getTime();獲取毫秒值;
setTime();設置毫秒值;
parse(dateString) 解析字符串獲取毫秒值
FR Date.parse("2015/09/04 17:13:25");
Math方法:
Math.方法或Math.屬性
random();
round();四捨五入
ceil(); floor();
RegExp正則對象;
創建:
var reg = /^表達式$/;直接量方式,開發中常用;
方法:
test();檢查字符串中指定的值,返回boolean;
模擬表單驗證:var msg=""; var reg=/^ \s* $/;
if(!reg.test(msg)){}else{};
z-index
NaN !=NaN; true
underfined == underfined; true
underfined == null; true
JavaScript高級
函數:
定義函數:
方式1:
function 函數名(參數1,參數2){
函數體;
}
方式2:
定義一個變量,將函數賦值給一個變量;
var 變量名 = function(a,b){return a+b;}
方式3: 在JS中函數也是對象;可以把函數整體當做參數來傳遞;
var sum = new Fnction("a","b","return a+b;");
作用域:變量和函數有效存在的區域;
JS中作用域:函數內函數外;
事件:在HTML中有一些動作,可以通過程序進行響應;
點擊;鼠標;鍵盤;表單;頁面;
爲標籤綁定事件<TagName 事件名=“函數的調用形式()”></TagName>
時間:
setTimeout("fm()",3000);//3秒之後執行fm()函數;
clearTimeout();//取消時間句柄;
setInterval("fm()",3000);//每隔多長時間執行一次;
clearInterval();
3個經典彈窗:
alert();
confirm("確定。。?");//確定取消,返回值boolean;
prompt("請輸入");//輸入信息,返回輸入內容;
BOM:Browser object Model:瀏覽器對象模型;
BOM對象都是內置對象;
window對象:代表整個瀏覽器窗口,可以通過window對象訪問其他BOM對象;在JS中最外層變量和函數都屬於Window對象;
screen屏幕:availWidth;availHeigth;
Location地址欄:href;
Navigator瀏覽器:獲取瀏覽器信息;
History:forward()前進;back()後退;go(1)指定,前進後退幾個;
var dm = document.getElementById("myID");//獲取myID標籤對象;
dm.innerHtml dm.className //獲取標籤對象的各種屬性
window.onload = function(){}//頁面加載完成後執行一下代碼;
Web前端:原則:內容樣式分離;
DOM:文檔對象模型;
節點:
dom樹結構; style 屬性