JavaScript小結
1.JavaScript是什麼?動態的,弱類型
(from W3School:http://www.w3school.com.cn/js/index.asp )
JavaScript 是屬於網絡的腳本語言!
JavaScript 被數百萬計的網頁用來改進設計、驗證表單、檢測瀏覽器、建立cookies,以及更多的應用。
JavaScript 是因特網上最流行的腳本語言。
2.實現:<script type="text/javascript"></script>標籤。javascript
3.語句、註釋、標識符(變量名,函數名)、保留字 java
4.變量:弱類型 數組
變量類型是可變的瀏覽器
五、數據類型:typeof運算符
undefined
Null == undefined
Boolean (類型轉換:if('yes'){....})
Number NaN!=NaN, isNaN ,類型轉換parseInt("1234.5abc"),parseFloat()
String 類型轉換:12.toString() 單引號,雙引號
function:函數類型 cookie
6.運算符:基本和java差很少,其中「==」是指比較內容,eg:var a="123";var b=123;alert(a==b);//true
「===」是比較內容和類型,eg:var a="123";var b=123;alert(a===b);//false網絡
7.控制語句:基本和java差很少app
8.函數
1)普通定義與調用
2)動態參數arguments,下例:dom
1 function plus(){ 2 //參數對象(數組) 3 if(arguments.length>0){ 4 var sum=0; 5 for(var i=0;i<arguments.length;i++){ 6 sum+=arguments[i]; 7 } 8 } 9 return sum; 10 } 11 //調用 12 var x=plus(10,20,30,40); 13 alert(x);//=100
3)匿名定義和調用,匿名函數定義,定義匿名函數,將函數地址賦值給變量函數
9.基本類型(undefined,null,number,boolean,string)/引用類型:Object 、Array、Function
1)動態屬性: delete p.name
2)複製引用:this
var o1=new Object();
var o2=o1;
o1.name='ada';
alert(o2.name);//ada
3)傳遞參數 不能經過參數在函數內部改變外部對象
4)類型檢測 instanceof
10.做用域:變量的有效範圍
1)執行環境;每一個函數就是一個執行環境
2)做用域鏈
3)搜索變量
4 )沒有塊級做用域
5)聲明變量(var)自動添加到最近的環境,未聲明變量直接添加到全局環境
11.Object建立的兩種方式
1)new Object()
2){"name":"ada","sex":"male"} //JSON方式
eg://Object對象建立的方式
//1.new
var p=new Object();
p.name="ada";
//2.JSON
var p={"name":"ada","sex":"male"};
alert(p.name);
alert(p.sex);
//屬性訪問方式
alert(p["name"]);
alert(p["sex"]);
//遍歷所有屬性
for(var a in p){
document.write(p[a]);
}
12.Array
1)建立:new Array();
//1.
var a=new Array(4);
alert(a.length);
//2.
a[0]=1;
a[1]=2;
a[3]=4;
alert(a[2]);
2)建立並初始化: a=[1,2,3];
3)數組動態性
var a=[1,2,3];
a[10]=11;
alert(a.length);//11
alert(a[3]);//undefined//a[3]---a[9]都是undefined
4)轉換:toString()
5)push():添加尾元素
var a=[1,2,3];
a.push(4);//壓棧
alert(a);//1,2,3,4
6)shift():刪除頭元素
var a=[1,2,3,4];
var x=a.shift();
alert(x);//2,3,4
7)sort(a,function(v1,v2){}),排序
var a=[15,1,3,5,20,50]; a.sort(function(v1,v2){ if(v1>v2){ return 1; }else if(v1<v2){ return -1; }else{ return 0; } }); alert(a);//順序,從小到大,1,3,5,15,20,50
8)slice(start,end)截取
var a=[1,2,3,4,5,6,7,8];
var b=a.slice(2,6);
alert(b);//3,4,5,6
9)splice :刪除(0,2),插入(2,0,"aaa"),替換(2,1,"aaa)
10)indexOf,返回某個指定的字符串值在字符串中首次出現的位置
11)arr.forEach(function(item,index,array){});//迭代
12)arr.every/arr.some
13)filter篩選,eg: 篩選:10以上的元素
var a=[15,2,12,3,5,11,18];
var b=a.filter(function(item,index,array){
return item>10;
});
alert(b);//15,11,18
13.Date:
1)建立 new Date()/new Date(2010,5,6,14,25,30)
2)date.now()
3)date.getTime()/getYear()/getMonth()/getDay()/getDate()
14.Function
1)函數做爲參數值
2)caller
function A(){B();}
function B(){alert(B.caller);}
3)函數是對象:
length屬性,參數個數
apply();
call();
window.color="red";
var o={color:"blue"}
function sayColor(){
alert(this.color);
}
sayColor.call(window);
sayColor.call(o);
var oSayColor=sayColor.bind(o);
oSayColor();
15.Global終極對象
eval方法,將字符串轉化爲表達式
eg:var jstu=eval("("+jstr+")");//代碼注入攻擊,少用
16.Math對象(from W3School:http://www.w3school.com.cn/jsref/jsref_obj_math.asp )
方法 描述
abs(x) 返回數的絕對值。
acos(x) 返回數的反餘弦值。
asin(x) 返回數的反正弦值。
atan(x) 以介於 -PI/2 與 PI/2 弧度之間的數值來返回 x 的反正切值。
atan2(y,x) 返回從 x 軸到點 (x,y) 的角度(介於 -PI/2 與 PI/2 弧度之間)。
ceil(x) 對數進行上舍入。
cos(x) 返回數的餘弦。
exp(x) 返回 e 的指數。
floor(x) 對數進行下舍入。
log(x) 返回數的天然對數(底爲e)。
max(x,y) 返回 x 和 y 中的最高值。
min(x,y) 返回 x 和 y 中的最低值。
pow(x,y) 返回 x 的 y 次冪。
random() 返回 0 ~ 1 之間的隨機數。
round(x) 把數四捨五入爲最接近的整數。
sin(x) 返回數的正弦。
sqrt(x) 返回數的平方根。
tan(x) 返回角的正切。
toSource() 返回該對象的源代碼。
valueOf() 返回 Math 對象的原始值。
2016-10-13