• JS视频总结


    this

    this是在函数执行的时候去获取对应的值,而不是函数定义时.函数里面的this,谁调用函数this就指向谁。
    this容易出问题的地方:
    定显示器调用的this就指向window,解决办法就是再套一层。
    setInterval(function(){
    _this.fun();
    })
     
    <input type='buttom'  onClick="fun()"  />   <script>function fun(){ alert(this); }</script> //此时this指向的window
    oDiv.onClick=fun;      //this指向oDiv,函数后不带( )
    oDiv.onClick=function(){   this.value="";    fun(); }  //前面的this指向oDiv ,fun()里 的this指向window
     背景不能作为判断条件,颜色不能作为判断条件 

    object

    object只要不为空就可以添加自定义的属性和自定义方法。
    var obj=document;
     obj.onOff=true; //自定义属性

    Number()

    Number( )可以转字符串、bool值,NULL,一个值的数组可以转换,但是多个值的数组就转不了,不能转函数返回NAN
    Number( )、parseInt()、parseFloat()强制类型转换
    隐式类型转换:
    +      '200'+3   //变成字符串
     - * / %  '200'-3    //变成数字
    ++ --       变成数字 
    ><            数字的比较、字符串的比较
    !             取反
    ==  ===        二等判断值 ,三等判断值和类型
    NaN :false ;NaN===NaN //false; not a number 不是数字但是数字类型,NaN提示出现了非法运算。
    isNaN(): 方法;根据Number( )转换后再进行判断值是不是数字,是数字返回false,不是数字返回true,NaN时返回true  //input里面输入的数据都是字符串不能用typeof来判断,只能用isNaN判断

    break和continue

    break跳出,结束整个循环 //for(var i=0;i<6;i++){if(i==3){break;}alert(i)} 0 1 2
    continue跳过,结束单次循环//for(var i=0;i<6;i++){if(i==3){continue;}alert(i)} 0 1 2 4 5

    true和false

    false:NaN、空字符串、null、未定义
    true:非空字符串、函数、{}、[]

    定时器

    clearInterval可以清除null,可以清除未定义
     
    var timer=setInterval(fun,1000); //执行很多次
    clearInterval(timer);
     
    var timer setTimeout(fun,1000); //只执行一次
    clearTimeout(timer)       

    (function(arg){...})(param) 

    ( function(arg) {...} )(param)相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数
    (function($){...}) (jQuery)之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery,用来定义一些需要预先定义好的函数
    var fn = function($){....};  //相当于(function($){...}) (jQuery)
    fn(jQuery);

    总结:
    jQuery(function(){ });用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因 为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。 
    (function(){ })(jQuery);用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码 请小心使用。
     
     clientX/clientY: 当一个事件发生的时候,鼠标到页面可视区的距离。
    scrollX/ScrollY: 滚动条的高度和宽度
     

    Event

     
    onmousemove:当鼠标在一个元素上面移动时触发,触发的频率不是像素,还是间隔时间,在一个指定的时间内(很短),如果鼠标的位置和一一次的位置发生了变化,那么就会触发一次。
     时间冒泡:当一个元素接受到一个事件时,会把这个事件传递给它的父级,一至到 window为止。
    event.cancelBubble=true; //阻止事件冒泡
    function(ev){ev.cancelBubble=true;}
    事件捕获:IE浏览器没有事件捕获、
    给一个对象的同一个事件绑定多个不同的函数
    ie:obj.attacthEvent("事件名称",事件函数)   //1 无捕获,2 this指向window,3 事件执行顺序是倒序
    标准:obj.addEventListener("事件名称",事件函数,是否捕获) // 1 有捕获 :false:冒泡  ture:捕获,默认是false,2 this指向该事件的对象,3 事件执行顺序是正序,4事件名称没有on
    call :call第一个参数可以改变函数执行过程中的内部this的指向。//fn.call(obj);指向obj
     

    面向对象

    工厂模式
    问题:1.没有new,2.每个对象都有自己的一套函数,浪费资源。
    fuction fun(name)
    {
      obj =new object();  //原料
       obj.name=name; //加工
       obj.fn= function ()   {  alert(this.name);  }
      return obj; //出厂
    }
     
    var f1=fun("Jone");
    f1.fn();
    构造函数
    构造函数就是类,构造函数首字母大写
    function CreatePerson(name)
    {this.name=name; //属性}
    //方法
    CreatePerson.prototype.showName=function(){alert("this.name);}
     
    json构造函数
    var per={name:"jone",sec:" 女",shwoName:function(){alert(this.name;}}
    per.common{ getByGroup:function(){}}
    per.showName():
     
    继承
    function Person(name,sex)
    {this.name=name;
    this.sex=sex;
    }
    function Worker(name,sex, job)
    {
    //this -new出来的Worker对象
    //构造函数伪装
    Person.call( this ,name ,sex );  //把父的属性继承过来
    }
     Worker.prototype=Person.prototype; //原型链,这个操作Worker会影响到Person,前面修改的后面也会跟着修改 
    for(var i in Person.prototype){Worker.prototype[i]=Person.prototype[i];} //换成这种办法可解决
     
    instanceof
    判断某个对象是否是某个类的实例
     
    本地对象 (非静态对象)
    Object,  Function, Array, String, Boolean,Number, Date, RegExp ,Error
    内置对象(静态对象)
    Math,Globle
    宿主对象
    BOM 、DOM
     
    ajax和pjax
     ajax不能改变URL,不利搜索引擎爬取,pjax在改变页面的同时可以改变URL。
     
      !!eles  //加两个!!,如果eles是undefined将转换成false,可以用来判断函数参数是否传入了  
     
     
     
     
     
  • 相关阅读:
    《Forward团队-爬虫豆瓣top250项目-开发文档》
    结对-网页贪吃蛇游戏-项目总结
    Forward团队-爬虫豆瓣top250项目-模块测试过程
    Forward团队-爬虫豆瓣top250项目-模块开发过程
    Forward团队-爬虫豆瓣top250项目-项目总结
    《软件工程课程总结》
    课后作业-阅读任务-阅读提问-4
    《20171201-构建之法:现代软件工程-阅读笔记》
    Forward团队-爬虫豆瓣top250项目-最终程序
    课后作业-阅读任务-阅读提问-3
  • 原文地址:https://www.cnblogs.com/guanguan-/p/7017621.html
Copyright © 2020-2023  润新知