script標簽最好寫在body底部
屬性:
scr 引用文件路徑
type 說明被引用文件的類型 可以省略
async 異步加載 外部文件加載完成再執(zhí)行 不管當前頁面有沒有執(zhí)行完
defer 表示延遲加載 拖到最后 當頁面全都執(zhí)行完了才執(zhí)行
變量命名:
開頭不能是數(shù)字
使用關(guān)鍵字保留字會報錯
JS區(qū)分大小寫
用駝峰命名法
賦值:
只聲明不賦值返回 undefined
既不聲明也不賦值 is not defined
交換變量:
var a = 10,b = 20;
var temp = a;
a = b;
b = temp;
或
a = a + b;
b = a - b;
a = a - b;
數(shù)據(jù)類型
String, Number,Null,undefined,boolean;
Number
范圍 Number.MAX_VALUE Number.MIN_VALUE 最大最小保存在這里
Infinity 無窮大 -Infinity 無窮小
轉(zhuǎn)化成數(shù)值
Number(str);//取出認識的其他忽略
parseInt(str);//整數(shù)
parseFloat(str)//小數(shù)
-0,*1,/1,+str;(+是字符串拼接所以不能用+0)
數(shù)值檢測
isNaN()
是否是沒用意義的數(shù)值
NaN == NaN //false 自己和自己不等
String
有l(wèi)ength屬性富玷;
字符串的不可變性(大量拼接字符串消耗性能)怪与;
拼接字符串 ’+變量+‘胶背;
轉(zhuǎn)換成字符串
num.toString();
String(num);
num + " ";
Boolean
嚴格區(qū)分大小寫
返回false的有
字符串中的“ ”
數(shù)值中的0和NaN
布爾 false
null undefined
轉(zhuǎn)化為boolean
!!str
一元運算符
a++ 整體不變 a+1;
++a 整體+1 a+1;
(先后我容易混 這樣記還好)
邏輯運算符
且 && 都true才是true
與|| 一個為true 就是true
返回起決定作用的值
其他運算符
var a = 10;
a +=5;
a = a + 5;
選擇語句
if (){}
if(){}else if(){}
三元運算符
判斷條件奸腺? ’a‘ : 'b';
三個數(shù)中找出最大值
var a = 10;
var b = 20;
var c = 30;
var max = (a>b?a:b)>c?(a>b?a:b):c;
選擇語句
switch(a){
case? b:
處理內(nèi)容
case c:
處理內(nèi)容
break;
default :
處理內(nèi)容
}
switch 是做全等比較
如果沒用break 語句會一直向下執(zhí)行
循環(huán)語句
for(初始化語句逻炊;控制表達式梯投;循環(huán)后表達式){
執(zhí)行內(nèi)容
}
break 終止循環(huán) continue終止本次開始下一次
while (條件){
執(zhí)行內(nèi)容
}
do{
先執(zhí)行一次
}while(判斷條件)
數(shù)組的聲明
var arr = new Array();
var arr = [];
給數(shù)組添加元素
arr[index] = 1;
獲取
arr[index]
arr.length 表示數(shù)組中元素的個數(shù)
for 循環(huán)遍歷數(shù)組
for(var i= 0 桐臊;i<arr.length;i++){
console.log(arr[i])
}
反向遍歷
for(var i = arr.length-1;i>=0;i--){
console.log(arr[i])
}
檢測數(shù)組的方法
arr instanceof Array? //true
Array.isArray(arr)//true
數(shù)組的增刪方法
arr.push(a)從后面添加元素 返回新數(shù)組長度
arr.unshift(a)從前面添加元素 返回新數(shù)組的長度
arr.pop()從后面刪除元素 返回被刪除的元素
arr.shift()從前面刪除元素 返回被刪除的元素
數(shù)組的其他方法
arr.jion('');將數(shù)組以傳入的參數(shù)分隔為字符串不傳就沒有分隔(不改變原數(shù)組)
arr.reverse() 將數(shù)組順序進行反轉(zhuǎn)(改變原數(shù)組)
函數(shù)
function fn(){
}
var fn1 = function(){};
全局變量 在最外層聲明的變量是全局變量
局部變量 在函數(shù)體內(nèi)聲明的變量是局部變量 只能在函數(shù)體內(nèi)用
遞歸 函數(shù)自身調(diào)用自身的編程技巧(不寫條件會變成死遞歸)
回調(diào) 被當做參數(shù)傳遞的函數(shù)
對象
var hero = new Object();
var stu = {};
訪問屬性的兩種方法
stu.age ;stu['age']
第二種更靈活
for(var k in obj){
obj[k] //每一項的值
}
遍歷數(shù)組不要用for in (不知道為什么先這樣記著吧)
this 指向
全局函數(shù)外部 this指向window
函數(shù)上下文 在某個函數(shù)體內(nèi) this指的是當前函數(shù)所屬的對象
構(gòu)造函數(shù)使用new關(guān)鍵字 this指向新創(chuàng)建的對象并默認返回this
值復(fù)制
基本數(shù)據(jù)類型 直接復(fù)制
引用類型