1、谈谈你对跨域的认识,或者两台机器,a机器请求b机器上的数据,如何处理?
对于这样的问题,我是这样看的,由于多台机器在不同的地域,或者不同的域名,或者不同的端口这种情况下,它会引起ajax在访问的时候访问不到,比如数据,文件都访问不到,但是只有js文件是可以访问到的,基于这种情况,ajax就会利用js来访问其他的文件,这就是引起跨域的原因,就是不同服务器上,不同机器上访问不到数据跟文件。那么在ajax里面跨域的时候,是这样的,http也好,https也好,它在网络上传递的时候,我们在ajax请求路径上面,其实它如果请求别的机器,它有一个callback参数这个参数是一个函数,他会把这个参数传到目标服务器上面,目标服务器会接到这个callback参数,然后进行一系列的数据处理,然后生成json数据,但是callback也会传回来,写的时候一般写callback.json数据的数组。传回来之后,就即接到callback,又接到json数组,那么此时json数组就可以渲染了,这就是我对跨域的理解,当然目前实现跨域的手段有很多,比如jsonp,iframe.
2、事件委托是什么
事件委托就是事件目标自身不处理事件,而是把处理任务委托给其父元素或者祖先元素,甚至根元素(document)
3、数组操作的方法
数组是用来存储一系列相关数据的 我们常用的创建数组有两种方法 一种是var arr=[] 和 var arr=new Array() 它可以设置数组的长度; ①console.log(Array.isArray(arr)) ②console.log(arr instanceof Array)判断是否为数组
常用的操作数组的方法有
push() 末尾添加
unshift()开头添加
pop()末尾删除
shift()开头删除
splice(index,length,添加的元素)
join()把数组返回成字符串
reverse()返回逆序数组
sort()数组从小--大排序
concat()合并数组
slice(index,index)截取 不包括结束下标
4、字符串操作的方法?
String() toString()
获取字符串对象的方法:charAt() 返回字符 写下标
charCodeAt()返回编码值
fromCharCode()填写编码值 返回字符串(多个)
查找类型:
indexOf()写字符返回对应的位置 连个参数 第二个参数从哪个位置开始查找
lastindexOf()返回字符串最后的位置
替换:
replace("#","")替换
截取类型:
splice(start,end)
substring(strat,end)不包括结束
substr(start,length)
转换类型:
split()分割 转换成数组
toLowerCase()小写
toUpperCase()大写
concat()连接多个字符串
5、JS中的数据类型有哪些
Number
String
Boolean
Null
Undefined
Object
6、什么事作用域链
我们可以把所有作用域看成是有一个链条链接起来的,这样能使变量和函数能够有序有机的进行运行。
7、创建函数的几种方式?
定义:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
优点:使程序更加简洁、逻辑性更调理、调用更方便、维护更加容易
参数:arguments length callee
函数分为具名函数和匿名函数
具名函数的创建function aa(){}
匿名函数 var aa=function(){}
8、javascript的语法?javascript是有什么组成的?
基于对象和事件驱动的松散型的解释性语言,javascript是有ECMA javascript BOM和DOM组成。
9、谈谈你对ajax的理解?
ajax在项目当中是当作异步传输模式来做的,异步传输时相当于同步来说的,当我们按下F5刷新页面时,那么整个页面在浏览器中都会被更新数据,而当我们须要部分数据更新时,这时候我们调用ajax,ajax会刷新这一部分数据而不刷新整张页面,这就是异步传输。 而对于我们实现ajax来说,一般分为这么几种情况,第一种情况是原生的ajax 第二种是被jQuery简化过后的ajax
其中原生的ajax是这样的,首先应该创建ajax对象,这时候应该考虑兼容性,然后调用open()方法打开ajax的链接,里面写的属于有 ger/post,url,true/false(是否同步异步),建立连接后,开始执行send()的方法请求数据,在这个过程中,需要调用一个监听事件onreadystateChange,在监听过程中有5个状态值,当状态值为4表示执行完毕 当状态吗为200时,执行成功,然后把请求的数据responseText,然后再进行遍历,执行页面操作。
jQuer简化后的ajax,$.ajax调用的时候里面有几个重要的参数type\url\dataType\success\error这些就是原生中对应参数的值
ajax的优点1、实现异步的传输,带来了更好的用户体验
2、ajax占用的空间少,ajax能实现及时通讯系统,开创了调用其它接口方便的先河
ajax的缺点1、对于服务器来讲,由于ajax局部刷新数据,使服务器在频发的处理,请求中速度变慢
综上所述:这就是我对ajax的理解。
10、节点
获取: 对象.parentNode 获得父节点的引用
对象.childNodes 获得子节点的集合
对象.firstChild 获得第一个子节点的引用
对象.lastChild 获得最后一个子节点的引用
对象.nextSibling 获得下一个兄弟节点的引用
对象.previousSibling 获得上一个兄弟节点的引用
操作: 父对象.appendChild(追加的对象) 插入到最后
父对象.insertBefore(要插入的对象,之前的对象) 插入到某个对象之前
父对象.removeChild(删除的对象)
12、事件绑定和普通事件有什么区别
普通事件覆盖前面的事件 事件绑定可以绑定多个事件 不会被覆盖
13、我们如何从本地存储中添加和移除数据?
LocalStorage
setItem(key,value)
获取:getItem(key)
删除:removeItem(key)
14、javascript的同源策略
引用的资源需要在同一个域名下,否则有跨域安全性问题请求不到。当然也有很多方法可以跨域请求。
15、document load 和document ready的区别
页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页面包含图片等文件在内的所有元素都加载完成。
16、ajax请求的时候get 和post方式的区别
1、 get是把参数数据队列加到提交表单的action属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在html header内一起传送到action属性所指的URL地址。用户看不到这个过程。
2、 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。两种方式的参数都可以用Request来获得。
3、get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,因服务器的不同而异.
4、get安全性非常低,post安全性较高
总而言之post是把数据传输到HTTP中 而get是把数据传输到url中
如果传输的数据比较大用post数据小于2kb时用post传值
网友评论