必会js知识点梳理

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

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

  1. 获取所有的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])
             }
     }
    

4、绑定事件的方式?
1、直接在dom里绑定:


2、在js中通过onclick绑定:xxx.οnclick=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
                    (无关东东css:<!--[if lt IE 9]><![endif]-->)
                    (附:阻止事件传播)
                            w3c中,使用stopPropagation()方法阻止冒泡;阻止默认事件:preventDefault();
                            ie中,cancelBubble = true阻止事件冒泡;阻止默认事件:window.event.returnValue = false;

5.什么是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;

7、什么情况会出现undefined?
当只声明变量,并未赋值初始化的时候这个变量的值就是undefined;

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

* 
  1. 输出YYYY-MM-DD
* 
            function getYMD(){
* 
                    var date = new Date();
* 
                    var y = date.getFullYear();
* 
                    var m = date.getMonth()+1;
* 
                    var d = date.getDate();
* 
                    function getDouble(str){
* 
                            var str; 
* 
                            if(str < 10){
* 
                                    return str = "0"+str;
* 
                            }else{
* 
                                    return str = str;
* 
                            }
* 
                    }
* 
                    return y +"-"+getDouble(m)+"-"+getDouble(d);
* 
            }

9 、短路表达式 || &&? foo = foo || bar; &&是“与”的意思,||是“或者”的意思 如果foo 为真 foo = foo; 否则 foo = bar; || 第一个为真则返回第一个,否则返回第二个; && 第一个为假则返回第一个,否则返回第二个; 作用:精简代码,不过可读性较低; (拓展:阻止默认事件与冒泡事件)
function preventEvent(e) {
var e = e || window.event;
e.preventEvent || e.returnValue = false;
e.stopPropagation || e.cancelBubble = true;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值