【2021】小米秋招前端方向第一场笔试——笔试笔记
2、在Linux 系统中,下列哪些操作可以把一个普通用户变为管理员? su ; 修改/etc/passwd 文件
①在系统中超级用户可以下放普通用户不能执行的操作,给普通用户下放权力配置文件:/etc/sudoers
②下放权力的方法
在超级用户中执行visudo命令,进入编辑/etc/sudoers,并跳转到一百行左右。
切换到普通用户后执行以下命令:
5,若欲切换的身份与执行者的身份相同,也不需要输入密码
执行以下命令:
用户(username) 主机名(得到的用户身份)=(获得到的用户身份:root) 命令
③执行下放权限的命令
student localhost=(root) /usr/sbin/useradd(下放给student用户建立新用户的权力)
student localhost=(root) NOPASSWD: /usr/sbin/useradd(下放给student用户建立新用户的权力,免密)
sudo的工作过程如下:
1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限
2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认
3,若密码输入成功,则开始执行sudo后续的命令
4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)
3、下面对于Vue 与 React 的描述正确的是 ? Vue 和 React 不需要配合 NPM 也能使用 ; 在Vue 中可以自定义指令
- 数据绑定:指View层和Model层之间的映射关系。
- 数据流:指的是父子组件之间的数据流动。
- vue是单向数据流,单向/双向数据绑定
- react是单向数据流,单向数据绑定
4、关于HTTPS 协议,描述正确的是? HTTPS 协议同时用到了对称加密和非对称加密 ; HTTPS 实现内容完整性的手段主要是摘要算法 ; 数字签名是私钥对内容摘要的加密
A、HTTPS 采用共享密钥加密(对称加密)和公开密钥加密(非对称加密)两者并用的混合加密机制。
B、TLS 的基本格式就是 密钥交换算法 - 签名算法 - 对称加密算法 - 摘要算法 组成的一个密码串。摘要算法保护数据的完整性,哪怕文件中改变一个标点符号,增加一个空格,生成的文件摘要也会完全不同。
C、“数字签名:结合使用公钥与散列算法”:发件人将一种散列算法应用于数据,并生成一个散列值(数据摘要)。 发件人使用私钥将散列值(数据摘要)转换为数字签名(即对摘要进行加密和签名)。 然后,发件人将数据、签名及发件人的证书发给收件人。
D、HTTPS加密请求(一次握手)过程:客户端发起握手请求,以明文传输请求信息,包含版本信息,加密-套件候选列表,压缩算法候选列表,随机数,扩展字段等信息。
引起回流(重排 reflow)的原因:元素几何尺寸的读写;元素位置的改变引起重绘(repaint)的原因:元素样式的改变注意:重绘不一定回流,但回流一定重绘
1.HTTP是无状态的,意味着每次链接都是重新的链接,服务器也不知道是谁发起的请求,所以需要借助cookie和session2.HTTP是应用层的协议3.HTTP可拓展性强,如HTTPS=HTTP + ssl4.HTTP1.1之前都是文本协议,http2.0会将所有传输信息被分解成不同的帧,并对它们采用二进制格式的编码将其封装,并以流(stream)的形式传输
1、flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。2、flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。负值对该属性无效3、flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。4、space-around 所有的空间都是自动分配的 左右空间是一样的
- 未访问状态(a:link)
- 鼠标悬停状态(a:hover)
- 活动状态(a:active)
- 已访问状态(a:visited)
mkdir [选项] 文件夹名选项:-m:设置权限。-p:如果路径中不存在相关目录,自动创建文件夹。-v:每创建一个目录就打印一次消息。-Z:将SELinux 安全上下文 设置为所创建文件夹的默认类型。
let n = parseInt(readline().trim()); let roomArr = readline().trim().split(" "); let mod = 1000000007 let dp = new Array(n+2); dp[1] = 0 for(let i = 2;i<=n+1;i++){ dp[i]=2*dp[i-1]+2-dp[roomArr[i-2]] if(dp[i]<0){ dp[i] += mod; }else if (dp[i] >= mod){ dp[i] %= mod; } } console.log(dp[n+1])22、
先将小数用10的n次方转化成整数,乘完的结果在除以之前乘了多少个10 function multiply(a, b) { a = a.toString(); b = b.toString(); var aLen = a.substring(a.indexOf(".")+1).length; var bLen = a.substring(a.indexOf(".")+1).length; return (a * Math.pow(10,aLen)) * (b * Math.pow(10,bLen)) / Math.pow(10,aLen+bLen); }
//根据两个书中精度较高的一个来确定,先将其转换成字符串,然后根据小数点的位置确定小数位数, //字符串长度减去‘.'的位置后还要再减去1得到正确的小数位数,两个取其大,然后用toFixed()函数确定 //结果的小数位数 function multiply(a, b) { //求两个数中精度大的一个 var stra=a.toString(); var strb=b.toString(); var len=Math.max(stra.length-stra.indexOf('.')-1,strb.length-strb.indexOf('.')-1); // return parseFloat(a*b).toFixed(len); }
计算两小数的小数点位数,然后相加得到保留的小数点位数,用tofixed函数即可 function multiply(a, b) { var re = /\./; var aDec = a.toString().split('.')[1] || ''; var bDec = b.toString().split('.')[1] || ''; var fix = aDec.length + bDec.length; return (a * b).toFixed(fix); }