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解析过程
三次握手与四次挥手
以上是从他人的文章中收集的一些集体感觉还不错的面试题,后续还会继续的更新。