上来三道编程题
1、
题目比较简单,但是要考虑到示例中的两种情况。
实例1:没有?和后面的参数
示例2:city 没有参数值
function urlToObj(url){
var obj = {}
var newUrl = url.split('?')
//考虑没有?后面参数的情况
if(newUrl[1]) {
var arr = newUrl[1].split('#')[0].split('&')
for (var i=0; i<arr.length; i++){
var item = arr[i].split('=')
obj[item[0]] = item[1] || '' //考虑没有参数值的情况
}
}
return obj
}
问:里面的 obj 可以用 const 定义吗
可以,const 声明的常量不能改变的是该常量的内存地址,当用 const 声明一个基本类型时,基本类型值就保存在它指向的那个地址中,所以无法改变。
当用 const 声明一个引用类型时,引用类型的内存地址是一个指针,该指针指向的地址才是它的数据,const 只能保证这个引用类型的指针不改变,而这个指针指向地址的数据可以改变。(对象的某个属性 obj.name、数组的某个元素 arr[0])
2、
图中方法:将数字转为字符串,再转为数组去反转,再拼接成字符串,跟原来的字符串比较。
不转成字符串的方法:除法取余数把每一位数字取出来,组成数组
function isPalindrome(num) {
let i = 0
const arr = []
num = Math.abs(num)
while(num) {
arr[i++] = num%10
num = parseInt(num/10)
}
return arr.join('') === arr.reverse().join('')
}
3、
思路:
用两个点 a、b,从左上角的 1 开始,
a 一直往右走,走到最右然后向下走;
b 一直往下走,走到最下面然后往右走;
a、b 移动过程中总会形成一条对角线,定义一个函数实现打印 a、b 对角线上的数字。
打印对角线的函数:
有两个方向,斜向上或者斜向下,用一个 flag 来标记方向。
//打印对角线上的数字
function print(arr, aR, aC, bR, bC, flag) {
let res = []
// falg 为 true 时,从b点斜向上打印
if (flag) {
while (bR >= aR) {
res.push(arr[bR--][bC++])
}
} else {
// falg 为 false 时,从a点斜向下打印
while (aR <= bR) {
res.push(arr[aR++][aC--])
}
}
return res
}
// 之字形输出矩阵
function zhi(matrix) {
let aR = 0
let aC = 0
let bR = 0
let bC = 0
const endR = matrix[0][0] - 1
const endC = matrix[0][1] - 1
matrix = matrix.slice(1, endR + 2)
let flag = true
let res = []
while (aR <= endR && bC <= endC) {
res = res.concat(print(matrix, aR, aC, bR, bC, flag))
//打印完一个对角线后,就把flag取反,并移动a、b点
flag = !flag
aC == endC ? aR++ : aC++
bR == endR ? bC++ : bR++
}
return res
}
提问
介绍项目
程序上线了吗?
登陆模块怎么设计的,有考虑一些安全的问题吗?
懒登陆,用户密码有加密操作吗?
登陆之后怎么维护用户的登陆块?保存到哪里?
登陆time?应该是在用户名密码登陆之后,在后台校验一下用户名密码,再给前端返回一个类似token或者 线下id 之类的,前台以后再通信的时候就用这个 线下id 发送给后台。
保存登录的两种方法:session+cookie、token
从在浏览器输入一个链接到页面被渲染出来中间的过程是
每次请求时都会状态连接吗? http 请求头有一个 connection: keep-alive / close,表示是否持续连接,浏览器每次请求是复用已建立好的请求,还是重新建立一个新的请求。
浏览器渲染页面的过程
重排(计算节点信息)和重绘(根据计算好的信息绘制页面)
https 传输验证的过程,是对称加密还是非对称加密?
为什么用两种结合的混合加密?
为什么浏览器会有同源策略?
虚拟DOM
浏览器缓存 localStorage、sessionStorage 的特点和区别
有上过计算机安全、数据结构的课吗
知道什么排序算法?
堆排序是稳定的排序算法吗?
稳定和不稳定?
反问技术栈:小程序、vue