JavaScript第二天

一、函数深入用法

1.将函数赋给一个变量
   function func(a,b){
          return a*b;
   }
   var x=func;

      function giveAnother(){
        	function func(){
	    	   var a=100;
	    	   var b=200; 
	    	   alert(a+b);
	        }
	        var x=func;   // 将函数赋给一个变量
	        x();
        }

2.将函数赋给对象的属性

per.walk=function (){
                var div=document.getElementById("div1");
                div.innerHTML="<h3>你好,我正在学习JavaScript...</h3>";
        	};
        	per.say();
        }

3. 将函数作为参数传递给另一个函数(高阶函数)

      // f参数可以接收另一个函数
        function highFunc(s,f){
            return f(s);
        }

        // 该函数可以将传入的字符串转换为大写形式
        function upper(a){
             return a.toUpperCase();
        }

        function okFunc(){
        	var result=highFunc("hello world",upper);
        	alert("高阶函数的调用结果是:"+result);
        }

4.将函数作为返回值

	    function outer(){
	    	var a=10;
	    	var b=5;
	    	return function inner(){
	    		return a*b;
	    	}
	    }

	    var x=outer();  // 接收外部函数返回的内部函数
	    alert(x);
	    var y=x();   // 接收内部函数返回的值
	    alert(y);
何为“闭包”?

“闭包”是指内层函数可以贮存外层函数的局部变量或参数。

<title>闭包的应用</title>
	<script type="text/javascript"> 
	var array=[];
	function outer(){
		var a=["apple","banana","orange"];
		for (var i = 0; i < a.length; i++) {
			var x={};
			x.index=i;
			x.name=a[i];
			x.func=function(){
				alert(i);
			};
			array.push(x);
		  }
		}
		outer();
		for (var j = 0; j < array.length; j++) {
			array[j].func();
	}

二、函数的参数

JavaScript中传递给函数的参数是通过arguments对象来保存的
arguments对象有length属性,可以根据此属性得知实际调用时传递参数的个数,也可以通过下标操作符来获取arguments中的元素

<title>arguments接收实际参数</title>
	<script type="text/javascript">
	    function func(a,b){
	    	alert("a="+a);
	    	alert("b="+b);
            for (var i = 0; i < arguments.length; i++) {
            	   alert("传入的实参索引"+i+",具体值是:"+arguments[i]);
            }
	    }

	    func(89,11.5,true,"hello world");
三、JavaScript的内置对象

1.  String
     常用属性:length  返回字符串的长度
     常用方法:toUpperCase()
                      toLowerCase()
                      indexOf("子字符串")
                      lastIndexOf("子字符串")
                      charAt(index)
                      substring(beginIndex)
                      substring(beginIndex,endIndex)

	var str="西安理工大学";
	var s="never give up!";
	alert("str字符串的长度是:"+str.length);
	alert("s字符串的长度是:"+s.length);
	alert("大写字符串是:"+s.toUpperCase());
	alert("str字符串索引为4的字符是:"+str.charAt(4));
	alert("g的索引是:"+s.indexOf("g"));
	alert("索引以2(包含)开始以7(不包含)结束的字符串是:"+s.substring(2,7));
2.Math内置对象
   常用属性:PI   圆周率
   常用方法:Math.random() 获取0.0到1.0之间的 随机数
                Math.pow(a,b)   a的b次方
                Math.sqrt(num) 求某个数的平方根
                Math.ceil(num) 上舍入
                Math.floor(num) 下舍入
                Math.round(num) 四舍五入
<title>Math内置对象</title>
	<script type="text/javascript">
	alert("圆周率是:"+Math.PI);
	alert("5的3次方是:"+Math.pow(5,3));
	alert("5.33向上舍入是:"+Math.ceil(5.33));
	alert("4.99向下舍入是:"+Math.floor(4.99));
	alert("6.78四舍五入是:"+Math.round(6.78));
3.Array内置对象
  声明数组的方式:
      var 数组名称=[元素1,元素2,元素3...];
  JS中数组的特性:
      1.可以存储不同的数据类型的元素。
      2.数组的长度可变。
      3.数组的索引可以是数字,也可以是字符串。

<title>Array内置对象</title>
	<script type="text/javascript">
	var array=["apple",11,23.66,true];
	for (var i = 0; i < array.length; i++) {
		alert(array[i]);
	}
数组的属性:length 长度属性可以变化。
数组的方法:push(元素); 将元素添加到数组中
注意:给数组添加元素的另一种方式:数组名[索引]=元素
pop() 弹出一个元素
如何遍历数组:
for...in语法糖
for(var index in array){
        // array[index] 当前遍历到的元素
}
4.Date内置对象
   var date=new Date();
   常用方法:getFullYear();  // 获取年
                getMonth();   // 获取月
                getDate();  // 获取一个月中的第几天
                getDay();  // 获取一周中的第几天
                getHours();  // 获取时
                getMinutes();  // 获取分
                getSeconds(); // 获取秒
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>动态时钟</title>
	<script type="text/javascript">
	    
        function showTime(){
        	var date=new Date();
        	var year=date.getFullYear();
        	var month=date.getMonth();
        	var day=date.getDate();
        	var hour=date.getHours();
        	var minute=date.getMinutes();
        	var second=date.getSeconds();
        	var div=document.getElementById("clock");
            div.innerHTML="<h3>现在时间是:"+year+"-"+(month+1)+"-"+day+" "+hour+":"+minute+":"+second+"</h3>";
        }

        setInterval("showTime()",1000);   // 每隔1秒,定时调用指定函数
        /**
        window.οnlοad=function(){
        	alert("网页加载完毕!");
        }**/     
	</script>
</head>
<body>
	<div id="clock">div原来默认的文本</div>
</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值