关于javascript:js面试题收集

12次阅读

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

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

object,string,undefined,number,function,boolean
根本数据类型:
string,number,boolean,undefined,null

2. 判断是否为数组的办法

console.log(arr instanceof Array)
console.log(Array.isArray(arr))

3.== 和 === 区别

== 会做隐式转换 判断值是否相等
=== 不会做隐式转换 判断值是否相等并判断类型是否统一
总结 == 隐式类型转换的规定:
1.null 和 undefined 只和本人或对方相等 不等于其余任何值
2.NaN 不等于任何值包含本身
3. 比拟单方都是 string 或 number,就会将 string 转换为 number
4. 与 boolean 做比拟 boolean 会转为 number 再进行判断
5. 比拟一方是 object 且另一方为 string、number,就会把 object 转为原始类型(object.valueOf().toString()) 再进行判断



原生 JS 之苦

4.javascript 的同源策略(跨域问题)

跨域是什么:实际上就是一个网站不能执行其余网站上的网址,是由浏览器同源策略造成的,是浏览器对 js 施加的平安限度
所谓同源,实际上是指域名,协定,端口都雷同
也就是说当,域名或者协定,或者端口不同的时候,就是跨域
解决办法:
jsonp 跨域原理剖析
跨域资源共享 CORS 详解
Nginx 正向代理与反向代理

5.call apply bind

「干货」细说 call、apply 以及 bind 的区别和用法
日积跬步,apply/call/bind 自我实现

6.js 垃圾回收形式

标记革除:这是 js 最罕用的垃圾回收办法,当一个变量进入执行环境时,例如函数中申明一个变量,将其标记为进入环境,当变量来到环境时,(函数执行完结),标记为来到环境
援用计数: 跟踪记录每个值被援用的次数,申明一个变量,并将援用赋值给这个变量,则这个值的援用次数 +1,当值的援用次数为 0 的时候,就回收

7. 闭包的概念及原理

它由两局部组成。执行上下文 (代号 A),以及在该执行上下文中创立的函数(代号 B)。
当 B 执行时,如果拜访了 A 中变量对象中的值,那么闭包就会产生。
前端根底进阶(四):具体图解作用域链与闭包

8.this 的指向

this 的指向,是在函数被调用的时候确定的。
前端根底进阶(五):全方位解读 this

9.new 操作符到底干了什么

1. 创立一个新对象

var o = {}

2. 将新对象的原型链指向构造函数的原型

o.__proto__ = Fn.prototype

3. 将构造函数的 this 指向新对象并执行构造函数的代码,为这个新对象增加属性

Fn.apply(o, Array.prototype.slice.call(arguments, 1));

4. 返会对象 o
前端根底进阶(九):详解面向对象、构造函数、原型与原型链

10.GET 与 POST 办法的区别

get 次要是从服务器获取资源,post 次要是像服务器发送数据
get 传输数据通过 url 申请,利用 k = v 的模式放在 url 前面,用? 连贯,多个用 & 连贯而 post 是寄存在,ajax 中的 data 中的,get 传输的过程使用户可见 的,而 post 是对用户不可见的。
get 传输的数据量小,因为受 url 的长度限度,然而效率高,post 能上传的数据量大
post 较 get 更平安一些
get 形式传递的中文字符可能会乱码,post 反对规范字符集,能够正确传递中文字符

11.http 状态码

100-199:胜利接管申请,但须要进行下一步申请
200-299:胜利接管申请,并实现整个处理过程
300-399:为实现全副申请,客户需近一步细化需要
400-499:客户端申请有谬误,包含语法错误或不能失常执行
500-599:服务器端呈现谬误

12. 在浏览器中输出 URL 到整个页面显示在用户背后时这个过程中到底产生了什么

DNS 解析
TCP 连贯
发送 HTTP 申请
服务器解决申请并返回 HTTP 报文
浏览器解析渲染页面
连贯完结
DNS 解析过程
三次握手与四次挥手

以上是从他人的文章中收集的一些集体感觉还不错的面试题,后续还会继续的更新。

正文完
 0