前端面试送命题

前言

前面说过很多前端面试的考题或技巧,这次来总结一下前端面试者常犯的一些错误。

void立即执行函数

常见写法如下

(function () {
  // code
})();

解析器会将其解析如下

var a = 1
(function () { // Uncaught TypeError: 1 is not a function
})()

如今我们可以这样处理

void function () {
  // code
}();

null 即为对象

typeof null === "object"  //true

null 不具备对象类型的基本特征,是原始类型,这是一个广为人知的js bug。

所以我们在判断一个变量的类型时,首先要判断的值是不是null

if (someVal !== null && typeof someVal === ‘object‘) {
  // someVal 是一个对象
}

js类型精度

js所有的number原始值都是一个双精度浮点数,对应java double的类型。

做小数计算时,注意浮点数的精度问题。

例:0.1+0.2 =》 0.30000000004

所以记得使用toFixed来取小数点后的若干位

(0.1 + 0.2).toFixed(2) === ‘0.30‘

比较小数相等时,切记不要直接使用 === 。

0.1+0.2 === 0.3 // false
Math.abs(0.1+0.2 - 0.3) <= 1e-10 // true

NaN !==NaN

NaN === NaN // false
var a = NaN; a === a // false

正确使用parseInt

首先parseInt 接受两个参数,第一个是待parse的字符串,第二个是使用的进制。

如果不传第二个参数,进制则由第一个参数来决定。

除了用于比较null和undefined,不要使用==

请看下面例子

‘true‘ == true // => false
‘true‘ == false // => false
[] == {} // => false
[] == [] // => false

关于非严格相等,只需记住下面的规则

null == null // => true
undefined == undefined  // => true
null == undefined // => true
undefined == null // => true
x == null // => false (x 非 null 或 undefined)
x == undefined // => false (x 非 null 或 undefined)

日期处理

new Date(year,month,day)注意参数的取值范围。

1.如果year设置1-99,会被默认加上1900。

2.month从0开始计算,0代表一月,1代表二月,以此类推。

new Date(dateString)注意浏览器时区及兼容性

new Date(‘2018-01-01‘) // => "2018/1/1 08:00:00" 新版浏览器,IE 11
new Date(‘2018-01-01‘) // => "2018/1/1 00:00:00" 某些旧版安卓
new Date(‘2018-01-01‘) // => "Invalid Date" IE 8(这个忽略。。。)
new Date(‘2018/01/01‘) // => "2018/1/1 00:00:00" 包括 IE 8 在内所有浏览器

小心 || 填充默认值

exp1 || exp2 的意义是:exp1 返回值为true的情况下返回exp1 否则 exp2

下面这些值是不能转成true的

1 null
2 undefined
3 NaN
4 0 !!!
5 空字符串(‘‘) !!!

最好采用下面的方法

config.prop1 = config.prop1 !== undefined ? config.prop1 : 233;
config.prop2 = config.prop2 !== undefined ? config.prop2 : ‘balabala‘;

原文地址:https://www.cnblogs.com/peiyu1988/p/9721947.html

时间: 2024-10-09 15:31:03

前端面试送命题的相关文章

前端面试送命题-JS三座大山

前言 本篇文章比较适合 3 年以上的前端工作者,JS 三座大山分别指:原型与原型链,作用域及闭包,异步和单线程. 原型与原型链 说到原型,就不得不提一下构造函数,首先我们看下面一个简单的例子: function Dog(name,age){      this.name = name;    this.age = age; } let dog1 = new Dog("哈士奇",3); let dog2 = new Dog("泰迪",2); 首先创造空的对象,再让 t

前端面试的面试经验

?? 文章列表 前端面试总结--基础javascript篇 前端面试总结--进阶javascript篇 前端面试总结--http.html和浏览器篇 前端面试总结--css篇 一.基础javascript篇 1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的. 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少.对get请求参数的限制是来源与浏览器或web服务器,浏览器或web服务器限制了url的长度.为了明确这个概

前端面试常见逻辑题收集及分析

前端面试中常出现一些有趣的逻辑题,初见的时候有可能会手足无措,但实际多看几个题之后就会有一定的思考逻辑,有种打通任督二脉的感觉.以下是我个人面试经历以及网络上收集来的一些经典题目. 题目: 1.现有一个装有无限水的池塘,你手里有两个空壶,一个容积为6升,一个为5升,请问你如何用这两个空壶打3升水?请写出具体步骤(腾讯) 2.有一个烤肉架,它能同时烤两块肉,已知每块肉完全烤熟一面需要5分钟,请问用这个烤肉架烤熟三块肉最快是多少时间?(腾讯) 3.现有A.B两辆汽车相隔一段距离,它们之间有一只小鸟,

问得最多的十个JavaScript前端面试问题

我知道有很多人不同意这种类型的面试.其实不管你喜不喜欢,你都得接受.尤其当你是自学的,而且要申请第一份工作时. 我估计很多有人其它方法来证明他自己,像Github/ 项目地址可能是非常理想的证明方法,但也别全都指望这些. 好消息是有一些很难的问题,在有限的时间里我没答上来(比如说Event Loop和杨辉三角),一些其它面试侯选人也承认他们也没答上来,这会让讨论变得轻松很多. 坏消息是有些面试之后就没有任何反馈了.有三家公司再也没联系过.这点击打击自信,而且没有受到尊重.然后你可能会有心理斗争,

2016.10.19 小米前端面试 vs 2016.10.22 华为web面试

这次面试还是很值得记录一下的~长了很多姿势. 一共三面,面试官都是MIUI的浏览器部门,感觉面试官都很厉害,知识点问的很细很深入. 一面面试官是个可爱的小姑娘,主要考察的就是常见的前端面试题,很基础,但是会在其上进行拓展和深入.就我记得的一些题做个总结: 1. 说一下CSS的盒模型?(这简直是我参加过的几乎所有前端面试岗必问的一道题目--不管是比较水的国企还是问基础的互联网... 想一想似乎只有只问项目不谈基础的京东没有问吧) 这里是答案 2. 常用的跨域方法:(之前小米一个面试官电话面试时候也

【转载】前端面试“http全过程”将所有HTTP相关知识抛出来了...

原文:前端面试“http全过程”将所有HTTP相关知识抛出来了... 来一篇串通,一个http全过程的问题,把所有HTTP相关知识点都带过一遍 http全过程 输入域名(url)-->DNS映射为IP-->TCP三次握手-->HTTP请求-->HTTP响应-->(浏览器跟踪重定向地址)-->服务器处理请求-->服务器返回一个html响应-->(视情况决定释放TCP连接)-->客户端解析HTML-->获取嵌入在HTML中的对象重新发起http请求

百度Web前端面试经历

今天面了百度的前端实习职位.一面.时间大概是50分钟.面试官是位很帅气的小伙子,非常友好的一个人.进门的时候他让我等一会,我瞄了一眼他的电脑屏幕,发现他在coding…… 9点50开始的面试. 面试官:自我介绍一下. 我:blablabla. 面试官:javascript的类型转换(比如"2"*1, "a"*1). 我:javascript会调用valueOf来转换为一个基本数据类型,在这种情况下,如果javascript不能通过valueOf转成一个number,

web前端面试经历分享

十天前,我还在纠结这个暑假到底是呆在实验室研究技术好还是找一份实习见识世面好,而现在我已经接到offer准备工作了.这几天真是累得够呛,一方面需要拼命准备期末考试,另一方面,需要往公司里面跑接受面试.欣慰的是,我不仅顺利通过了公司的面试,还认识了好几个厉害的师兄,自己的人生规划也稍有改变. 开始的纠结是有原因的,主要是考虑到了一下几个方面: 第一,作为一个大二的学生有必要这么着急跑出去找实习么? 第二,去找实习主要目的应该是赚钱还是学习技术? 第三,难得有那么两个月的时间,就这样去工作了会不会浪

web前端面试总结

本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的! 前端还是一个年轻的行业,所以关注各种前端技术,跟上快速变化的节奏,也是身为一个前端程序员必备的技能之一. 前端开发知识点: HTML&CSS: 对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级. HTML5.CSS3.Flexbox JavaScript: 数据类