JS函数,数组,日期

函数是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() 添加到数组的最前面

posted @ 2016-08-01 20:35  程序猿1990  阅读(2677)  评论(0编辑  收藏  举报