初学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 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

月薪数万的攻城狮带你了解到什么是C语言编程思想,原来这就是编程思想

什么是编程思想?答案可能很会复杂,但也可以很简单; 一句话来讲就是,用计算机来解决人们实际问题的思维方式,即编程思想; 编程就是为了解决实际中的问题,在思考如何...

2599
来自专栏CSDN技术头条

代码审查拯救世界?

代码审查是指阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。现在,越来越多的团队倡导要进行代码审查活动,而本文作者通过一幅漫画,来诠释其对代码审查的理...

2236
来自专栏狮乐园

【译】Understanding SOLID Principles - Liskov Substitution Principle

这句话的意思是说,当我们在传递一个父抽象的子类型时,你需要保证你不会修改任何关于这个父抽象的行为和状态语义。

1031
来自专栏司想君

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

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

702
来自专栏平凡文摘

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

1845
来自专栏java思维导图

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

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

6496
来自专栏游戏开发那些事

【游戏开发】浅谈游戏开发中常见的设计原则

  俗话说得好:“设计模式,常读常新~”。的确,每读一遍设计模式都会有些新的体会和收获。马三不才,才读了两遍设计模式(还有一遍是在学校学的),属于菜鸟级别的。这...

1323
来自专栏韩伟的专栏

字节的奥秘

在数码产品中,最常见的名词就是“字节”了。不管是U盘容量、手机存储空间,还是网络带宽,下载速度,都会涉及所谓“字节”这个单位。但到底“字节”是一个什么东西呢?本...

3704
来自专栏玄魂工作室

Python黑帽编程 2.0 第二章概述

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

3687
来自专栏web前端教室

怎么能学透一个知识点

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

19910

扫码关注云+社区

领取腾讯云代金券