深圳市小水滴网络科技有限公司(套题)
选择题 | 填空题 | 问答题 | 编程题 | 试题难度 |
---|---|---|---|---|
0 | 0 | 5 | 0 | 一般 |
问答题
1、js的基本数据类型有哪些?
基本数据类型:String,boolean,Number,Undefined, Null
引用数据类型:Object, Array, Function
2、js获取dom的方法有哪些?添加事件的方法有哪些?并请回答以下选择器代表队的意思 (1).comtainer>input[type="radio"]:checked (2).item+.item
JS获取DOM元素的方法
通过ID获取(getElementById)
通过name属性(getElementsByName)
通过标签名(getElementsByTagName)
通过类名(getElementsByClassName)
获取html的方法(document.documentElement)
获取body的方法(document.body)
通过选择器获取一个元素(querySelector)
通过选择器获取一组元素(querySelectorAll)
添加事件的方法
1.在按钮中添加事件
2.通过onclick方法添加,有两种写的方式
3.通过addEventListener()添加
3、请简述js函数this指向分为哪些情况
THIS的常见的四种情形:
1.纯粹的作为函数调用:全局函数中,this指向window。
2.作为对象方法的调用:当函数被作为某个对象的方法调用时,this就是那个对象。
3. 作为构造函数调用:this指向新对象‘。
4.apply、call调用:this指向改变后的调用这个函数的对象。
4、请使用XMLHttpRequest创建一个异步Ajax请求;要求Content-Type为application/x-www-form-urlencoded;方法为post;并发送数据 a=1,b=2;服务器返回内容为json
var nums ={
a:1,
b:2}
var request=new XMLHttpRequest();
//4.准备发送请求的数据:url
var url=this.href +"?time="+new Date()
var method="POST"
//5.调用xmlhttprequest对象的open方法
request.open(method,url);
request.setRequestHeader("ContentType","application/x-www-form-urlencoded");
//6.调用xmlhttprequest对象的send方法,get请求参数为null
request.send(nums);
//7.为xmlhttprequest对象添加onreadystatechange响应函数
request.onreadystatechange=function(){
//8.决断响应是否完成:xmlhttprequest对象的readystate属性值为4
if(request.readyState==4){
//9.再决断响应是否可用:xmlhttprequest对象status属性值为200
if(request.status==200){
//10.打印响应结果:responseText
var result = JSON.parse(xhr.responseText);
alert(result );
}
}
5、请实现一个对象深拷贝函数,要求将以下对象拷贝为一个新对象 { name:"ice", age:18, label:["Humor"], Address:{ country:"China", Province:"GuangZhou", city:"ShenZhen" } }
可以使用Object.create可以达到深拷贝的效果
var obj = finalObj || {};
for (var i in initalObj) {
var prop = initalObj[i]; // 避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
if(prop === obj) {
continue;
}
if (typeof prop === 'object') {
obj[i] = (prop.constructor === Array) ? [] : Object.create(prop);
} else {
obj[i] = prop;
}
}
return obj;
}