高频前端js面试题(一)

1.介绍 js 的基本数据类型?
Undefined、 Null 、 Boolean 、 Number 、 String
2.怎样判断一个元素是否为一个数组?
方法一:isArray
var arr = [1,2,3];
console.log(Array.isArray(arr));
方法二:instanceof array
var a = new Array();
console.log(a instanceof Array) //true
3.innerHtml与innerText的区别?

1.innerHTML指的是从对象的起始位置到终止位置的全部内容,包括Html标签。

2.innerText 指的是从起始位置到终止位置的内容,但它去除Html标签。

这是一段 代码
console.log(document.getElementById('test').innerHtml) //这是一段代码 console.log(document.getElementById('test').innerText) //这是一段代码
4.get与post区别?

1.get 请求通过url传值,post请求通过body传值

2.post请求比get更安全

5.js去除重复值?
方法一: es5
Array.prototype.test=function(){
 var arr=[];//创建新数组
 for(var i=0;i
方法二:es6
[...new Set([1,1,2,2,3,3])];//[1,2,3]
6.进行性能优化

1,图片懒加载;

2,浏览器缓存;

3,DNS优化:

  DNS查询:
    
    
    
7.跨域及解决跨域的方法?

> 跨域:浏览器对js同源策略的限制。前端调用后台数据域名不一样就造成了跨越。

> 同源策略:请求的url必须与服务器上面的url处于同域上。即域名,端口号,协议一样

>  解决跨域:
>  - 1.用基于jquery的jsonp方法通过get请求来解决,不能用post请求
>   -2.用基于script标签实现跨域
8.var,const,let三者区别

1.从作用域的角度:

  • es5只有全局作用域和函数作用域,没有块级作用域
  • const与let都是块级作用域,var是全局作用域

2.从声明变量角度:

  • const只能声明赋值一次,第二次会报错;
  • let声明的变量只在let命令所在的代码块内有效,let可以重复赋值,但是如果在声明let变量之前使用,会报错

文中的代码可能不一定是最优代码,要是你有更好的代码欢迎评论。喜欢的可以给我点赞鼓励哦!
码字不易,屏幕前的大帅比,更多干货文章请关注!!!

高频前端js面试题(一)_第1张图片

备注:
★部分素材来自网络,版权归原创者,如有侵权请联系删除

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

你可能感兴趣的:(javascript)