}
第一个版本的HTML代码:
calculator| mc | m+ | m- | mr |
| AC | ⬅ | +/- | / |
| 7 | 8 | 9 | X |
| 4 | 5 | 6 | - |
| 1 | 2 | 3 | + |
| 0 | . | = | |
对应JS文件:
let bSymbol = "";
let aSymbol = "";
let symbol = "";
let result = 0;
let showScreen = document.getElementById("showScreen");
let AC = document.getElementById("AC");
function clickNum(num) {
//点击数字时调用
AC.innerHTML = "C";
if (""==symbol) {
bSymbol = bSymbol + num;
} else {
aSymbol = aSymbol + num;
}
//显示屏幕信息
showScreen.value = bSymbol + symbol +aSymbol;
}
function clickSymbol(sym) {
//点击符号调用
if ("."==sym) {
if (""==symbol) {
//查找字符串是否包含子字符串 "."
let index = bSymbol.search("\.");
if (index==-1) {
//可以加小数点
if (bSymbol.length==0) {
bSymbol = "0.";
} else {
bSymbol = bSymbol + ".";
}
}
} else {
//查找字符串是否包含子字符串 "."
let index = aSymbol.search("\.");
if (index==-1) {
//可以加小数点
if (aSymbol.length==0) {
aSymbol = "0.";
} else {
aSymbol = aSymbol + ".";
}
}
}
} else if (symbol.length==0){
symbol = sym;
}
//显示屏幕信息
showScreen.value = bSymbol + symbol +aSymbol;
}
function equals() {
//点击等号调用
let x = "";
let y = "";
if (bSymbol.search("\.")!=-1 || aSymbol.search("\.")!=-1) {
x = parseFloat(bSymbol);
y = parseFloat(aSymbol);
} else {
x = parseInt(bSymbol);
y = parseInt(aSymbol);
}
if (symbol=="+") {
result = x + y;
} else if (symbol=="-") {
result = x - y;
} else if (symbol=="X") {
result = x * y;
} else if (symbol=="/") {
result = x / y;
}
//小数点保留6位
result = result + "";
let index = result.search("\.");
if (index!=-1) {
let rLength = result.length-index-1;
if (rLength>6) {
//四舍五入
let lp = result.charAt(index+7);
if (lp>=5) {
//截取
let blp = parseInt(result.charAt(index+6))+1;
result = result.substring(0,index+6)+blp;
} else {
result = result.substring(0,index+7);
}
}
}
bSymbol = result+"";
//清空变量
aSymbol = "";
symbol = "";
//显示屏幕信息
showScreen.value = result;
}
function empty() {
//点击AC进行清屏
AC.innerHTML = "AC";
bSymbol = "";
aSymbol = "";
symbol = "";
ES6
-
列举常用的ES6特性:
-
箭头函数需要注意哪些地方?
-
let、const、var
-
拓展:var方式定义的变量有什么样的bug?
-
Set数据结构
-
拓展:数组去重的方法
-
箭头函数this的指向。
-
手写ES6 class继承。
微信小程序
-
简单描述一下微信小程序的相关文件类型?
-
你是怎么封装微信小程序的数据请求?
-
有哪些参数传值的方法?
-
你使用过哪些方法,来提高微信小程序的应用速度?
-
小程序和原生App哪个好?
-
简述微信小程序原理?
-
分析微信小程序的优劣势
-
怎么解决小程序的异步请求问题?
其他知识点面试
-
webpack的原理
-
webpack的loader和plugin的区别?
-
怎么使用webpack对项目进行优化?
-
防抖、节流
-
浏览器的缓存机制
-
描述一下二叉树, 并说明二叉树的几种遍历方式?
-
项目类问题
-
笔试编程题:
最后
技术栈比较搭,基本用过的东西都是一模一样的。快手终面喜欢问智力题,校招也是终面问智力题,大家要准备一下一些经典智力题。如果排列组合、概率论这些基础忘了,建议回去补一下。 开源分享:docs.qq.com/doc/DSmRnRG…