前端学习day07:js第二天:数组、函数

数组的常用方法:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    <!--数组对象的常用方法-->
//    1:concat()方法
//          参数:2个或多个数组
//          返回值:一个新数组
//          功能:var a=[1,2,3]
//              a.concat(4,[5,[6,7]])    返回a=[1,2,3,4,5,[6,7]]
//    2:join()
//          参数:无参:默认以逗号隔开,有参:以自定义的分隔符隔开
//          返回值:字符串
//          功能:
//    3:pop()数组最后一个元素    弹栈
//          参数:无参
//          返回值:删除的那一个元素
//          功能:var a=[1,2,3]
//               a.pop()   //3
//    4:push()压入到数组的尾部   压栈
//    5:reverse()颠倒数组中的元素顺序
//    6:shift()压入数组的尾部    队列
//           功能:移出队列的头部--》数组的头部(数组的第一个元素)
//           参数:无参
//           返回值:数组原来的第一个元素
//    7:unshift()入队     队列
//           功能:数组的头部插入元素
//           参数:若干个元素
//           返回值:数组的新长度
//              var a=[1,2,3]
//              a.unshift([5,6,7])
//              a=[[5,6,7],1,2,3]
//    8:slice()截取数组
//           功能:截取数组的一部分
//           参数:slice(start,end)左闭右开
//           返回值:新数组
//                  注意:截取的顺序必须是从左往右
//    9:sort()排序函数
//           参数:函数    比较函数--》按什么排序
//     var arr=[
    //         {name:"丽丽",year:"48",salary:3500},
    //         {name:"老王",year:"37",salary:12500},
    //         {name:"张三",year:"70",salary:6000}
    //     ];
    //     /*比较函数---》为了给sort提供信息*/
    //     function compare(a,b){
    //         return b.year-a.year;/*从大到小排*/
    //         return a.year-b.year;/*从小到大排*/
    //     }
    //     var obj=arr.sort(compare)
    //     console.log(obj)
    //     for(var index in obj){
    //         console.log(obj[index])
    //     }
//    10:splice()插入或删除元素
//           参数:splice(删除或插入的下标,删除的个数,插入的数据1、数据2.。。)
//                  开始下标   删除的个数
//                  var arr=[1,2,3,4,5]
//                  arr.splice(2,2)
//                  插入  第二个参数一定要写,写0
//                  arr.splice(2,0,"abc","12324")
</script>

</body>
</html>

求数组的最大最小值:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var arr=[22,33,44,54,12,87,34]
    var max=arr[0]
    var min=arr[0]
    for (var i=0;i<arr.length;i++){
        if(max<arr[i]){
            max=arr[i]
        }
        else if (min>arr[i]){
            min=arr[i]
        }
    }
    alert("max="+max+"min="+min)
</script>
</body>
</html>

函数:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--函数:作为js的第一等公民
        1:定义:函数首+函数体    并不占用内存空间
        function 函数名(){
            函数体
            return 结果;(如果没写返回值则默认为return undefined;)
        }
        2:语法
        两种方法:
            1:函数声明
            2:表达式法
        3:返回值 参数
        4:调用(自己调用自己->递归) -->

<script>
    // //函数声明
    //js全局的域   window浏览器对象>文档树document
    // function add(a,b){
    //     return a+b;
    // }
    // var c=add(1,2);
    // console.log(c)
// //    实参对象  arguments  保存实参数据  数据类型:数组
// //     var sum=0;//显式全局变量,生命周期:打开浏览器到关闭浏览器
//     function add(a){
//         var sum=0;  //局部变量    生命周期:函数开始调用到函数调用结束
//         // sum=0    //隐式全局变量==》window.sum
//         for (var i=0;i<arguments.length;i++){
//             sum+=arguments[i]
//         }
//         return sum;
//     }
//     var c=add(1,2,3,4,5,6,7,8,9);
//     console.log(c)
//     console.log("add代表"+add)
//2:函数表达式   利用变量 保存匿名函数的地址
    var sub=function (a,b) {
        return a-b
    }
    sub(10,7);
    var a=sub;
    a(11,7)
</script>
</body>
</html>

省市联动:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--Time:     Author:   Function:   Desc:-->
</head>
<body>
<script>
    /*省市联动*/
    var provices=["浙江省","山西省","河北省"]
    var cities=[["杭州市","温州市","宁波市"],["太原市","大同市","长治市"],["保定","邯郸","石家庄","邢台"]]
//    遍历山西省的所有市:循环嵌套
//    cities数组 每一个元素是各省对应的市区数组
    for(var i=0;i<cities.length;i++){
        if (i===1){
            for(var j=0;j<cities[i].length;j++){
                // if(j>1){
                //     break;//    取前两个城市    跳转语句,跳出一层循环(终止)
                // }
                // if (j===1){
                //     continue;//    跳转语句,跳出一次循环,继续下一次(中断)    去掉该省份的第二个城市
                // }
            //    输出方法:向可视区域body写:document.write(参数)
                document.write("<span style='color: red;font-size: 30px;margin-left: 100px'>"+cities[i][j]+"</span>"+"<br>")
            }
        }
    }
</script>
</body>
</html>
DOM引入:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<button id="btn">点我弹框</button>
<div id="dv">我是div</div>
<script>
    //面向对象 基于事件(点击onclink单击/ondbclink双击、滚动条onscroll、聚焦onfocus、离焦onblur、按下键盘、抬起键盘、表单提交onsubmit)
    //点击按钮弹框    对象:按钮   事件:点击事件 函数:弹框
    //window  顶级对象--》document 文档对象(获取元素的方法)
        //    1:通过id获取元素:document.getElementById()
    var btn=document.getElementById('btn')
    var mydiv=document.getElementById("dv")
    //如何给元素绑定事件:把事件当成元素的属性 zhangsan.year=24
    btn.onclick=function () {//回调函数
        alert("点到了")
        mydiv.style.width="300px";
        mydiv.style.height="400px";
        mydiv.style.backgroundColor="green"
    }
</script>
</body>
</html>

9*9乘法表:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--表格形式-->
    <style>
        tr,td{
            border:black 1px solid;
        }
    </style>
</head>
<body>
<script>
document.write("<table>")
for(var i=1;i<=9;i++){
    document.write("<tr>"+"</tr>")
    for(var j=1;j<=i;j++){
        document.write("<td>"+j+"*"+i+"="+i*j+"</td>")
    }
}
document.write("</table>")
</script>
</body>
</html>

思考题:对于函数a()和b(),a(b)和a(b())是否一样?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    function a(i) {
        return i+1
    }
    function b(j) {
        return j+10
    }
    var x=a(b)
    console.log(x)//输出结果为function b(j){return j+10}1
    var y=a(b())
    console.log(y)//输出结果为NaN,即先执行了b(),返回NaN,后执行a(NaN),返回NaN
    var z=a(b(10))
    console.log(z)//输出结果为21,即先执行了b(10),返回20,后执行a(20),返回21
//    所以,如果函数a的参数是b,则将函数b的函数名和函数体作为参数传给a
//    如果函数a的参数是b(),则将函数b的运行结果作为参数传给函数a
</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_43800846/article/details/88828249