您的位置:首页 > Web前端 > JavaScript

JavaScript基础(一)--基础知识归纳

2016-12-15 23:36 423 查看
有时候我们套框架套的多了,总会想不起一些基本的JS,甚至犯错。太不科学了,所以自己要是总结一些原生JS基础,当做一个笔记吧。方便自己,也便于他人。

好吧,我不是一个会描述和陈述的人,还是看代码。

喜欢用代码说话。

一、var

一、var
在js中,我们都知道变量都用var来声明。关于这点,只要不是一点都没有接触过JS的人才不懂吧。
但是,有没有想过他的本质意义呢?
所以,var 代表在内存中开辟了一个空间,可以用于存储数据。在程序中一般称为定义【变量】的符号。


二、变量名

二、变量名
// 标识(zhi)符
// 用于给JS中变量、函数、数组等等起名字用的
// 组成部分:
//       (1)必须数字、字母、下划线、$ 组成
//       (2) 不能以 数字 开头
嗯哈,别在开发中挂在这。之前不小心碰到过一次,说来也是搞笑。


三、DOM操作——怎样添加、移除、移动、复制、创建和查找节点。

三、DOM操作——怎样添加、移除、移动、复制、创建和查找节点。

(1)创建新节点

createDocumentFragment()    //创建一个DOM片段

createElement()   //创建一个具体的元素

createTextNode()   //创建一个文本节点
(2)添加、移除、替换、插入

appendChild()

removeChild()

replaceChild()

insertBefore() //在已有的子节点前插入一个新的子节点
(3)查找

getElementsByTagName()    //通过标签名称

getElementsByName()    //通过元素的Name属性的值(IE容错能力较强,会得到一个数组,其中包括id等于name值的)

getElementById()    //通过元素Id,唯一性


四、null和undefined的区别

四、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的内容。现在都是想起什么就写什么。

过后再更新了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: