关于javascript:高频前端js面试题一

37次阅读

共计 1424 个字符,预计需要花费 4 分钟才能阅读完成。

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 标签。

<div id="test"> 这是一段
    <span> 代码 </span>
</div>
console.log(document.getElementById('test').innerHtml) // 这是一段代码
console.log(document.getElementById('test').innerText) // 这是一段 <span> 代码 </span>
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<this.length;i++){ // 遍历以后数组
 if(arr.indexOf(this[i])===-1){// 如果等于 -1,那么也是就是新数组中没有一项和以后数组一样
   arr.push(this[i])
}
}
return arr;
}
// 调用:ary.test()

办法二:es6

[...new Set([1,1,2,2,3,3])];//[1,2,3]
6. 进行性能优化

1,图片懒加载;

2,浏览器缓存;

3,DNS 优化:

  DNS 查问:
    <meta rel='dns-prefetch' href='//cdn.bootcss.com'/>
    <link rel='dns-prefetch' href='//s.happymmall.com'>
    <link rel='dns-prefetch' href='//img.happymmall.com'>
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 变量之前应用,会报错

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

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

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

正文完
 0