面试题
待解答面试题
浏览器的一些问题
- 二维码扫描登录的实现,包括业务以及技术实现
- web 短轮训登录状态
- 用 js 闭包和继承来介绍自己
- 页面高度为 800px,用户浏览器为 900px,怎么让浏览器背景也变成页面的颜色
- 用最少的字节搞定一个样式,就是字体啊,加粗呀,等
- 浏览器的跨域请求
一般
- 一些基本常量的结果,什么 typeof,是否 == 等等
- 固定宽高,让里面的字体自动根据字体多少 变化字号
- 正常解决问题的方式,百度,谷歌,ask 等
- 是否关注前沿技术,怎么学习。
- 是否学习过一些出名的 js 框架,我就没事看了一点 underscore 的源码
- 对最新的前沿的技术的了解,什么 amd 等等的
- 怎样更改一个插件,比如升级。如何正确升级和协助
- 如何参与团队项目的协助和开发
基础高频
- 箭头函数可以用 new 实例化吗?聊聊 this 的指向问题。
- 聊一聊原型链。
- 垃圾回收中的堆和栈的区别。
- 0.1 + 0.2 != 0.3 背后的原理?
- TypeScript 用过吗?聊聊你对 TypeScript 的理解?
- 图片懒加载的原理
- call、apply 和 bind 方法的用法以及区别
- Webpack 原理,以及常用插件
面试题
如何实现 jquery 中的 addclass 方法(包括去重)
function addclass(ele, class) {
if (typeof ele !== 'string') {
throw 'ele must be string'
}
let dom
if (ele.indexOf('#') === 0) {
dom = document.getElementById(ele)
} else if (ele.indexOf('.') === 0) {
dom = document.querySelectAll(ele)
} else {
throw 'ele must start with # or .
}
if (Array.isArray(dom)) {
dom.forEach(item => {
item.classList.add(class)
})
} else {
dom.classList.add(class)
}
}
String 的金额的转换,转成每 3 个一个逗号
parseFloat(num_s).toLocaleString()
function formatNum (number) {
var str = number.toString();
var newStr = “”;
var count = 0;
if (str.indexOf(".") == -1) {
for (var i = str.length - 1; i >= 0; i–) {
if (count % 3 == 0 && count != 0 && str.charAt(i) != ‘-’) {
newStr = str.charAt(i) + “,” + newStr;
} else {
newStr = str.charAt(i) + newStr;
}
count++;
}
// 自动补小数点后两位
str = newStr + “.00”;
return str;
} else {
for (var i = str.indexOf(".") - 1; i >= 0; i–) {
console.log(str.charAt(i));
if (count % 3 == 0 && count != 0 && str.charAt(i) != ‘-’) {
newStr = str.charAt(i) + “,” + newStr;
} else {
newStr = str.charAt(i) + newStr;
}
count++;
}
str = newStr + str.substr(str.indexOf("."), 3);
return str;
}
}
console.log(formatNum(‘6666777’))