1.JS判断当前浏览器是什么浏览器
console.log(navigator)
const explorer = navigator.userAgent;
var Browser;
// IE 判断浏览器是否支持ActiveX控件,如果浏览器支持ActiveX控件可以利用,
if (!!window.ActiveXObject || "ActiveXObject" in window) {
Browser = 'ie';
console.log("当前浏览器为:IE");
}
//IE documentMode是一个IE的私有属性,在IE8+中被支持。
if (window.document.documentMode) {
Browser = 'ie';
console.log("当前浏览器为:IE");
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
Browser = 'Firefox';
console.log("当前浏览器为:Firefox");
}
//Chrome
else if (explorer.indexOf("Chrome") >= 0) {
Browser = 'Chrome';
console.log("当前浏览器为:Chrome");
}
//Opera
else if (explorer.indexOf("Opera") >= 0) {
Browser = 'Opera';
console.log("当前浏览器为:Opera");
}
//Safari
else if (explorer.indexOf("Safari") >= 0) {
Browser = 'Safari';
console.log("当前浏览器为:Safari");
}
//Netscape
else if (explorer.indexOf("Netscape") >= 0) {
Browser = 'Netscape';
console.log('当前浏览器为:Netscape');
}
原文链接:https://blog.csdn.net/qq_42618566/article/details/102801914 CSDN博主「全易」
2.列举三种强制转换/两种隐性转换
强制(parseInt/parseFloat/number);隐性(== ===)
3.split()和join()的区别
前者是将字符串切割成数组,join是将数组转换成字符串
4.ajax的get和post方式的区别
一个在url后面,一个放在虚拟载体里面,get有大小限制(只能提交少量参数),安全问题,应用不同,请求数据和提交数据
5.ajax请求时,如何解析json数据
使用JSON.parse
6.事件委托是什么
利用事件冒泡的原理,让自己所触发的事件,让他的父元素代替执行
7.闭包是什么,有什么特性,对页面有什么影响
闭包就是能读取其他函数内部变量的函数,使得函数不被GC回收,如果过多使用闭包,容易造成内存泄漏
8.如何阻止事件冒泡
ie阻止冒泡ev.cancelBubble = true;非IE ev.stopPropagation();
9.如何阻止默认事件
return false;ev.preventDefault();
10.添加/删除/替换/插入到某个节点的方法
创建新节点:createElement() createTextNode()
appendChild() //添加removeChild() //移除replaceChild() //替换nsertBefore() //插入
getElementsByTagName() //通过标签名称查找
getElementsByName() //通过元素的Name属性的值查找
getElementById() //通过元素Id,唯一性
11.解释jsonp的原理,以及为什么不是真正的ajax
动态创建script标签,回调函数,Ajax是页面无刷新请求数据操作
12.document load 和 document ready 的区别
document.onload是结构和样式外部js以及图片加载完才执行js
document.ready是dom树创建完成就执行的方法,原生中没有这个方法,jquery中有,$().ready(function)
13."=="和“===”的不同
"=="会先进行类型转换再去比较
14.函数声明和函数表达式的区别
在Javscript中,解析器在向执行环境中加载数据时,对函数声明和函数表达式并非是一视同仁的,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解析执行
(1)创建对象:var xhr = new XMLHttpRequest();
(2)打开请求:xhr.open('GET', 'example.txt', true);
(3)发送请求:xhr.send(); 发送请求到服务器
(4)接收响应:xhr.onreadystatechange =function(){}
(1)当readystate值从一个值变为另一个值时,都会触发readystatechange事件。
(2)当readystate==4时,表示已经接收到全部响应数据。
(3)当status ==200时,表示服务器成功返回页面和数据。
(4)如果(2)和(3)内容同时满足,则可以通过xhr.responseText,获得服务器返回的内容。