核心提示:有时候我们套框架套的多了,总会想不起一些基本的JS,甚至犯错。太不科学了,所以自己要是总结一些原生JS基础,当做一个笔记吧。方便自己,也便于他人。好吧,我不是一个会描述和陈述的人,还是看代码。喜欢用代...
有时候我们套框架套的多了,总会想不起一些基本的JS,甚至犯错。太不科学了,所以自己要是总结一些原生JS基础,当做一个笔记吧。方便自己,也便于他人。
好吧,我不是一个会描述和陈述的人,还是看代码。
喜欢用代码说话。
一、var
在js中,我们都知道变量都用var来声明。关于这点,只要不是一点都没有接触过JS的人才不懂吧。 但是,有没有想过他的本质意义呢? 所以,var 代表在内存中开辟了一个空间,可以用于存储数据。在程序中一般称为定义【变量】的符号。
二、变量名
// 标识(zhi)符 // 用于给JS中变量、函数、数组等等起名字用的 // 组成部分: // (1)必须数字、字母、下划线、$ 组成 // (2) 不能以 数字 开头 嗯哈,别在开发中挂在这。之前不小心碰到过一次,说来也是搞笑。
三、DOM操作——怎样添加、移除、移动、复制、创建和查找节点。
(1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节点 (2)添加、移除、替换、插入 appendChild() removeChild() replaceChild() insertBefore() //在已有的子节点前插入一个新的子节点 (3)查找 getElementsByTagName() //通过标签名称 getElementsByName() //通过元素的Name属性的值(IE容错能力较强,会得到一个数组,其中包括id等于name值的) getElementById() //通过元素Id,唯一性
四、null和undefined的区别
null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。 当声明的变量还未被初始化时,变量的默认值为undefined。 null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。 undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是: (1)变量被声明了,但没有赋值时,就等于undefined。 (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。 (3)对象没有赋值的属性,该属性的值为undefined。 (4)函数没有返回值时,默认返回undefined。 null表示"没有对象",即该处不应该有值。典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象。 (2) 作为对象原型链的终点。
五、new操作符具体干了什么呢?
new操作符具体干了什么呢? 1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。 2、属性和方法被加入到 this 引用的对象中。 3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。 var obj = {}; obj.__proto__ = Base.prototype; Base.call(obj);
六、数组方法pop() push() unshift() shift()
数组方法pop() push() unshift() shift() Push()尾部添加 pop()尾部删除 Unshift()头部添加 shift()头部删除
七、Ajax的原理
Ajax的原理 通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。 ajax过程: (1)创建XMLHttpRequest对象,也就是创建一个异步调用对象. (2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息. (3)设置响应HTTP请求状态变化的函数. (4)发送HTTP请求. (5)获取异步调用返回的数据. (6)使用JavaScript和DOM实现局部刷新
八、GET和POST的区别,何时使用POST?
GET和POST的区别,何时使用POST? 一个在url后面 一个放在虚拟载体里面有大小限制 安全问题应用不同 一个是论坛等只需要请求的,一个是类似修改密码的; GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符 POST:一般用于修改服务器上的资源,对所发送的信息没有限制。 GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值, 也就是说Get是通过地址栏来传值,而Post是通过提交表单来传值。 然而,在以下情况中,请使用 POST 请求: 无法使用缓存文件(更新服务器上的文件或数据库) 向服务器发送大量数据(POST 没有数据量限制) 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
九、call()和apply()的区别
call()和apply()的区别: apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组。如果上下文是null,则使用全局对象代替。例如: function.apply(this,[1,2,3]) call()的第一个参数是上下文,后续是实例传入的参数序列,例如: function.call(this,1,2,3);
十、如何解决跨域问题
jsonp、 document.domain+iframe、window.name、window.postMessage、服务器上设置代理页面 jsonp的原理是动态插入script标签
一个ajax基础知识例子。 <script> // ajax 最重要的对象 XMLHttpRequest // (1). 创建了ajax对象 var req = new XMLHttpRequest(); // (2). 请求数据,向 服务器(协议、IP、端口)请求 // http://www.baidu.com (80 默认端口,可以省略不谢) // http://127.0.0.1:8080/ajax/ajaxtest // open: 只是为数据请求做好准备 // 参数1: 请求数据的方式: GET, POST, DELETE, PUT 等 // 参数2: 服务器的信息 // 参数3: true 代表异步,false 代表同步操作 req.open("GET", "http://127.0.0.1:8080/ajax/ajaxtest", false); // (3) 向服务器发送请求数据 req.send(); // 请求的属性,代表请求的状态 // 0: 尚未请求 // 1: 开始请求数据,但服务器还没有收到请求 // 2: 服务收到请求了,但还没处理 // 3: 已经开始处理数据了 // 【4】: 服务器已经处理完数据,并返回结果 // req.readyState // req.status 是 HTTP的状态码 // 【200】 正常请求到数据 // req.status if (req.readyState == 4 && req.status == 200) { // 返回的结果,类型是 string //alert(req.responseText); console.log("服务器已正常经返回结果"); } console.log("这是主线程的调用"); </script>
过后会整理一些关于ajax的内容。现在都是想起什么就写什么。
过后再更新了。