天天看點

JS學習-第六節

  這兩個方法都是函數對象的方法,需要通過函數對象來調用,當對函數調用call和apply都會調用函數執行,在調用這兩個方法的時候,可以将第一個對象指定為第一個參數,此時這個對象會成為函數執行時候的this,改變目前執行的對象。

  call方法可以将實參在對象之後依次傳遞。fun.call(obj,2,3);

  apply方法需要将實參封裝在數組中統一傳遞。fun.apply(obj,[2,3]);

this情況:

(1)以函數形式調用時候,this永遠是window

(2)以方法形式建立時,this是調用方法的對象

(3)以構造函數的形式調用時候,this是新建立的那個對象

(4)使用call和apply調用時,this是指定的那個對象

在調用函數時候,浏覽器每次都會傳遞兩個隐含的參數

(1)this

(2)arguments(類數組對象),也可以通過索引操作資料,也可以擷取長度

  argumnets.length用來擷取實參的長度

  即使不定義形參,也可以通過arguments定義實參。

(3)arguments裡有一個屬性callee,就是目前正在指向的函數的對象

js中表示時間

//建立一個date對象,如果在構造函數中建立一個date對象,則會封裝為目前代碼執行的時間。

var d=new date();

console.log(d);

//建立一個指定時間的對象

//日期格式:月/日/年 時:分:秒

var d2=new date("12/03/2016 11:10:30");//月日年

console.log(d2);

相關的方法:

var date=d2..getdate();//擷取目前日期是幾号

var day=d2.getday();//目前日期是周幾

var month=d2.getmonth();//目前月份

var tear=d2.get fullyear();//傳回年份

var time=d2.gettime();//擷取時間戳,從1970年格林威治标準時間,一月一日零時零分零秒開始算ms(1s=1000ms)

計算機底層儲存時間用的都是時間戳

time=date.now();//結果是執行目前行對應的時間戳

math.pi;//圓周率

math.abs();//絕對值

math.ceil(1.4);//向上取整

math.floor(1.4);//向下取整

math.round(1.4);//四舍五入

math.random();//生成一個[0,1)之間的随機數

math.max(10,11,20);//取最大值

math.min(11,90,8);//最小值

math.pow(12,3);12的3次幂

math.sqrt(12);12開方

string()将基本資料類型轉為string

number()将基本資料類型轉為number

boolean()将基本資料類型轉為boolean

str.charat(i);//傳回任意位置字元

str.charcodeat();//傳回指定位置字元unicode編碼

formcharcode();//根據字元編碼擷取字元

concat();//連接配接兩個或多個字元串

str.indexof("h");傳回str第一次出現h的索引,沒找到傳回-1

str.indexof("h",2);//從下标為2處開始查找

str.lastindexof("h");//從後往前周遊尋找第一個出現的

str.lastindexof("h",2);//從下标為2處開始查找

str.slice(0,2);//不會影響源字元串,左閉索引右開索引,第二個參數省略,則會截取到後面的所有。

      如果傳遞一個負數,則會從後往前查

substring(1,2);//截取字元串,左閉右開,和slice類似。不同的是這個方法不能接受負值,負值相當于0

      如果前後大小反了,系統會自動調整

substr(0,2);//兩個參數分别是截取位置的索引,截取個數

split(",");//将字元串根據“,”拆分成數組。如果将空串作為拆分參數,則會将每個字元都拆分為數組中的一個元素

touppercase();//變大寫字串;