返回

JavaScript类型中的七大盲点抹除利器!从0入手,全面掌握JavaScript类型知识!

前端

导语:

JavaScript是一种动态弱类型编程方言,一直以类型灵活多变而备受技术圈推崇。然而,这种灵动特性也给开发者带来了学习和使用上的困惑,很多初学者往往捉襟见肘于类型之间的隐秘雷区。为确保JavaScript类型应用得井井有条,根正苗红,这篇文章为你提供七大类型应用的盲点抹除利器,实现根基夯实,亲密赋能。

1. 0.1 + 0.2 == 0.3?
这位连续好几届高考数学拿满分的老师恐怕都没想得到,科技飞速发展,到现在小学数学的基本运算题都没能逃过“伪命题”的宿命。0.1 + 0.2并不等于0.3,这是计算机世界里必须接受的残酷现实。

这样的结果并不是编程人员层层代码和常量上偷工减角造成的,相反,这是计算机运算器强劲的局限性造成的。计算机运算器只擅长于二进制的储存和处理,而小数点以下的后缀则在计算机世界里宛如无穷无序列的无序。
这就好比我们肉眼能够看清远方的岛屿,但是天边尽头那艘小渔船在双眼中就会显得虚幻。计算机,尤其是处理这类涉及无限循环的小数点时,总是显得捉襟见肘。

2. null和typeof的猫腻

为什么null在计算机世界里是这个让人气得牙痒痒的“object”而不是“primitive”,而typeof null返回得到的是“object”?

这,纯属一脚油门开到400码踩错油门开始左冲右突的效果。

这就不得不提及JavaScript被广泛诟病的“面向对象”的不是那么名副其实的模式。事实上,JavaScript更符合函数式编程范畴。而typeof判断类型返回结果的标准非常明确:是否是对象即为“object”。null并不没有一个实际的确定的类型,但是目前的概念只能称为是’一个不确定的值’。

实际上,我们最习惯的typeof判断类型语义,很遗憾,并不是从头到尾就规范至今的。typeof,是借鉴了面向对象的模式特性,但是本质上,却又背道而驰的与JavaScript原则背向而驰。不过,这也充分反映了JavaScript无限的灵动特性。

3. String是没长度上限的吗?

没有最大上限,但是也不是无穷无际,2^32减去一万:2147483647。这是JavaScript里的超大数字了。但在旧版JavaScript引擎里,你可以不断向它塞进更多的字符,只是它会悄咪咪的不声不响的把多余的字符默默的‘吃掉’。不过,引擎技术的更新换代和开发理念的改进,目前引擎会直接告诉你,非常抱歉,你所输入的内容已经超时了。

4. 浅拷贝和深拷贝

传进参数的销毁和接收至新的对象的组合体还是接受至旧对象的组合体,这一点是类型判断以及类型应用的重中之重。不可否认,‘引用’或‘指向’,的确‘亲密关系’的重头戏。

5. 数据类型和值类型:是强强联还是形单恋?
一目了然的值类型,以及幽灵强有力の值类型,这是JavaScript的神来之笔。

6. 思维固式:是一种迷思还是一种方法

客观上,它是一种方法,本质是计算机科学的本源。

本质上,编程的奥义正在于重复的开辟新思维,这自然而然就导致了固化思维的死套圈束缚。我们往往更习惯用既往的思维来评判新的问题和表象,甚至在缺少关键信息和依据的时候也是如此。对一个杯子经纬化信息的需求,应该随时需要随时去探索,而不是不断的固执着于杯子拿在手里的触觉和思维模式。

7. 应用上的敲门砖:深入剖析类型判断的应用域

计算机科学的基石之一:“计算机是处理信息的”我们由此可得知,计算机程序存在的一个必要条件就是需要不断进处理信息。这是由用户脑力层层发出的指令来执行计算。在这种环环过程中,信息的性质需要由计算机程序的类型判断来确定的,类型判断是确保这些信息在应用中的数据协同同步的主要部件之一。

归根结底,务必要深刻体会编程的思维魅力:毫不犹豫的给出判决,冷血至极的肯定和否定,一层一层,明确的定义出那些‘断定’能够通过什么样的科学严谨的步骤,到达‘计算结果’的彼岸。

至此,这些JavaScript的类型应用盲点抹除工具是不是豁然开朗了许多呢?大家可以继续多举多练,共同朝着类型应用盲点消灭的光辉大道并肩齐驱!