小米秋招前端第一套(链接)
选择题
1>
git bisect是利用二分法的思想,来查找哪一次代码提交引入了错误
git stash 暂存
git rebase 合并
git fetch/clone 远程端下载至本地
2>
{}的valueOf()方法的值为{}
{}的toString()方法的值为[object object]
[]的valueOf()方法的值为[]
[]的toString()方法的值为””(空串)
3>
快速排序:O(nlogn);
冒泡,直接插入,直接选择:O(n²)
4>
格式: schema://host:port/path?query#fragment(协议://主机:端口/路径名称?搜索条件#哈希标识)
schema:协议,例如http,https,ftp等
host: 域名或者ip地址
port: 端口 http默认端口80 可以省略
path: 路径,
query: 查询参数
fragment: 描点(哈希Hash)用于定位页面的某个位置
5>
HTML文档中使用的特殊字符
6>
css权重
7>
面向对象编程特点:抽象、封装、继承、多态
8>
下到上分别是7-应用层、6-表示层、5-会话层、4-传输层、3-网络层、2-数据链路层、1-物理层。
9>
在javascript中,标识符不能以数字开头,即第一个字符不能为数字,必须是字母、下划线“_”或美元符号“$”
NaN不是基本数据类型
js一共有六种数据类型其中有五种简单数据类型
包括:String、Number、Boolean、undefined、Null
10>
这道题就是考0.1+0.2为什么不等于0.3,因为计算机使用64位存储小数时,第1位为符号位,接着11位位指数位,后面52位为小数位,0.1和0.2在转换为小数时都存在无限循环现象,循环数都为”1100“。因此在最后一位会有0舍1入的现象,所以0.3-0.2!=0.1。因为两者的循环数相同,抵消后所以0.2-0.1=0.1。
11>
最新的 Chrome 浏览器包括:1 个浏览器(Browser)主进程、1 个 GPU 进程、1 个网络(NetWork)进程、多个渲染进程和多个插件进程。
12>
这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接受一个值后之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串**”10”或Boolean值。而任何不能被转换为数值的值都会导致这个函数返回true**。
13>
parseFloat()可以解析以数字开头的部分数字字符串(⾮数字部分字符串在转换过程中会被去除)。parseFloat()可以将字符串转换成浮点数;但同时,parseFloat()只接受⼀个参数,且该方***忽略前导0。
(1)字符串中的第⼀个⼩数点是有效的,⽽第⼆个⼩数点就是⽆效的了,因此它后⾯的字符串将被忽略。
(2)如果字符串包含的是⼀个可解析为整数的数(没有⼩数点,或者⼩数点后⾯都是零),parseFloat()会返回整数。
14>
checkout 切换
merge 合并(拉代码或者push代码都可使用)
rebase 合并(拉公共分支最新代码的时候使用)
push 本地分支->远程主机
15>
16>
引用类型的变量名和指针存在栈中,引用类型的值(也就是对象)存在堆中
17>
正则表达式(正则表达式 - JavaScript | MDN (mozilla.org))
18>
使用Array构造函数创建数组可以传入一个数值表示数组的length,或者直接传入要保存的元素,逗号非元素会报错
19>
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
pop() 方法用于删除数组的最后一个元素并返回删除的元素。
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
20>
目前JS数据类型总共有8种:
Number
String
Boolean
Null
Undefined
Object
Symbol
BigInt
编程题
21>
swap = (nums, i, j)=>{
let t = num[j];
num[j] = num[i];
num[i] = t;
}
sortColors = (nums)=>{
let ptr = 0;
for (let i = 0; i < nums.length; i++){
if(nums[i] === 0){
swap(nums, i, ptr);
++ptr;
}
}
for (let i = 0; i < nums.length; i++){
if (nums[i] === 1){
swap(nums, i , ptr);
++ptr;
}
}
return nums;
}
var line;
while(line = readline()){
line = line.split('');
var lines = line.map(Number)
print(JSON.stringify(sortColors(lines)));
}
22>
var romanToInt = function(s) {
const symbolValues = new Map();
symbolValues.set('I', 1);
symbolValues.set('V', 5);
symbolValues.set('X', 10);
symbolValues.set('L', 50);
symbolValues.set('C', 100);
symbolValues.set('D', 500);
symbolValues.set('M', 1000);
let ans = 0;
const n = s.length;
for (let i = 0; i < n; ++i) {
const value = symbolValues.get(s[i]);
if (i < n - 1 && value < symbolValues.get(s[i + 1])) {
ans -= value;
} else {
ans += value;
}
}
return ans;
};
var line;
while(line = readline()){
print(romanToInt(line))
}























