0
点赞
收藏
分享

微信扫一扫

JavaScript-入门第三周学习笔记3

龙毓七七 2022-05-04 阅读 49

一、Error对象 - 错误

        1、浏览器自带4种错误类型:可以快速找到自己的错误
            ① 语法错误:SyntaxError - 多半都是你的语法符号写错了
            ② 引用错误:ReferenceError - 没有创建就直接使用了
            ③ 类型错误:TypeError - 不是你的方法,你却去使用了
            ④ 范围错误:RangeError - 只有一个API会碰到:num.toFixed(d);//d取值范围的:0~100之间

        2、只要发生错误,就会报错,会导致后续代码终止
              错误处理:就算发生错误不希望报错,而是给一个错误的提示,后续代码可以继续执行。

    try...catch...的性能非常差,几乎里面的代码效率会被降到最低
    *可以用一个技术代替:if...else...
    *开发经验:记住一切的客户端输入/用户输入都是坏人 - 你不必担心,只要你做好防护就不会出现错误(!isNaN,比较运算,正则)

        3、抛出自定义错误
            throw new Error("自定义错误信息") - 只要是报错都会卡主后续代码

二、Function对象

        1、创建:3种
               ① 声明:function 函数名(形参,...){函数体;return 返回值;}
               ② 直接量:var 函数名=function(形参,...){函数体;return 返回值;}
               ③构造函数:var 函数名=new Function("形参1","形参2",...,"函数体;return 返回值;");
 

//以下案例,我们让用户来参与到底是顺序还是降序排列
            var arr=[321,5,43,65,8,213,43,765,12];
            var user=prompt("排序数组,如果您输入a-b则为升序排列,如果您输入b-a则为降序排列");//"a-b" "b-a"
            var compare=new Function("a","b","return "+user);
            arr.sort(compare);
            console.log(arr);

        2、考点:
                ① 创建
                ② 作用域:变量的使用规则:优先使用局部的,局部没有找全局,全局没有就报错
                ③ 声明提前:
                ④ 按值传递:
                ⑤ 重载:相同的函数名,传入不同的实参,可以自动选择对应的函数执行操作
              问题:js的语法不支持重载,js不允许多个同名函数同时存在,如果同时存在,最后的会覆盖之前的所有
              解决:在【函数中】有一个对象 - arguments对象
                arguments:只能在函数中使用,自动创建,是一个类数组对象(类似数组)
                                       作用:可以接收所有传入的实参
                argument对象是一个类数组对象:
                只有3个点和数组相同:
                   (1)使用下标
                   (2)使用length
                   (3)遍历

               arguments可以做的事:
                (1)实现重载:通过在函数内部判断arguments,执行不同的操作
                (2)以后有没有形参都无所谓
                (3)正式开发中,有可能会将多个函数整合为一个函数 - 代码优化

                ⑥ 匿名函数:没有名字的函数
                   (1)匿名函数自调:
                为什么:节约内存,因为匿名函数,没有变量引用着,用完,就会立刻释放变量
                

(function(){
                    //以后可以代替全局代码写法,尽量不要再外部再去书写JS(不用担心事件会被释放掉)
                })();

                    (2)匿名函数回调:将函数作为实参,传递给其他函数调用
                                a、学习回调的目的:让你们知道哪些叫做回调:只要不是自调,就是回调
                  

arr.sort(function(){})
str.replace(reg,function(){})
btn.onclick=function(){}

                                b、以后ES6技术:箭头函数:简化一切的回调函数

                                c、了解一下回调函数的原理

举报

相关推荐

0 条评论