函數是JS的一個重點,函數就是代碼復用的一種機制或是將代碼封裝成功能的代碼段,函數一共有兩種定義方式
函數聲明的方式定義一個函數
function + 函數名:一般用單詞的動詞,例如getMax... +參數列表:此處一般是形參也可以是一個函數){
函數體:可執行的代碼
函數后面可以有一個return;(return后面加上需要返回的值,如果沒有寫return或者return后面沒有寫返回值,那么函數最后返回undefined,當沒有return的時候,函數只是為了執行代碼,return語句下面不要加代碼,因為不會執行)
}
推薦的做法是讓函數始終返回一個值,要么就不要返回,如果返回多個值,可以放在數組或對象里。
匿名函數:像賦值運算符后面的這種沒有名字的函數叫做匿名函數。一般多用於綁定事件的時候。
var + 變量:例如a,b,c... =function(參數){
函數體;
return ...;
}
兩種函數的共同點是:都可以執行調用
不同點是:函數聲明的函數是用函數名來調用,JS有預解析的功能,預解析的時候函數聲明的函數可以提升到作用域的最前面
而函數表達式沒有名字,需要使用的時候用變量來調用,當JS預解析時,變量的聲明(僅僅只是聲明).函數的聲明.參數會提示到作用域最前面,這樣會造成函數表達式無法運行。
在JS中是沒有塊級作用域的,只有全局作用域和局部作用域,全局作用域就是同一個script標簽之間的區域,所有變量都能在作用域任何一個地方使用,函數內沒有用var 聲明的變量也屬於全局變量。而局部作用域就是指一個函數里的區域。
為了簡寫,有了一個自執行函數:
舉例:var sum =function(a,b){
return a+b;
}
它的自執行函數就是
(Function(a,b){
Return a+b;
}( ));
或者(Function(a,b){
Return a+b;
})( );
此處函數最后面的;不能省略
還有一種回調函數,就是把函數寫在參數里進行引用。
JS中的數據類型分為兩種,一種是簡單數據類型,比如number ,string ,boolean ,null ,undefined,其中boolean一共就兩個數據類型,null和undefined是比較特殊的類型,只有一個。
第二種是復雜數據類型,就是指對象,現在接觸到的有Array ,Date,function
開發者還開發一些比較特殊的函數,Math就是其中一個,Math的使用就是函數的提取,常用的有
Math.pow(x,y);x的y次冪
Math.round(四舍五入,小數);
Math.ceil(向上取整,小數);
Math.floor(向下取整,);
Math.max(x,y,z...);
Math.min(x,y,z...);
Math.random();生成一個[0,1)的隨機數,1是取不到的
以上是函數的一些內容,下面還將介紹日期Date的使用,
Var date=new Date();命名和數組有點像
console.log(date);=console.log(date.toString);第一種寫法內部默認調用了toString
Console.log(date.valueOf());會打印出一個13位的數字,指的是從1970年1月1日00時00分00秒000毫秒開始計算的毫秒,1000毫秒=1秒
外國人一般用date.toDateString表示日期,用toTimeString表示當天時間;像我們在中國也有另外一個方法,date.toLocalDateString表示日期,toLocalTimeString表示時間,這樣打印出來的時間和日期更貼合中國人的審美
var date = new Date(2016,6,31); 外國人的計算方式,月份是從0開始
var date = new Date("2016-07-31");
var date = Date.parse("2016-07-32") ; // 解析
var date = Date.now(); //TTML5里有的方法,IE9之后的瀏覽器才支持
var date = +new Date(); // 用的最廣泛的,各瀏覽器都支持的
console.log(date);
Var date=new Date(2016,8,1);
可以接受三種參數:
2016,8,1日期的每一部分 這個是外國人的計算方式,月份從0開始
“2016-8-1”字符串的日期格式
表示日期的毫秒形式 十三位數字
如果不是以上三種方式,那么返回NaN
日期格式化
getTime() 返回毫秒數和valueOf()結果一樣
getMilliseconds()
getSeconds() 返回0-59
getMinutes() 返回0-59
getHours() 返回0-23
getDay() 返回星期幾 0周日 6周6 0--6
getDate() 返回當前月的第幾天,當月的幾號
getMonth() 返回月份,從0開始
getFullYear() 返回4位的年份 如 2016
第三部分是Array,即數組
兩種創建數組的方式:
Var arr=[ ];
Var arr=new Array[ ];
.length表示數組的長度,例:var arr=[“a”,”b”,”c”,”d”];
Length就是4,arr[0]=”a”,arr[1]=”b”
轉換數組:把數組轉換成字符串.toString
返回數組對象本身.valueOf()
操作數組:join() 括號里面可以寫用什么隔開數組,例如:join(“*”)
Concat 例如:var arr=[12,23]; var arr1=[34,56];
Var arr2=arr.concat(arr1); console.log(arr2);
arr2=[12,23,34,56];arr和arr1不變
數組的追加刪除前項后項
push() 添加到數組的
pop() 刪除數組的最后一項
shift() 刪除數組的最前一項
unshift() 添加到數組的最前面