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操作

 

posted @ 2019-10-13 19:10  纯白の约定  阅读(2204)  评论(0编辑  收藏  举报