js基础
yang525534167
前端小白,三年工作,一年经验
展开
-
WEB前端基础面试题(1~6)
1.http和https,他们有什么区别 答:http:超文本传输协议,数据明文传输,https基于http的协议,数据加密传输,相较于http协议更安全,但是需要花钱购买证书后方可使用 2.tcp三次握手,一句话概括 答:客户端和服务器均需要确认状态是可收发状态 3.TCP和UDP的区别 答: 1.TCP连接面向连接,UDP面向数据,即无数据交互时,不用建立连接 2.TCP仅一对一,UDP可一对多 3.TCP更为可靠 4.WebSocket的实现和应用 答:WebSocket和XMLHtttpReques原创 2021-03-19 09:52:20 · 224 阅读 · 1 评论 -
手写深拷贝代码
// 手写深拷贝 function deepCopy(obj){ // 判断当前传入的参数 为空 或 不是引用类型数据 直接返回 不用继续执行 if(obj == null || typeof obj != Object) { return obj } let result; // 当前传入的是数组 if(obj instanceof Array) result = [] // 当前传入的是对象 if(obj instanceof Object) result = {} result原创 2020-08-19 18:04:38 · 615 阅读 · 0 评论 -
如何手写bind函数
Function.prototype.bind = function(){ // 将传进来的参数类数组转化为数组,这样就可以用到Array中的方法了 const args = Array.prototype.slice.call(arguments) // 获取数组第一项,即传入的this,并剔除 // t保存的是第一项this的值 // args是剔除第一项之后的所有参数 const t= args.shift() // 这里的self(this)指的是实例化对象本身 // 根据函数原型链原创 2020-08-19 16:08:21 · 161 阅读 · 0 评论 -
前端中this指向问题
this的取值是在函数执行时决定的,而不是在函数定义时!!! // 第一种 : 作为普通函数 const fn(){ console.log(this) } fn() // 输出的是window // 第二种 : 通过call apply bind const fn(){ console.log(this) } fn.call({x : 100}) // .apply({x : 100}) fn() // 输出的是{x : 100} // 使用.bind会返回一个新的方法 const fn1 = fn原创 2020-08-19 11:16:12 · 507 阅读 · 0 评论