js第三周

一、
Math:不用创建
Math.PI

API:取整:Math.ceil(num);  Math.floor(num);    Math.round(num);

乘方:Math.pow(底数,幂);   开方:Math.sqrt(num);

最大值和最小值 Math.max/min(a,b,c,d,e...);   支持数组:Math.max/min.apply(Math,arr);

绝对值:Math.abs(num);

***随机整数:parseInt(Math.random()*(max-min+1)+min);

Date:

创建:  1、当前时间:var now=new Date();

      2、自定义时间:var date=new Date("yyyy/MM/dd hh:mm:ss");
            var date=new Date(yyyy,MM-1,dd,hh,mm,ss);

      3、复制日期:var end=new Date(start);

操作:FullYear Month Date Day Hours Minutes Seconds
        每一个分量都有一对儿getXXX/setXXX,除了Day没有set操作

Number:
    创建:var num=new Number();
       num.toFixed(d);//结果是一个字符串
       num.toString();

Boolean:
    创建:var bool=new Boolean(); 一切的引用类型的对象,都具有属性和方法

二,

error:1、语法错误:SyntaxError - 符号错了
    2、引用错误:ReferenceError - 没有创建
    3、类型错误:TypeError - 不是你的方法你却去使用了
    4、范围错误:RangeError - num.toFixed(d);//d 0-100之间

错误处理:try{
        可能出错的代码
    }catch(err){
        console.log("错误提示");
    }
重载:同一个函数名,根据传入的实参的不同,执行对应的函数
          arguments类数组对象:哪怕没有形参,接住所有的实参
            arguments[0] - 第一个实参
            arguments[1] - 第二个实参

、自调:代替全局作用域
            (function(){
                开始写自己的代码 - 变量会自动释放
            })();

        回调:多半都是API里前辈提供好的,我们学习了就可以直接使用,以后回调函数可以简化箭头函数
            只要匿名函数,不是自调,一定就是回调
            arr.sort(function(a,b){return a-b})
            elem.οnclick=function(){}

三、Function的闭包:
   目的:保护一个可以【反复使用的局部变量】的一种词法结构

function outer(){ 受保护的变量
        return function(){    操作受保护的变量   }
    }

防抖节流
    function outer(){
        var timer=null;
        return function(){
            if(timer){clearTimeout(timer)}
            timer=setTimeout(function(){
                操作  },间隔毫秒数) }
    }
Object:

创建:
       1、*直接量:使用创建单个对象
        var obj={
            "属性名":属性值,
            "方法名":function(){},
        }

预定义构造函数:
        var obj=new Object();//空对象
        追加属性和方法
        obj.属性名=属性值
        obj.方法名=function(){}

自定义构造函数:创建多个对象
        1、创建构造函数
            function 构造函数名(xingming,nianling,aihao){
                this.name=xingming;//ljb.name="";
                this.age=nianling;//ljb.age=50;
                this.hobby=aihao;//ljb.hobby=3500;
            }

        2、反复调用构造函数创建对象
            var ljb=new 构造函数名("廖家兵",50,3500);

访问:
        obj.属性名;  obj.方法名();

     遍历对象
        for(var i in obj){   obj[i];   }

this的指向:
        1、事件中:单个元素 this->这个元素
               多个元素 this->当前触发元素

        2、函数中:this->当前调用次函数的人
            
        3、构造函数中:this->当前正在创建的对象
        
        4、定时器中:this->window

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值