一、函数深入用法
1、将函数付给一个变量
#eg:
function func(a,b){
return a*b
}
var x = func
#实例
<script type="text/javascript">
function func(a,b){
return a*b
}
var x = func; // 将函数赋给一个变量
alert(x(12,8));
</script>
2、将函数赋给对象的属性
#实例:
<script type="text/javascript">
var per = {"name":"tom","age":20,"sex":"男"} // 用字面量的方式定义一个对象
per.eat=function(){ //给对象添加一个函数属性
alert("吃饭。。。")
}
per.eat();
</script>
3、将函数作为参数传递给另一个函数(高阶函数)
<script type="text/javascript">
function up(s){
return s.toUpperCase();
}
function lower(s){
return s.toLowerCase();
}
function highLevel(s,f){ //高阶函数
alert(f(s));
}
var s="heLLo";
highLevel(s,up);
highLevel(s,lower);
</script>
4、将函数作为返回值
<script type="text/javascript">
function outer(a){
function inner(){
alert("这是内部函数")
alert("a="+a);
}
return inner;
}
func=outer("a");
func();
</script>
什么叫做闭包?“
“闭包”是指内层函数可以贮存外层函数的局部变量或者参数
<script type="text/javascript">
var array=[];
function outer(){
for (var i=0 ; i < 4 ; i++){
var x = {}; //字面量方式创建对象
x.inner=function(){
alert(i);
};
array.push(x)
}
}
outer();
for (var index in array){
var abj = array[index];
obj.inner();
}
</script>
二、函数的参数
JavaScript中传递给函数的参数是通过一个类似于数组的内部值:arguments对象来保存的,这个内部值在函数对象生成的时候就被初始化了。
arguments对象有length属性,可以根据此属性得知实际调用时传递参数的个数,也可以通过下标操作符来获取arguments中的元素
三、JavaScript的内置对象
1.String
常用属性:length 返回字符串的长度
常用方法:toUpperCase()
toLowerCase()
indexOf("子字符串")
lastIndexOf("子字符串")
charAt("子字符串")
substring(beginIndex)
substring(beginIndex,endIndex)
<script type="text/javascript">
var s="Hello World";
alert("从前向后o字符的索引位置:"+s.indexOf("o"));
alert("从后向前o字符的索引位置:"+s.lastIndexOf("o"));
alert("索引为1的位置对应的字符:"+s.charAt(1));
alert("从索引为1截取:"+s.substring(1));
alert("截取索引1~7(不包括)位置的值:"+s.substring(1,7));
</script>
2.math内置属性
常用属性:PI 圆周率
常用方法:Math.randmo() 获取0.0到1.0之间的随机数
Math.pow(a,b) a的b次方
Math.sqrt(num) 求某个数的平方根
Math.ceil(num) 上舍入
Math.floor(num) 下舍入
Math.round(num) 四舍五入
<script type="text/javascript">
alert("圆周率:"+Math.PI);
alert("0.0~1.0之间的随机数:"+Math.random());
alert("2的3次方:"+Math.pow(2,3));
alert("9的平方根:"+Math.sqrt(9));
alert("2.1上舍入的结果:"+Math.ceil(2.1));
alert("9.99下舍入的结果:"+Math.floor(9.99));
alert("5.9123456四舍五入的结果:"+Math.round(5.9123456));
</script>
3.Array内置对象
声明数组的方式:
var 数组名称=[元素1,元素2,元素3.....]
JS中数组的特性:
1.可以存储不同的数据类型的元素。
2.数组的长度可变
3.数组的索引可以是数组,也可以是字符串,
数组的属性:length 长度属性可以变化
数组的方法:push(元素) 将元素添加到数组中
注意:给数组添加元素的另一种方式:数组名[索引]=元素
pop()弹出一个元素
如何便利数组:
for。。。in 语法糖 for (var index in array) // index是array 的索引
<script type="text/javascript">
var fruits=["apple","banana","orange","watermelon"];
alert(fruits.length);
alert(fruits.pop());
alert(fruits.pop());
for (var i = 0; i < fruits.length; i++) {
alert(fruits[i]);
}
var info=[];
// info["陕西省"]=["西安市","咸阳市","宝鸡市"];
// info["河北省"]=["石家庄市","邯郸市","唐山市"];
// info.push("apple");
info[999]="China";
// info.length=666;
// alert(info[1]);
alert("当前数组的长度是:"+info.length);
for(var index in info){
alert(typeof(index));
alert(index+"============>"+info[index]);
}
</script>
4.date内置对象
var date = new Date():
常用方法:getFullYear(); // 获取年
getMonth(); 获取月
getDate(); 获取一个月中的第几天
getDay(); 获取一周中的第几天
getHours(); 获取时
getMinutes(); 获取分
getSeconds(); 获取秒