20200326

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中,解析器在向执行环境中加载数据时,对函数声明和函数表达式并非是一视同仁的,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解析执行

15.当一个DOM节点被点击的时候,我们希望能够执行一个函数,应该怎么做

    box.onlick= function(){}/box.addEventListener("click",function(){},false);/<button onclick="xxx()"></button>
16.javascript的事件流模型都有什么?
    事件冒泡/事件捕捉
    ”DOM事件流“:三个阶段:事件捕捉,目标阶段,事件冒泡
17.null和undefined的区别
    null用来表示尚未存在的对象,typeOf()返回object
18.获取页面中所有的checkbox
    var xxx=document.getElementByTagName("input")----$(input).
  var  mmm = []
     for(let i = 0;i<xxx.length;i++){
    if(xxx[i].type=="checkbox"){
   mmm.push(xxx[i])
    }
    }
19.js获取几个数中的最大数最小数
   Math.max(67567,3,2,345435,65,9)///Math.min(67567,3,2,345435,65,9)
20.readyonly和disabled的区别
    readyonly只适用于输入框和文本框,disabled适用于所有表单元素
    readyonly可以选择复制会跟随表单提交,disabled不会跟随表单提交不能选择和复制
21.ajax原理
    (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,获得服务器返回的内容。
 
原文地址:https://www.cnblogs.com/youngMan-MrS/p/12574566.html