这部分的面试知识点是和前几天发的那篇基础知识点是一块儿的,小鹿按照分类把它分红两篇进行分享。前端
动画:面试官问我 0.1 + 0.2 __ 0.3 ? 为何?该如何正确回答?面试
暑假去面试,进门先作笔试题,笔试题的基础部分大多都是这样 JS 基础问题,作的时候老是含含糊糊,感受对也感受不对。其实回来总接到,仍是这些基础点没有掌握牢靠,看了过一段时间就忘,有没有一种方法把这些零散知识理解记住呢?算法
试一下动画方式,看看有没有好的效果,进入今天的正题。编程
任何的值若是转化为布尔类型时,咱们只记住其中几个转化为false
便可,由于若是转化为true
一块记的话,较容易引发混乱。网络
只有null(小写的 n)、undefined、””(中间没有空格)、NAN、0、-0、false
再进行类型转换时,能够转化为false
。全部对象类型都会转化为true
。数据结构
为了更好的准备面试,小鹿送你一套动画记忆法:post
null与 unefined
它俩什么到底区别?初学者最容易弄不懂。学习
null 表示"没有对象",即该处不该该有值。undefined 表示"缺乏值",就是此处应该有一个值,可是尚未定义。动画
在细节上,null是一个表示"无"的对象,转为数值时为 0;undefined是一个表示"无"的原始值,转为数值时为NaN。spa
二者转化为boolean
时,能够记忆为无,都会转化为false
。
NaN 与 ""
NaN 属性是表明非数字值的特殊值。该属性用于指示某个值不是数字。能够把 Number 对象设置为该值,来指示其不是数字值。
注意:这里的空字符串没有空格,若是面试的时候加空格了,好比这样“ ”,它就返回 true 了。
三、+0 与 -0
若是此处有忽略,请给予补充!
对象类型转原始类型时,它会根据不一样的转换对象调用不一样的转化方法(回顾一下咱们以前写的文章,对象类型和原始类型的区别)。
若是转化为字符串,就会调用toString
方法;
若是转化非字符串,则会优先调用valueOf
方法(返回自身类型)。
注意:toString 方法和 valueOf 方法是能够改写的。
对象转字符串类型的话,直接调用原有的toString方法。
除 String
类型外,Object
转其余类型的话,直接调用valueOf
方法。
若是调用valueOf
返回的不是原始类型的值,会调用toString
方法,toString
若是返回的不是原始值,就会报错。
加法运算符是在运行时决定,究竟是执行相加,仍是执行链接。运算数的不一样,致使了不一样的语法行为,这种现象称为“重载”。
一、若是双方都不是字符串,则将转化为数字或字符串。
其余算术运算符(好比减法、除法和乘法)都不会发生重载。它们的规则是:全部运算子一概转为数值,再进行相应的数学运算。
&&:
全部条件为真,总体才为真。
||:
只有一个条件为真,总体就为真。
一、A && B
首先看 A 的真假,A 为假,返回 A 的值,A 为真返回 B 的值。(无论B 是啥)
typeOf
一直有一个问题就是可以正确的判断类型吗?除了null
都显示正确的类型,可是并不能准确的判断对象的具体类型。
对于为何
typeOf null
判断为对象类型,上一篇文章已经分享过,能够看以前的一篇文章。
对于==和===之间的区别,使用==,若是比较的双方的数据类型不同的话,就进行类型转换。如上所述,类型转换以后再进行对比。
首先比较双方的类型是否相等,若是类型相同,就比较大小,不然将会如下面步骤进行,首先进行类型转换。
一、判断二者是否为null和undefined,是则返回 true。
二、判断二者类型是否分别为字符串和数字,是的话将字符串转化为number类型,而后比较大小。
三、若是二者其中一个是布尔类型,就把先把布尔类型转化为number再进行判断大小。
四、若是对象类型和原始类型比较,先把对象类型转化为原始类型再进行比较。
对于===来讲,只比较数值大小就能够了。
以上咱们对数据类型转换进行了全面的总结,尤为是其中的一些细节问题考的特别的细,因此小鹿以动画的形式展示出来,便于在面试的时候牢记使用,更重要的一点就是在实际开发中遇到这些问题不用处处翻找,从而使你快速的定位问题,节省开发时间。
上边的代码例子,都是小鹿亲自在控制台输出查得出的结果,可是也避免不了有错误的状况,若是有错误能够给小鹿提出来哦!
文章都看完了,为什么不妨点个赞呢?嘻嘻,那就说明你很自私,你怕那么好的文章让别人也看到。开个小小玩笑。
其实我也很自私,我把个人一直以来坚持原创的公众号:「小鹿动画学编程」偷偷给你,里边汇聚了小鹿以动画形式讲解的数据结构与算法、网络原理、Web 等技术文章。
做者Info:
【做者】:小鹿
【原创公众号】小鹿动画学编程
【简介】:和小鹿同窗一块儿用动画的方式从零基础学编程,将Web前端领域、数据结构与算法、网络原理等通俗易懂的呈献给小伙伴。公众号回复 “资料” 送一从零自学资料大礼包!
【转载说明】:转载请说明出处,谢谢合做!~