Skip to main content

面试题

string 数组去重(时间复杂度&空间复杂度?)

待解答面试题

浏览器的一些问题

  • 二维码扫描登录的实现,包括业务以及技术实现
  • 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))

参考