初学js钻太深,不太好

其实我个人觉得新手不太应该追求彻底的学透每一个知识点。因为初学的时候,钻的太深并不太利于对JS有一个整体的理解。反而有可能钻牛角尖。但这种方法和心态却是必须有的。所以,有时也矛盾,自己掌握吧。

学透一个知识点的关键,我认为就是求甚解,“到底是为什么”?

在掌握全局的基础上,一定程度的求甚解,我认为是一种很好的学习方法。

例如,== 和 ===,到底有什么区别?什么时候该用双=或三=?

先说结论,一般情况下都应该使用===,因为这样就没有JS的自动转换了,效率会好些。但只有在检测 null 或是 undefined的时候,就可以使用 == 就可以了,因为它转换也是null 或 undefined。而且很多时候,是不怎么区别 null 和 undefined的。

双=,就是 == ,有时看着方便,if( a == b ),如果:

a的值是1;b的值是'1',这样比对的时候,a和b的值其实并不相等,但你 == 这样比较,就很可能造成直接转换了,使得比较结果相等。而这种BUG是很难查出来的。

另外还有一个问题,有时会这样设置变量:var a = b = c,也许人的直觉会认为a = c了,但其实不是这样的。这个句子,只是声明了一个局域变量a,另外 的b 和c ,其实是全局变量,如果这种情况下,你直接用 == 去比较,十有八九会有问题。

最后为了求甚解,看一个小例子:

1 == false // false
'1' == false // false
1 == '1' // true
1 === '1' // false

你该怎么理解呢?自己想想吧

原文发布于微信公众号 - web前端教室(webfeel)

原文发表时间:2017-09-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员维他命

出一套 iOS 高级面试题

一千个读者眼中有一千个哈姆雷特,一千名 iOS 程序员心目中就有一千套 iOS 高级面试题。本文就是笔者认为可以用来面试高级 iOS 程序员的面试题。

3912
来自专栏java思维导图

跳槽时,这些Java面试题99%会被问到

工作多年以及在面试中,我经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试,通常是两方面原因:

2013
来自专栏司想君

前端也要学系列:设计模式之策略模式

上边这句话,从字面来看很简单。但是如何在开发过程中去应用,仅凭一个定义依然是一头雾水。以笔者曾经做过的商户进销存系统为例:

652
来自专栏灯塔大数据

技术 | Python从零开始系列连载(二十二)

为了解答大家学习Python时遇到各种常见问题,小灯塔特地整理了一系列从零开始的入门到熟练的系列连载,每周五准时推出,欢迎大家学积极学习转载~

1013
来自专栏web前端教室

怎么能学透一个知识点

其实我个人觉得新手不太应该追求彻底的学透每一个知识点。因为初学的时候,钻的太深并不太利于对JS有一个整体的理解。反而有可能钻牛角尖。但这种方法和心态却是必须有的...

19410
来自专栏java思维导图

java基础思维导图,让java不再难懂

思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具。了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的...

5396
来自专栏平凡文摘

如果电脑技术最初是中国人发明的,那现在编程是不是就是中文的?

1565
来自专栏狮乐园

【译】Understanding SOLID Principles - Interface Segregation Principle

这个原则本身与单一职责原则关系十分紧密,它意味着当你在定义你的抽象层代码时,不应当在客户端代码在实现抽象逻辑时,暴露一些客户端代码不需要使用或者关心的方法。

1375
来自专栏玄魂工作室

Python黑帽编程 2.0 第二章概述

于 20世纪80年代末,Guido van Rossum发明了Python,初衷据说是为了打发圣诞节的无趣,1991年首次发布,是ABC语言的继承,同时也是一...

3637
来自专栏大数据和云计算技术

Go语言入门

最近准备学点新东西,聊聊Go语言入门。 Go是google 09年推出的编程语言,Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲...

3415

扫码关注云+社区