9.15京东前端
下午四点,大概40min,
- 数组哪些常用方法,其中数组的map,一般有三个参数(item,index,arr),map是对数组进行什么操作?map的底层如何实现的,传入的回调函数如何处理的?(瞎说,遍历,用闭包什么,面试官说可以好好了解一下,比较有趣???)
map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
var new_array = arr.map(function callback(currentValue[, index[, selfArray]]) {
// Return element for new_array
}[, thisArg])
// Return element for new_array
}[, thisArg])
步骤思路
1、 在array原型上添加自己的map方法
2、 传入callback回调函数和thisArg参数
3、 根据调用的数组长度创建新数组newArry
4、 循环原来数组并使用hasOwnProperty方法当前元素是否为空值
5、 是的话新数组就赋值callback函数返回的值
6、 返回新数组
1、 在array原型上添加自己的map方法
2、 传入callback回调函数和thisArg参数
3、 根据调用的数组长度创建新数组newArry
4、 循环原来数组并使用hasOwnProperty方法当前元素是否为空值
5、 是的话新数组就赋值callback函数返回的值
6、 返回新数组
//数组的map的底层操作 //1、在原型上添加一个方法 /** * 2、传入一个函数和this * 3、call方法传入的参数和map方法的参数一样 * * */ //js里面数组map方法的实现源码 if(!Array.prototype.map){ Array.prototype.map = function(callback){ var T,A,k; if(this == null){ throw new TypeError('this is null&nbs***bsp;not defined'); } var O = Object(this); var len = O.length >>> 0; if(typeof callback !== 'function'){ throw new TypeError(callback + 'is not a function'); } if(arguments.length > 1){ T = arguments[1]; } A = new Array(len); k = 0; while( k < len){ var kValue,mappedValue; if( k in O){ mappedValue = callback.call(T,kValue,k,0); A[k] = mappedValue; } k++; } return A; } }
- cookie有哪些字段,除了key、value、time等,(domain:可以访问此cookie的域名,path,可以访问的cookie页面路径,expiress/Max-Age此字段为cookie的超时时间默认和session一样,size此cookie的大小,字段http,用来设置http-only属性,为true表示只有在http请求头中会带有此cookie的信息,而不能通过document.cookie来访问,secure:设置是否只能通过https来传递,) 新增,SameSite属性,Strict,Lax,None
- 提到http-only后,提到一些xss,csrf后,解决这些安全问题的方法,
- 现在使用的框架vue、react对这些安全问题进行处理了吗?例如v-html是否进行处理?对输入进的代码如何处理?(没回答上来)
React 如何防止 XSS 攻击
无论使用哪种攻击方式,其本质就是将恶意代码注入到应用中,浏览器去默认执行。React 官方中提到了 React DOM 在渲染所有输入内容之前,默认会进行转义。它可以确保在你的应用中,永远不会注入那些并非自己明确编写的内容。所有的内容在渲染之前都被转换成了字符串,因此恶意代码无法成功注入,从而有效地防止了 XSS 攻击。我们具体看下:
- 三列布局的实现方法,回答了双飞翼、flex其他的没咋想起来
- 数组去重的多种方法,复杂度
- 数组拍平的多种方法
- flex布局,position、输入url,dns缓,tcp的三次连接,get和post,其中get请求参数受限,是浏览器还是get请求的限制,dns缓存在哪里读取,作用域链、闭包,判断类型等等常见八股