美文网首页
05_JS函数

05_JS函数

作者: 对方不想理你并向你抛出一个异常 | 来源:发表于2017-09-10 13:29 被阅读0次

函数(function)

函数: 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

函数的声明

函数使用跟变量一样,需要 声明

自定义函数
function func(){
    alert(123);
}
func();//函数不调用,自己不会执行
函数直接量声明
var fun1 = function(){
    alert("直接量声明")
}
fun1();  也需要调用
利用Function 关键字声明
var fun2 = new Function("var a = 10; var b = 20; alert(a+b)");
fun2();
变量提升
<script>
        var num  = 10;
        showValue();

        function showValue(){
            console.log(num);//undefined
            var num =  20;
        }
</script>

上面的结果打印的不是10,而是undefined
上面的代码等价于====》

    <script>
        var num  = 10;
        showValue();

        function showValue(){
            var num;
            console.log(num);
            num =  20;
        }
    </script>

在函数体内部生命变量,会把该变量的声明放在函数体的最顶端,但是只是提升变量声明,不赋值(赋值还在原处)。

函数参数
  • arguments是存储了函数传送过过来实参
  • Javascript在创建函数的同时,会在函数内部创建一个arguments对象实例.
  • arguments对象只有函数开始时才可用。函数的 arguments 对象并不是一个数组,访问单个参数的方式与访问数组元素的方式相同
  • arguments对象的长度是由实参个数而不是形参个数决定的
    <script>
       /* function func(a,b){
            console.dir(a+b);
        }
        func(1,3);//4
        func(5);//NaN
        func(4,6,2);//10*/
        function fn(a,b){
            console.log(fn.length);//2,得到形参的个数
            console.log(arguments.length);//2,得到实参的个数
            console.log(arguments);//实参列表
            console.log(fn.arguments);//实参列表
            if(fn.length == arguments.length){
                console.log(a+b);
            }else{
                console.error("对不起,您的参数不匹配,正确的参数个数为:"+fn.length);
            }
        }
        fn(2,3);
        fn(2,3,4);
    </script>

例:

<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        body,ul,li{
            margin: 0;
            padding: 0;
        }
        ul,li{
            list-style: none;
        }
        .box{
            width: 360px;
            height: 430px;
            margin: 100px auto;
        }
        .box li{
            float: left;
            margin-left: 2px;
        }
    </style>
    <script type="text/javascript">
        window.onload = function(){
            var imgDom = document.getElementById("main-img");
            function fn(liId,imageSrc){
                var target = document.getElementById(liId);
                target.onmouseover = function(){
                    imgDom.src = imageSrc;
                }
            }
            fn("li-btn1","images/01big.jpg");
            fn("li-btn2","images/02big.jpg");
            fn("li-btn3","images/03big.jpg");
            fn("li-btn4","images/04big.jpg");
            fn("li-btn5","images/05big.jpg");
        }

    </script>
</head>
<body>
    <div class="box">
        ![](images/01big.jpg)
        <ul>
            <li id="li-btn1">![](images/01.jpg)</li>
            <li id="li-btn2">![](images/02.jpg)</li>
            <li id="li-btn3">![](images/03.jpg)</li>
            <li id="li-btn4">![](images/04.jpg)</li>
            <li id="li-btn5">![](images/05.jpg)</li>
        </ul>
    </div>
</body>
</html>
返回值 return
  • 定义:
      一个函数实际上就是一个计算过程,计算完成之后的结果就是返回值。
  • 定义函数的返回值:
      在函数内部用return来设置返回值,一个函数只能有一个返回值。
      同时,终止代码的执行。
  • 所有的自定义函数默认没有返回值;
  • Return 后面不要换行
焦点的事件

我们前面学过了 onclick 点击 onmouseoveronmouseout

  • 获得焦点: onfocus
  • 失去焦点: onblur

例:搜索框校验

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .box{
            width: 258px;
            height: 40px;
            margin: 50px auto;

        }
        input{
            padding: 0;
            margin: 0;
        }
        .box input[type="text"]{
            width: 206px;
            height: 40px;
            background: url("images/left.jpg");
            border: 0 none;
            outline-style: none;
            padding-left: 10px;
            float: left;
            color: #999;
        }
        .box input[type="button"]{
            width: 42px;
            height: 40px;
            background: url("images/right.jpg");
            float: right;
            border: 0 none;
            cursor: pointer;
        }
    </style>
    <script type="text/javascript">
        window.onload = function(){
            var searchTxt = document.getElementById("searchTxt");
            searchTxt.onfocus = function(){//得到焦点
                if(this.value == "请输入..."){
                    this.value = "";
                    this.style.color = "#000";
                }
            }
            searchTxt.onblur = function(){//失去焦点
                if(this.value == ""){
                    this.value = "请输入...";
                    this.style.color = "#999";
                }
            }
        }
    </script>
</head>
<body>
    <div class="box">
        <input type="text" value="请输入..." id="searchTxt"/>
        <input type="button"/>
    </div>
</body>
</html>
this、className、innerHTML、value
  • 指的是本身,This 主要是指事件的调用者 。
  • className 类名

$("result").className ="wrong";

  • innerHTML
    更换 盒子里面的内容 文字 标签都换.
  • 表单更换内容
    Input.value
  • isNaN : NaN 表示不是一个数字,isNaN是不是 不是一个数字
  • isNaN(“12”) 如果里面的不是个数字 返回 true 否则返回false

例: 表单验证

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        body{
            margin: 0;
            padding: 0;
        }
        .box{
            text-align: center;
            margin: 100px auto;
        }
        .box span{
            display: inline-block;
            width: 200px;
            height: 20px;
            border: 1px solid #ccc;
            line-height: 20px;
            font-size: 12px;
            text-align: left;
            background-color: #eee;
            padding-left: 20px;
            color: #999;
        }
        .box .right{
            color: #5EFF5E;
            background:#DFFFDF url("images/right.png") no-repeat 4px;
            border: 1px solid #ACFFAC;
        }
        .box .error{
            color: #FF6B39;
            background:#FFDCD0 url("images/wrong.png") no-repeat 4px;
            border: 1px solid #FFAC91;
        }
    </style>
    <script type="text/javascript">
        window.onload = function () {
            //模拟jquery,
            function $(id) {return  document.getElementById(id);}
            $("mytxt").onblur = function () {
                if(this.value == ""){
                    $("result").className = "error";
                    $("result").innerHTML = "成绩不能为空!";
                }else if(isNaN(this.value)){
                    $("result").className = "error";
                    $("result").innerHTML = "成绩必须为数字哦,思密达!";
                }else if(this.value>150 || this.value<0){
                    $("result").className = "error";
                    $("result").innerHTML = "成绩必须为0~150!";
                }else{
                    $("result").className = "right";
                    $("result").innerHTML = "输入的成绩正确";
                }
            }
        }
    </script>
</head>
<body>
    <div class="box">
        语文成绩:
        <input type="text" id="mytxt"/>
        <span id="result">请输入语文成绩</span>
    </div>
</body>
</html>

表单自动获得焦点

Input.focus(); 方法
会触发onfocus事件

鼠标经过选择表单

 sele.onmouseover = function(){
    this.select(); //选择
}

getElementsByTagName() 获取某类标签

前面我们可以通过id得到一个盒子:getElementById()只得到一个盒子
我们想要获取某类标签 比如说所有 的divlispangetElementsByTagName(); 很多个所以是复数
getElementsByTagName();返回值是一个伪数组。

相关文章

  • 05_JS函数

    函数(function) 函数: 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 函数的声明 函数使...

  • 05_JS面向对象

    继承的实现方式 在前面,我们的结论就是可以通过继承来让一个对象可以使用另一个对象的属性和方法,那怎么实现继承呢? ...

  • Excel(三)

    AND函数 OR函数 NOT函数 IF函数 频率分析函数FREQUENCY

  • if、else if、for、while、repeat函数

    ①if函数 ②else if函数 ③for函数 ④while函数 ⑤repeat函数

  • strsplit、mapply、paste、match函数

    strsplit函数 mapply函数 strsplit函数 mapply函数 paste函数 match函数 第...

  • Oracle中常用函数(SQL)

    Oracle函授有以下几个分类:数字函数、字符函数、日期函数、转换函数、集合函数、分析函数 数字函数: 字符函数:...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 函数基本知识

    函数 函数的定义: def 函数名() 函数的调用:函数名() #不能将函数调用放在函数定义上方 函数的文档注...

网友评论

      本文标题:05_JS函数

      本文链接:https://www.haomeiwen.com/subject/txdufxtx.html