面试的时候看到的一些细节问题

2019-03-15 23:17:53 +08:00
 AshoneA

今天面试一位前端的时候,给他出了道题目让他写点代码,答案没写出来也没什么,就是发现面试的人在判断两个值是否相等的时候居然用的是==而不是===,个人感觉只要写 JS 超过半年以上应该会很习惯的用===去判断,==几乎是不会用到的一个判断符号(而且 eslint 大部分的规则都会直接提示==是不合法的)。面试的人在我心中就感觉是个基本不怎么写代码的人...而且简历上的一些项目百度了一下居然能出来个好几页,这是培训出来的吗?还是我的判断有误,请各位指教一下

6806 次点击
所在节点    程序员
46 条回复
murmur
2019-03-16 09:53:49 +08:00
三等号一般我只用在 0 null undefined 这些值上 至于 string 算了吧 多打一个难受
meteor957
2019-03-16 10:10:41 +08:00
工作不够饱和吗,一个三等号你纠结半天,还跑来专门发帖?面试完了就完了,谁也不认识谁。

“==几乎是不会用到的一个判断符号”,你确定?
lodash 源码中有不少==,null == undefined,在判错的时候能省去多余的判断
Malthael
2019-03-16 10:26:01 +08:00
你这算啥,我一个同事还写 if(xxx() == true) 呢。
qshu
2019-03-16 10:30:53 +08:00
@Malthael 哈哈哈,去掉== true 也可以呀
qshu
2019-03-16 10:31:15 +08:00
我发现我的确是 越来越习惯用 === 了
learnshare
2019-03-16 10:43:57 +08:00
=== 的要求还是要坚持的,写过一段时间代码的话,应该会有被坑的时候
宁愿手动转类型,也别占自动转换的便宜
dying4death
2019-03-16 11:55:11 +08:00
@Malthael 不太懂前端那一套是怎么样
这样的写法在 java,kt 中我就经常用,lol
因为其实 xxx()可能会返回空的情况,所以判断是否等于 true 还是有必要的,除非你说完全百分百返回布尔值
itkdqwzero
2019-03-16 12:14:53 +08:00
在小公司 多语言切换是常见的,我转行做 C++有两年了,都忘了这一茬。不用===也是什么都能实现,你这样面试对自学转行的新手太不友好,你觉得这很重要?很多实习生 for 循环都不会
QiaTia
2019-03-16 13:06:47 +08:00
完了完了 平时根本不咋用 === ,
鬼晓得后端会不会传一个字符型的数字来!
xiangyuecn
2019-03-16 13:18:34 +08:00
表示只会用到===true ===false,其他大部分用==,非要有不确定类型的地方(+num||0) (""+str) 转换成明确的类型在比较。除了字符串就是数值了吧。另外表示 js 的判断逻辑很强大,很简洁。

最后反正怎么写,==也好===也好,该出问题的地方还是会出问题。
peneazy
2019-03-16 13:21:32 +08:00
js 权威指南里面大量使用==,以跳过 null 和 undefined 的判断。后端不靠谱的时候,也需要使用==
godgc
2019-03-16 14:40:46 +08:00
三等和两等 基本都要看使用场景,虽说是推荐===,但是有些场景 比如后端返回的 data number 和前端进行校验时 前端会转为 string,所以说还是要看场景吧
Ley
2019-03-16 16:02:39 +08:00
惊了,这贴的风向和预想的大相径庭…
支持楼主的观点,不考虑是不是培训班,会觉得这类细节无所谓的很可能水平有限… 当然如果是特殊情况特别考虑才这么写的另当别论。
xiaxiaokang
2019-03-16 16:14:10 +08:00
你题目没有标注是否类型相等,出题应该是:判断两个变量值相等且类型相等。
所有你出题有问题。判断两个值是否相等==是可以的。
作为 js==和===无非是(值相等)和(值和类型相等)
ayase252
2019-03-16 16:18:02 +08:00
尽量用===

必须用==的情况的话个人感觉应该留个注释,阐明使用的理由。
GX88624
2019-03-16 16:47:12 +08:00
数据类型可预知我都是== 能省点省点, 不可预知和易出问题才===
yuanfnadi
2019-03-16 16:52:18 +08:00
eslint 规则配置 禁止 '=='
darknoll
2019-03-16 18:28:40 +08:00
这就跟写一个算法,不判断传入的值是否为空一个性质。
稍微好点的公司当然是直接 pass 了。
GM
2019-03-16 20:00:57 +08:00
不注意细节的人,招进来后很可能给你写一大堆功能看起来能用,但是实际上质量很低的代码,你愿意要这种人?
meszyouh
2019-03-16 20:35:37 +08:00
接数据的时候,刚入门的时候用 === .出了几个莫名其妙的 bug 后,长心了,与后台传过来的数据判断 用 ==,心情好转换一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/545154

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX