【面试题】前端面试10个前端小知识 <1>

简介: 【面试题】前端面试10个前端小知识 <1>

给大家推荐一个实用面试题库

1、前端面试题库 (面试必备)            推荐:★★★★★

地址:前端面试题库

前端面试基础知识题

1. 将数组的length设置为0,取第一个元素会返回什么?

设置 length = 0 会清空数组,所以会返回 undefined

2. e.target 和 e.currentTarget 有什么区别?

e.target:触发事件的元素

e.currentTarget:绑定事件的元素

3. 如何获取到一个实例对象的原型对象?

从构造函数获得原型对象: 构造函数.prototype从对象实例获得父级原型对象:

方法一:对象实例.__proto__     【 有兼容性问题,不建议使用】

方法二:Object.getPrototypeOf( 对象实例 )

4. 浏览器的同源策略是什么?

同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说 Web 是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。

它的核心就在于它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源。

所谓同源是指:域名、协议、端口相同。

另外,同源策略又分为以下两种:

DOM 同源策略:禁止对不同源页面 DOM 进行操作。这里主要场景是 iframe 跨域的情况,不同域名的 iframe 是限制互相访问的。

XMLHttpRequest 同源策略:禁止使用 XHR 对象向不同源的服务器地址发起 HTTP 请求。

5. document.write和innerHTML有什么区别

document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。每次写完关闭之后重新调用该函数,会导致页面被重写。 innerHTML则是DOM页面元素的一个属性,代表该元素的html内容。你可以精确到某一个具体的元素来进行更改。如果想修改document的内容,则需要修改document.documentElement.innerElementinnerHTML将内容写入某个DOM节点,不会导致页面全部重绘 innerHTML很多情况下都优于document.write,其原因在于其允许更精确的控制要刷新页面的那一个部分。

6. 使用原生js给一个按钮绑定两个onclick事件

//事件监听 绑定多个事件
var btn = document.getElementById("btn"); 
btn.addEventListener("click",hello1);
btn.addEventListener("click",hello2);
function hello1(){  
    alert("hello 1"); 
}
function hello2(){ 
    alert("hello 2"); 
}

7. 什么是类数组对象?

一个拥有 length 属性和若干索引属性的对象就可以被称为类数组对象,类数组对象和数组类似,但是不能调用数组的方法。常见的类数组对象有 arguments 和 DOM 方法的返回结果,还有一个函数也可以被看作是类数组对象,因为它含有 length 属性值,代表可接收的参数个数。

常见的类数组转换为数组的方法有这样几种:

(1)通过 call 调用数组的 slice 方法来实现转换

Array.prototype.slice.call(arrayLike);

(2)通过 call 调用数组的 splice 方法来实现转换

Array.prototype.splice.call(arrayLike, 0);

(3)通过 apply 调用数组的 concat 方法来实现转换

Array.prototype.concat.apply([], arrayLike);

(4)通过 Array.from 方法来实现转换

Array.from(arrayLike);

8. typeof NaN 的结果是什么?

NaN 指“不是一个数字”(not a number),NaN 是一个“警戒值”(sentinel value,有特殊用途的常规值),用于指出数字类型中的错误情况,即“执行数学运算没有成功,这是失败后返回的结果”。 typeof NaN; // "number" NaN 是一个特殊值,它和自身不相等,是唯一一个非自反(自反,reflexive,即 x === x 不成立)的值。而 NaN !== NaN 为 true。

9. JavaScript中的简单数据类型有哪些?

JS 中有六种简单数据类型:undefined、null、boolean、string、number、symbol

10. 说说你对 new.target 的理解

new.target属性允许你检测函数或构造方法是否是通过new运算符被调用的。 在通过new运算符被初始化的函数或构造方法中,new.target返回一个指向构造方法或函数的引用。在普通的函数调用中,new.target 的值是undefined。 我们可以使用它来检测,一个函数是否是作为构造函数通过new被调用的。

 

给大家推荐一个实用面试题库

1、前端面试题库 (面试必备)            推荐:★★★★★

地址:前端面试题库

相关文章
|
2天前
|
前端开发 JavaScript 网络协议
前端最常见的JS面试题大全
【4月更文挑战第3天】前端最常见的JS面试题大全
54 5
|
2天前
|
SQL 存储 Oracle
Oracle 面试题及答案整理,最新面试题
Oracle 面试题及答案整理,最新面试题
91 0
|
23小时前
|
前端开发 JavaScript 开发工具
4(1),阿里面试官,前端开发面试题目
4(1),阿里面试官,前端开发面试题目
|
1天前
|
消息中间件 缓存 架构师
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
|
2天前
|
存储 缓存 安全
兄弟面试了百度,面试题分享一波
兄弟面试了百度,面试题分享一波
44 0
|
2天前
|
存储 缓存 安全
java锁优化高频面试题(真实面试经历总结)
java锁优化高频面试题(真实面试经历总结)
|
2天前
|
消息中间件 Java 关系型数据库
Java经常被问得面试题最常见的200+面试题
Java经常被问得面试题最常见的200+面试题
40 1
|
2天前
|
存储 缓存 监控
StarRocks面试题及答案整理,最新面试题
StarRocks面试题及答案整理,最新面试题
117 0
|
2天前
|
SQL 存储 监控
Navicat 面试题及答案整理,最新面试题
Navicat 面试题及答案整理,最新面试题
69 0
|
2天前
|
SQL 监控 大数据
DataGrip 面试题及答案整理,最新面试题
DataGrip 面试题及答案整理,最新面试题
77 0