zoukankan      html  css  js  c++  java
  • 2019前端面试题整理(经典20题)

    1. javascript的typeof返回哪些数据类型

    string,boolean,number,undefined,function,object

    2. split()和 join() 的区别

    前者是将字符串切割成数组的形式,后者是将数组转换成字符串

    3.call和apply的区别

    Object.call(this,obj1,obj2,obj3)
    Object.apply(this,arguments)

    4. 如何阻止事件冒泡

    ie:阻止冒泡ev.cancelBubble = true;非IE ev.stopPropagation();

    5.添加 删除 替换 插入到某个接点的方法

    1)创建新节点
    createElement() //创建一个具体的元素
    createTextNode() //创建一个文本节点
    
    2)添加、移除、替换、插入
    appendChild() //添加
    removeChild() //移除
    replaceChild() //替换
    insertBefore() //插入
    
    3)查找
    getElementsByTagName() //通过标签名称
    getElementsByName() //通过元素的Name属性的值
    getElementById() //通过元素Id,唯一性

    6.document load 和document ready的区别

    document.onload 是在结构和样式,外部js以及图片加载完才执行js
    document.ready是dom树创建完成就执行的方法,原生种没有这个方法,jquery中有 $().ready(function)

    7.函数声明与函数表达式的区别?

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

    8.看下面代码,给出输出结果

    for(var i = 1; i <= 3; i++){  //建议使用let 可正常输出i的值
      setTimeout(function(){
          console.log(i);   
      },0); 
    };
    答案:4 4 4。
    原因:Javascript事件处理器在线程空闲之前不会运行。

    9.看下列代码,输出什么?解释原因

    var a = null;
    alert(typeof a);
    答案:object
    解释:null是一个只有一个值的数据类型,这个值就是null。表示一个空指针对象,所以用typeof检测会返回”object”。

    10.null和undefined的区别?

    null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。
    
    当声明的变量还未被初始化时,变量的默认值为undefined。 null用来表示尚未存在的对象
    
    undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
    
    (1)变量被声明了,但没有赋值时,就等于undefined。
    
    (2)调用函数时,应该提供的参数没有提供,该参数等于undefined。
    
    (3)对象没有赋值的属性,该属性的值为undefined。
    
    (4)函数没有返回值时,默认返回undefined。
    
    null表示"没有对象",即该处不应该有值。典型用法是:
    
    (1) 作为函数的参数,表示该函数的参数不是对象。
    
    (2) 作为对象原型链的终点。

    11.js延迟加载的方式有哪些?

    defer和async、动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack)、按需异步载入js

    12.希望获取到页面中所有的checkbox怎么做?(不使用第三方框架)

    var inputs = document.getElementsByTagName("input");//获取所有的input标签对象
    var checkboxArray = [];//初始化空数组,用来存放checkbox对象。
    for(var i=0;i<inputs.length;i++){
      var obj = inputs[i];
      if(obj.type=='checkbox'){
         checkboxArray.push(obj);
      }
    }

    13.写一个function,清除字符串前后的空格。(兼容所有浏览器)

    String.prototype.trim= function(){
    
      return this.replace(/^s+/,"").replace(/s+$/,"");
    
    }

    14.Cookie在客户机上是如何存储的?

    Cookies就是服务器暂存放在你的电脑里的文本文件,好让服务器用来辨认你的计算机。
    当你在浏览网站的时候,Web服务器会先送一部分资料放在你的计算机上,Cookies 会帮你在网站上所打的文字或是一些选择都记录下来。
    当下次你再访问同一个网站,Web服务器会先看看有没有它上次留下的Cookies资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。

    15.form中的input可以设置为readonly和disable,请问2者有什么区别?

    readonly不可编辑,但可以选择和复制;值可以传递到后台
    disabled不能编辑,不能复制,不能选择;值不可以传递到后台

    16.程序中捕获异常的方法?

    try{
     
    }catch(e){
     
    }finally{
     
    }

    17.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,获得服务器返回的内容。

    18.降维数组

    var arr=[[1,2],[3,4]];
    function Jw(obj){
         return Array.prototype.concat.apply([],obj);
    }
    Jw(arr);

    19.为什么利用多个域名来存储网站资源会更有效

    确保用户在不同地区能用最快的速度打开网站,其中某个域名崩溃用户也能通过其他郁闷访问网站

    20.请说出减低页面加载时间的方法

    1、压缩css、js文件
    2、合并js、css文件,减少http请求
    3、外部js、css文件放在最底下
    4、减少dom操作,尽可能用变量替代不必要的dom操作
  • 相关阅读:
    青蛙学Linux—软件安装
    青蛙学Linux—文本编辑器Vi/Vim
    linux下安装java
    anaconda 换源
    origin从图中获得数据
    endnote X7参考文献缩进设置
    endnote X7 加入文献
    endnote X7使用方法
    linux下安装openmpi
    origin添加error bar
  • 原文地址:https://www.cnblogs.com/yuwenxiang/p/11667875.html
Copyright © 2011-2022 走看看