web 前端 js 函数定义、传参、argument、案例、数组编辑多条、函数作用域、return、获取元素样式

1、函数定义:就是把一些代码包装起来,方便重复使用函数声明之后必须调回,才会执行
2、声明:function 函数名(){ 代码块 }
3、函数表达式: var 函数名=function(){ 执行代码 }
4、函数声明之后,它不会自动执行,需要函数名()调用
注意:函数声明的调用在函数的前面或者后面都可以,但是函数表达式只能在函数后面调用
5、函数参数传递:如果实参比形参少,没有匹配上的是undefined

    var n = 0;
    var fn = function(x) {
        for(var i=1; i<=x; i++){
            n += i;
        }
    }
   fn(50);
   console.log(n);

6、arguments 是一个对象,即一个类数组(有长度,可以循环,可以通过下标读取每一个,但是不能使用数组的方法)
arguments[0]代表第一个参数,arguments[1]代表第二个参数,依次类推,与形成是一一对应的。arguments只在函数里有。

function fn() {
            var sum = 0;
            for(var i=0; i<arguments.length; i++){
                sum += arguments[i];
            }
            console.log(sum);  
        }
        fn(1,2,2,4,5,6,7,8);

当实际参数不确定是,可以用arguments,,形式参数省去,然后循环让i<=arguments.length

7、函数中的“this”指向,不是在定义的时候确定的,而是在调用的时候确定的

8、编辑标题案例(文件或标题重命名)
先编辑一条,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        li div:nth-child(2){
            display:none;
        }
    </style>
    <script>
        window.onload = function () {
            // 第一步,先定义li
            var aLi = document.getElementsByTagName("li");
            // 第二步,定义li中的元素(定义写逻辑时需要的元素)
            var span = aLi[0].getElementsByTagName("span")[0];
            var input = aLi[0].getElementsByTagName("input")[0];
            var div = aLi[0].getElementsByTagName("div");  //把第一个li中的所有div全部赋给div
            var a = aLi[0].getElementsByTagName("a");
            // 以上的span,input,div,a都是数组
            // 第三步,点击DIV中的第一个a标签,然后隐藏li中的第一个div,弹出第二个div,span的值赋给了input
            a[0].onclick = function () {
                div[0].style.display = "none";
                div[1].style.display = "block";
                input.value = span.innerText;
            }
            // 第三步,保存,点击第二个a标签,然后把input的值赋给span标签,第一个div显示,第二个div隐藏
            a[1].onclick = function () {
                span.innerText = input.value;
                div[0].style.display = "block";
                div[1].style.display = "none";
            }
            // 第四步,取消。点击第三个a标签,然后显示第一个div,隐藏第二个div
            a[2].onclick = function () {
                div[0].style.display = "block";
                div[1].style.display = "none";
            }
        }
    </script>
</head>
<body>
    <ul>
        <li>
            <div>
                <span>我的名字是邓</span>
                <a href="javascript:;">编辑</a>
            </div>
            <div>
                <input type="text">
                <a href="javascript:;">保存</a>
                <a href="javascript:;">取消</a>
            </div>
        </li>
        <li>
            <div>
                <span>我的名字是邓</span>
                <a href="javascript:;">编辑</a>
            </div>
            <div>
                <input type="text">
                <a href="javascript:;">保存</a>
                <a href="javascript:;">取消</a>
            </div>
        </li>
    </ul>
</body>
</html>

用数组编辑多条,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        li div:nth-child(2){
            display:none;
        }
    </style>
    <script>
        window.onload = function () {
            // 数组实现,先写好一组,然后定义一个相同的参数,然后用数组进行传参
            var aLi = document.getElementsByTagName("li");
            var fn = function (obj) {
                var span = obj.getElementsByTagName("span")[0];
                var input = obj.getElementsByTagName("input")[0];
                var div = obj.getElementsByTagName("div");  
                var a = obj.getElementsByTagName("a");
                    a[0].onclick = function () {
                    div[0].style.display = "none";
                    div[1].style.display = "block";
                    input.value = span.innerText;
                }
            // 第三步,保存,点击第二个a标签,然后把input的值赋给span标签,第一个div显示,第二个div隐藏
                a[1].onclick = function () {
                    span.innerText = input.value;
                    div[0].style.display = "block";
                    div[1].style.display = "none";
                }
            // 第四步,取消。点击第三个a标签,然后显示第一个div,隐藏第二个div
                a[2].onclick = function () {
                    div[0].style.display = "block";
                    div[1].style.display = "none";
                }
            }   
            for(var i=0; i<aLi.length; i++){
                fn(aLi[i]);
            }        
        }
    </script>
</head>
<body>
    <ul>
        <li>
            <div>
                <span>我的名字是邓</span>
                <a href="javascript:;">编辑</a>
            </div>
            <div>
                <input type="text">
                <a href="javascript:;">保存</a>
                <a href="javascript:;">取消</a>
            </div>
        </li>
        <li>
            <div>
                <span>我的名字是邓</span>
                <a href="javascript:;">编辑</a>
            </div>
            <div>
                <input type="text">
                <a href="javascript:;">保存</a>
                <a href="javascript:;">取消</a>
            </div>
        </li>
    </ul>
</body>
</html>

9、函数作用域

10、return
return后面的结果就是函数的返回值,如果没有手动return,默认都是返回undefined,,return后面的代码都不再执行

11、获取元素的样式

元素的样式在

console.log(getComputedStyle(box).width);    getComputedStyle在ie9以上支持
console.log(box.currentStyle.width);      currentStyle支持所有ie

元素样式封装:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    #box{
        width: 100px;
        height: 100px;
        background: red;
        position: absolute;
        left: 10px;
        top:50px;
    }
</style>
<script>
    window.onload = function () {
        var btn = document.getElementById("btn");
        var box = document.getElementById("box");
        console.log(getStyle(box,"width"));
    }
    function getStyle(obj, attr) {
        if(window.getComputedStyle){
            //IE9以上支持
            return getComputedStyle(obj)[attr];
        } else {
            // IE8及以下
            return obj.currentStyle[attr];
        }
    }
</script>
<body>
    <button id = "btn">按钮</button>
    <div id="box"></div>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值