小米笔试

正则

\b 单词边界

\B非单词边界

/(^|)b/:以b开头  或者 直接是 b
/[\b]*b/:0个或多个字符边界之后是 b
i不区分大小写模式 m多行模式 g全局模式

HTTP状态码

2** 成功操作被接受

3** 重定向

4** 客户端错误

5** 服务器错误

200 请求成功

301 资源永久转移到其他URL

302 资源临时移动

304 未修改

401请求要求用户的身份认证

403 禁止访问

404 请求资源不存在

500 内部服务器错误

localStorage 和 cookie

cookie如果不设置过期时间,生命周期随着浏览器的关闭而结束,简称会话cookie。Cookie是服务器发给客户端的特殊信息,cookie是以文本的方式保存在客户端,每次请求时都带上它,cookie可以在跨域请求中被携带在请求头中,cookie:单个cookie保存的数据不能超过4kb,其实这是由服务端限制的。

localStorage除非被清除,否则永久保存,localStorage只在客户端存储,不参与服务器通信

sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除

cookies和storage都存在跨域限制;

排序复杂度

冒泡 选择 插入 O(n*n)

归并 快速 希尔 nlogn

TCP/IP、UDP、HTTP

UDP 是面向无连接的,不可靠的数据报服务
TCP 是面向连接的,可靠的字节流服务
HTTP 是应用层协议
tcp:需要完成3次握手,断开时,需要四次握手
应用层(HTTP、FTP、SMTP、telnet、DNS、tftp)
传输层(TCP、UDP)
网际层(IP)
网络接口层(网络接口协议)

Git使用

git init 创建本地新仓库
git clone username@host/respository 克隆仓库到本地
工作流是维护三棵树
第一个就是你的文件夹
第二个就是 add提交后的缓存区
第三个就是本地的库head ,commit提交到这里
git add filename 添加到缓冲区
git commit -m '注释'  提交到head
git push  origin master 推送改动到远端仓库
如果没有克隆仓库
git push  origin master <server> server为服务器地址

分支
git checkout -b feature 创建一个叫做“feature_x”的分支,并切换过去 
git checkout master 切换回主分支
git branch -d feature 删除分支
git push origin <branch>

更新与合并
git pull 更新你的本地仓库至最新改动
git merge <branch>  合并其他分支到你的当前分支
git checkout -- <filename> 此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件
git fetch origin
git reset --hard origin/master丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:
在git操作中有时候我们会进行错误的commit,这个时候想要撤销这次提交可以使用git reset命令
git reset --soft HEAD^  只回退commit,如果你想再次提交直接git commit即可

 git revert HEAD        撤销前一次 commit,它会产生一个新的提交,虽然代码回退了,但是版本依然是向前的
 git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。 
 
other
git branch    查看本地分支
git branch -r    查看远程分支
git branch –a    查看当前所有分支(包括本地分支和远程分支)

其他

div+p与div 相邻的第一个p标签

div~p将后面所有的p标签选中

字符串+数字或者数字+字符串,都是字符串的拼接

打包工具:webpack,gulp,grunt,rollup

cron(crond)是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

防止CSRF攻击时,我们可以采用token机制进行页面来源是否合法的判定,这个token不能采用非对称加密形式生成;
substr(2,2), 第一个参数代表从哪开始截,第二个参数代表截取几个字符
substring(2,3) 截取范围形同数学的区间[2,3)
grunt gulp是任务流工具
webpack是模块打包工具

http://hui.m.fenqile.com:8080/index.html这个链接中,二级域名是fenqile.com三级域名是m.fenqule.com

IPV4:32位

IPV6:128位

  1. e.target获取的是触发该事件的元素,也就是点击事件绑定了ul,但是点了ul里面的li,那么target指的是li

  2. e.currentTarget获取的是绑定事件的元素,虽然点击的是ul的子元素li,但是currentTarget获取的是ul

  3. addEventListener有三个参数,第三个参数默认是false,也就是默认事件句柄在冒泡阶段执行

  4. 因此第三个参数为true就是让事件句柄在捕获阶段执行

    常见浏览器内核

    Trident
    Webkit
    Gecko
    

    MAX_VALUE 属性值接近于 1.79E+308。大于 MAX_VALUE 的值代表 “Infinity”。

    MIN_VALUE 的值约为 5e-324。小于 MIN_VALUE (“underflow values”) 的值将会转换为 0。(注意,MIN_VALUE也是大于0的!!!)

    Integer.MIN_VALUE<0 也就是最大数的负值

span
display: flex;
display: table;
display:absolute或fixed  等可以设置宽高

Tree Shaking 可以剔除 Javascript 中没有被使用的代码

cache-control

1、no-cache资源服务器看看一下这个资源过期没有,如果没有就会告知中间服务器,可以使用缓存资源。否则资源服务器就会直接返回新的资源。

2、no-store告知服务器或者客户端以及中间服务器,我请求或者响应的内容里面有机密信息,这些响应的内容是永远不会得到响应的

3、max-age这个字段表达是最大缓存时长

4、pulic,这个字段和private是相对的,Cache-Control: public时,则表明所有的用户在通过缓存服务器的时候,都可以缓存这个资源。

5 private这个字段和pulic是相对的,Cache-Control: private时,则表明只有某个在通过缓存服务器的时候,得到缓存资源

XSS

通过对网页注入可执行代码且成功地被浏览器 执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等

第一、XSS反射型攻击,恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。

第二、XSS存储型攻击,恶意代码被保存到目标网站的服务器中,这种攻击具有较强的稳定性和持久性,比较常见场景是在博客,论坛等社交网站上.

解决办法

一种方法是在表单提交或者url参数传递前,对需要的参数进行过滤

过滤用户输入的 检查用户输入的内容中是否有非法内容。如<>(尖括号)、”(引号)、 ‘(单引号)、%(百分比符号)、;(分号)、()(括号)、&(& 符号)、+(加号)等。、严格控制输出

CSRF

CSRF跨站点请求伪造(Cross—Site Request Forgery), 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的

防御

验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。

列出至少10个国内外对应网站或者APP

微博 Twitter都是类似于博客

google搜索 百度搜索 搜索引擎

淘宝 亚马逊购物 购物软件

支付宝 paypal 支付软件

抖音 tik tok 短视频

wps office 办公软件

国内-QQ,国外- facebook

国内-嘀嘀打车,国外-Uber

知乎vsQuera

国内-携程 ,国外-priceline

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值