• 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,获得服务器返回的内容。
     
  • 相关阅读:
    系统设计5:Google三剑客
    lintcode亚麻九题
    设计模式17:单例模式
    设计模式16:迭代器模式
    设计模式15:组合模式
    476. Number Complement
    561. Array Partition I
    627. Swap Salary
    617. Merge Two Binary Trees
    728. Self Dividing Numbers
  • 原文地址:https://www.cnblogs.com/youngMan-MrS/p/12574566.html
Copyright © 2020-2023  润新知