美文网首页
07-12 js基础

07-12 js基础

作者: ningluo | 来源:发表于2017-07-12 22:15 被阅读0次

    1、js的数据类型?

    基本数据类型:String、boolean、Number、undefined、null
    引用数据类型:Object、Array、Date、RegExp、Function

    拓展:如何判断数组数据类型?
    1通过专有方法判断如:push(),pop(); //可自己给变量定义该方法,有时失效
    2、 obj instanceof Array 返回值判断;
    3、es5和jquery都有方法Array.isArray()。
    4、toString.call(param) 判断;返回格式 [object Undefined]
    5、obj.constructor === Function 返回值判断

    2、获取所有的checkbox?

        var domlist = document.getElementsByTagName("input");
        var checkboxlist = [];
        var len = domlist.length;
        
        for (var i = 0; i < len; i++) {
                if(domlist[i].type == "checkbox"){
                        checkboxlist.push(domlist[i])
                }
        }
    

    3、绑定事件的方式?

    1、直接在dom里绑定:<div onclick="test()"></div>
    2、在js中通过onclick绑定:xxx.onclick=test;
    3、通过事件绑定:dom.addEventListener("click",test,boolean)

    拓展:(js事件流模型?)
    “事件冒泡”:事件由最具体的元素接收,然后逐级向上传播;
    “事件捕捉”:事件由最不具体的节点先接收,然后逐级向下,一直到最具体元素;
    “dom事件流”:三个阶段:事件捕捉,目标阶段,事件冒泡;

    (事件流详解)
    ie事件流:冒泡型事件:button->div->body
    netscape事件流:捕获型事件:body->div->button
    dom事件模型:body->div->button->button->div->body;
    dom事件流同时支持两种事件模型:但是捕获事件先发生,从document对象开始,也在document对象结束
    ie9以下不支持addEventListener/removeEventListener,采用attachEvent/detachEvent
    阻止事件传播:
    w3c中,使用stopPropagation()方法阻止冒泡;阻止默认事件:preventDefault();
    ie中,cancelBubble = true阻止事件冒泡;阻止默认事件:window.event.returnValue = false;

    4.什么是Ajax和JSON,它们的优缺点?

        Ajax(Asynchronous Javascript And XML/异步的javascript和xml)。
        优点:
                可以使得页面不重载全部内容的情况下加载局部内容,降低数据传输量。
                避免用户不断刷新或者跳转页面,提高用户体验。
        缺点:
                对搜索引擎不友好。
                要实现ajax下的前后退功能成本较大
                可能造成请求数的增加
                跨域问题限制
    

    JSON:json是一种轻量级的数据交换格式,ECMA(欧洲计算机制造商协会)的一个子集;
    优点:轻量级,占用带宽小、易于人的阅读和编写,便于机器(js)解析,支持复合数据类型(数组,对象,字符串,数字),能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量。
    缺点:相对xml通用性较差,数据可描述性较差;

    拓展:(json与xml的区别?)

    xml定义:可拓展标记语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的语言。xml是SGML(标准通用标记语言)的子集,非常适合web传输。
    xml提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

    • xml优点:
      1、格式统一,符合标准;
      2、容易与其他系统进行交互,数据共享比较方便
    • 缺点:
      1、xml文件格式文件庞大,格式复杂,传输占用更多带宽
      2、服务器和客户端都需要花费大量代码来解析xml,服务器和客户端代码变得异常复杂和不容易维护。
      3、客户端不同浏览器之间解析xml的方式不一致,需要重复编写很多代码。
      4、服务器端和客户端解析xml花费更多资源和时间

    与json的优缺点比较?
    1、可读性、可拓展性都很出色,但是xml的编码难度更高。
    body;
    dom事件流同时支持两种事件模型:但是捕获事件先发生,从document对象开始,也在document对象结束
    ie9以下不支持addEventListener/removeEventListener,采用attachEvent/detachEvent
    阻止事件传播:
    w3c中,使用stopPropagation()方法阻止冒泡;阻止默认事件:preventDefault();
    ie中,cancelBubble = true阻止事件冒泡;阻止默认事件:window.event.returnValue = false;

    ##4.什么是Ajax和JSON,它们的优缺点?
    Ajax(Asynchronous Javascript And XML/异步的javascript和xml)。
    优点:
    可以使得页面不重载全部内容的情况下加载局部内容,降低数据传输量。
    避免用户不断刷新或者跳转页面,提高用户体验。
    缺点:
    对搜索引擎不友好。
    要实现ajax下的前后退功能成本较大
    可能造成请求数的增加
    跨域问题限制

    JSON:json是一种轻量级的数据交换格式,ECMA(欧洲计算机制造商协会)的一个子集;
    优点:轻量级,占用带宽小、易于人的阅读和编写,便于机器(js)解析,支持复合数据类型(数组,对象,字符串,数字),能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量。
    缺点:相对xml通用性较差,数据可描述性较差;

    > 拓展:(json与xml的区别?)
    >> xml定义:可拓展标记语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的语言。xml是SGML(标准通用标记语言)的子集,非常适合web传输。
    xml提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
    * xml优点:
    1、格式统一,符合标准;
    2、容易与其他系统进行交互,数据共享比较方便
    * 缺点:
    1、xml文件格式文件庞大,格式复杂,传输占用更多带宽
    2、服务器和客户端都需要花费大量代码来解析xml,服务器和客户端代码变得异常复杂和不容易维护。
    3、客户端不同浏览器之间解析xml的方式不一致,需要重复编写很多代码。
    4、服务器端和客户端解析xml花费更多资源和时间

    >>与json的优缺点比较?
    1、可读性、可拓展性都很出色,但是xml的编码难度更高。
    2、json的解码难度几乎为0,而xml得考虑子父节点;
    3、xml的通用性更广,json则广泛应用于前端。
    4、json相对xml,数据体积更小;与js交互更方便;
    5、json对数据的描述性比xml较差;
    6、json的无论是传播还是解析速度远远快于xml;

    5、什么情况会出现undefined?

    当只声明变量,并未赋值初始化的时候这个变量的值就是undefined;

    拓展:(解释原因?)
    var a=null;
    console.log(typeof a); // object
    null是一个只有一个值的数据类型,这个值就是null。表示一个空指针对象。所以typeof返回object;

    6、双等号的类型转换?

        var undefined;
        undefined == null; // true
        1 == true;  // true
        2 == true;  // false
        0 == false; // true
        0 == '';   // true
        NaN == NaN; // false
        [] == false; // true
        [] == ![];  // true
    
        // alert(!![])        //true
       // alert(![])        //false
       // alert([] == 0)        //true
       // alert(false == 0)        //true
    

    分析:undefined与null 但不全等(===)
    当为number与string时,会将string转换为number;
    number和boolean时,会将boolean转换为number
    number或string与Object,会将Object转换成number或string

    (js中的数据类型转换?)
    函数转换:parseInt()、parseFloat()、toString()
    强类型转换:Boolean()、Number()、String()
    弱类型转换:“==”、“-”、“+”、if()

    相关文章

      网友评论

          本文标题:07-12 js基础

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