js基础知识大集合,欢迎收藏

转载自品略图书馆  http://www.pinlue.com/article/2019/08/0202/559433889838.html

 

1、基本数据类型:string、boolean、number、undefined、null

引用数据类型:object、array、Date、regexp、function

2、判断数据类型:

1)、通过专有方法判断:push(),pop();

2)、obj instanceof Array 返回值判断

3)、es5和jq都有方法array.isarray()。

4)、tostring.call(param)判断;返回格式【object Undefined】判断

3、绑定事件的方式:

1)、直接在dom里绑定:

2)、在js中通过onclick绑定:xxx.οnclick=test;

3)、通过事件绑定:dom.addEventListener("click",test,boolean)

4、事件流模型:

1)、事件冒泡:事件由最具体的元素接收,然后逐级向上传播;

2)、事件捕捉:事件由最不具体的节点接收,然后逐级向下,一直到最具体元素

3)、dom事件流:三个阶段:事件捕捉,目标阶段、事件冒泡;

5、阻止事件传播:

1)、w3c,使用stopPropagation()方法阻止冒泡;阻止默认事件:preventDefault()。

2)、ie中cancelBubble = true阻止事件冒泡;阻止默认事件:window.event.returnValue = false。

6、Ajax(异步的JavaScript和xml)

1)、优点:(1)、可以使页面不重载全部内容的情况下加载局部内容,降低数据传数量

(2)、避免用户不断刷新或者跳转页面,提高用户体验。

2)、缺点:(1)、对搜索引擎不友好;

(2)、要实现ajax前后退功能成本较大;

(3)、跨域问题限制。

7、JSON:

JSON是一种轻量级的数据交互格式,ECMA(欧洲计算机制造商协会)的一个子集。

1)、优点:

轻量级,占用带宽小易于人的阅读和编写,便于机器(js)解析,支持复合数据类型(数组、对象、字符、数字),能直接为服务器端代码使用。大大简化了服务器和客户端的代码开发量。

2)、缺点:相对xml通用性较差,数据可描述性较差。

8、undefined出现原因:

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

9、for循环效率问题

1)、for(var i=0;i

2)、for(var i in arr)

3)、for(var i=0,len=arr.length;i

第三种效率更高!

10、函数声明与函数表达式的区别:解析器会率先读取函数声明,并使在执行任何代码之前可用(也就是函数声明提升)

函数表达式则是解析器执行到他所在的代码,才会真正的执行

11、apply与call的区别:作用相同都是改变this的指向,但apply传入的是参数数组,call是离散型参数

12、伪数组:无法直接调用数组的方法,但仍有length属性

1)、转化为真的数组:Array.prototype.slice.call(fakeArray)

13、拖拽:

1)、mousedown事件触发后,开始拖拽

2)、mousemove时,通过e.clientX和clientY获取拖拽位置,实时更新位置;

3)、mouseup时,拖拽结束。

14、ajax:

ajax({

url: "./TestXHR.aspx",       //请求地址

type: "POST",                            //请求方式

data: { name: "super", age: 20 },    //请求参数

dataType: "json",

success: function (response, xml) {

// 此处放成功后执行的代码

},

error: function (status) {

// 此处放失败后执行的代码

}

});

function ajax(options) {

options = options || {};

options.type = (options.type || "GET").toUpperCase();

options.dataType = options.dataType || "json";

var params = formatParams(options.data);

var xhr;

//创建 - 第一步

if (window.XMLHttpRequest) {

xhr = new XMLHttpRequest();

} else if(window.ActiveObject) {         //IE6及以下

xhr = new ActiveXObject('Microsoft.XMLHTTP');

}

//连接 和 发送 - 第二步

if (options.type == "GET") {

xhr.open("GET", options.url + "?" + params, true);

xhr.send(null);

} else if (options.type == "POST") {

xhr.open("POST", options.url, true);

//设置表单提交时的内容类型

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.send(params);

}

//接收 - 第三步

xhr.onreadystatechange = function () {

if (xhr.readyState == 4) {

var status = xhr.status;

if (status >= 200 && status < 300 || status == 304) {

options.success && options.success(xhr.responseText, xhr.responseXML);

} else {

options.error && options.error(status);

}

}

}

}

//格式化参数

function formatParams(data) {

var arr = [];

for (var name in data) {

arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name]));

}

arr.push(("v=" + Math.random()).replace("."));

return arr.join("&");

}

你可能感兴趣的:(JS,js)