【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 中可以自定义指令

Vue和React都是单向数据流,即只支持父组件向子组件传参但不支持子组件修改props
  • 数据绑定:指View层和Model层之间的映射关系。
  • 数据流:指的是父子组件之间的数据流动。
  • vue是单向数据流,单向/双向数据绑定
  • react是单向数据流,单向数据绑定

4、关于HTTPS 协议,描述正确的是? HTTPS 协议同时用到了对称加密和非对称加密 ;  HTTPS 实现内容完整性的手段主要是摘要算法 ; 数字签名是私钥对内容摘要的加密

A、HTTPS 采用共享密钥加密(对称加密)和公开密钥加密(非对称加密)两者并用的混合加密机制。

B、TLS 的基本格式就是 密钥交换算法 - 签名算法 - 对称加密算法 - 摘要算法 组成的一个密码串。摘要算法保护数据的完整性,哪怕文件中改变一个标点符号,增加一个空格,生成的文件摘要也会完全不同。

C、“数字签名:结合使用公钥与散列算法”:发件人将一种散列算法应用于数据,并生成一个散列值(数据摘要)。 发件人使用私钥将散列值(数据摘要)转换为数字签名(即对摘要进行加密和签名)。 然后,发件人将数据、签名及发件人的证书发给收件人。

D、HTTPS加密请求(一次握手)过程:客户端发起握手请求,以明文传输请求信息,包含版本信息,加密-套件候选列表,压缩算法候选列表,随机数,扩展字段等信息。

5、 
0x 十六进制
0 八进制
0b 二进制
e 指数
6、
会改变数组的方法:push()    pop()    shift()    unshift()    splice()    reverse()    forEach    sort()
不会改变数组的方法:filter()    concat()    slice()map()
准确的说:map和forEach---当数组为基本类型时,是不会改变原数组,但为引用数据类型时,是可以改变的
8、cookie数据存放在客户的浏览器上,session数据放在服务器
cookie 可以被盗用,所以不安全;cookie 可以设置过期时间;cookie 可以多个服务器共享
10、以下属于CPU 内部结构的是哪些?寄存器 ; 运算器 ;控制器
cpu :寄存器 控制器 运算器 时钟
11、修改下列哪个CSS 属性会可能触发回流? border-width✔ ; background-color✖; outline-width✖; transform✖
轮廓线不会占据空间;transform 为变换,不会改变位置,只会重绘
引起回流(重排 reflow)的原因:元素几何尺寸的读写;元素位置的改变
引起重绘(repaint)的原因:元素样式的改变
注意:重绘不一定回流,但回流一定重绘
13、下列关于HTTP 协议的描述错误的是? HTTP 是传输层协议✖ 应该为应用层
HTTP为超文本协议,Hyper Text Transfer Protocol。
1.HTTP是无状态的,意味着每次链接都是重新的链接,服务器也不知道是谁发起的请求,所以需要借助cookie和session
2.HTTP是应用层的协议
3.HTTP可拓展性强,如HTTPS=HTTP + ssl
4.HTTP1.1之前都是文本协议,http2.0会将所有传输信息被分解成不同的帧,并对它们采用二进制格式的编码将其封装,并以流(stream)的形式传输
15、当你刚刚提交完成代码,发现提交信息中有错误,应该如何改正呢? git commit --amend
git commit --amend :如果提交仅存在于您的本地仓库中,尚未推送到GitHub.com,您可以使用 git commit --amend 命令修改提交消息
git stash -p:每个文件单独决定如何操作,可起到stash部分文件的作用,参考:https://www.jianshu.com/p/fe4d54cb6244
git revert HEAD -e:-e编辑commit信息,默认。参考:https://git-scm.com/docs/git-revert.html
16、下面关于flex描述错误的是?flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间就放大 ✖ 
flex可以单行布局 ;  flex可以单列布局 ; flex可以多行布局,但是多行布局时候,会遇到space-around属性值导致多行元素对不齐的情况✔
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 所有的空间都是自动分配的 左右空间是一样的
17、下面哪项不可以判断arr是空数组?arr === [] ✖
Array.isArray(arr) && arr.length === 0 ✔ ;JSON.stringify(arr) === '[]' ✔;arr instanceof Array && arr.length === 0 ✔
18、下列哪个不是浏览器支持的锚(anchor)伪类? a:disabled ✖
锚伪类:
  • 未访问状态(a:link
  • 鼠标悬停状态(a:hover
  • 活动状态(a:active
  • 已访问状态(a:visited
19、下列文件中,包含了主机名到IP 地址的映射关系的文件是?  /etc/hosts
20、在使用mkdir 命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 ? -p
mkdir [选项] 文件夹名
选项:
-m:设置权限。
-p:如果路径中不存在相关目录,自动创建文件夹。
-v:每创建一个目录就打印一次消息。
-Z:将SELinux 安全上下文 设置为所创建文件夹的默认类型。
21、
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);
}






全部评论
🐮
点赞
送花
回复
分享
发布于 2022-03-21 15:48

相关推荐

头像
不愿透露姓名的神秘牛友
04-22 21:10
投递恒生电子股份有限公司等公司7个岗位
点赞 评论 收藏
转发
点赞 2 评论
分享
牛客网
牛客企业服务