js的隐式类型转换你懂了嘛 一起来复习一下吧

Posted 苏苏写bug日记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js的隐式类型转换你懂了嘛 一起来复习一下吧相关的知识,希望对你有一定的参考价值。

 js隐式类型转换你懂了嘛

    可能写的不太清楚,逻辑不太严密,存在些许错误,还望批评指正,我会及时更正。我也是以一个学习者的身份来写这篇文章,逆向的记录自己学习探索的过程,并不是指点江山,挥斥方遒,目空一切的大神,如果写的不好,还望见谅。

        来来来看看下面的这几道联系题看看你会不会

 

  var str = false + 1

   console.lgo(str);

 

    var demo = false == 1;

    console.log(demo);

        前两个应该都能做出来你要是做不出来; 我劝你还是回去复习一下类型转换吧

        str 打印的是1

        这里进行运算的时候false先是转化为数字然后在进行加法运算false转化位数字是0所以1 + 0 = 1

        demo 打印的是false

        这里考的是一样的false转化位数字是0; 0 != 1 这里的两个 == 返回的结果只能是false或是ture 所以是false

        下面的题有一定的难度喽; 但并不是很难哎 好好做还是可以做出来的

  来看第一个       

  if (typeof(a) && -true + (+undefined) + " ") {

            console.log('基础很好');

        }

        这里要说一个知识点哦 很小的知识点; 就是一个未经声明的变量只有在typeof里面是不报错的记住就好了

        所以typeof(a) 返回的是 字符串的 "undefined"

        转换为布尔值是 true; 这里的undefined是字符串的undefined 所以是true+undefined转化为数字是nan 

        然后是 -1 加NaN就等于NaN; 任何数加NaN都等于NaN; 然后NaN在去加上一个空的字符串时就等于一个字符串的NaN 。是这样的"NaN "

        转化为布尔值就是true

 

        讲一个知识点偶

        就是有哪几个类型转化布尔值false;除下面这几个值;

        undefined 、null 、false、 ""、 0、 NaN 

       这次要记住喽不要再忘记喽, 布尔值类型转换的时候只有这几个值是flase ;其余的全是true。


看下第二题
    

    if (11 + '11' * 2 == 33) {

            console.log('基础很好');

        }

        然后这里的 '11' * 2; 在进行运算的时候; 因为11是字符串的11所以会先转化成数字的11才会进行运算结果是22而且是数字的22然后11 + 22 两数字相加就得33是数字类型的所以可以打印

会做着一道题你就对类型转换掌握的很好喽;加油ヾ(◍°∇°◍)ノ゙

            !!" " + !!"" - !!false || console('可以打印嘛?');

        这里又用到了上面的知识点欧

         " " 这个转化为布尔值是true!这是取反的意思是吧然后两个取反不就是自身嘛;

        然后下一个 ""

        这是一个什么都没有的字符串偶; 所以转换为布尔值是false

        true加false 转化为数字不就是就是0 + 1 就是1 ;然后再转化成布尔值是true;

         && || 具有中断的作用偶 && 是遇到false就返回后面如果有代码就不会再执行了

        而 || 是遇到true就返回不在执行后面的代码了

        怎么样是不是很简单呢? 你有没有做出来呢

以上是关于js的隐式类型转换你懂了嘛 一起来复习一下吧的主要内容,如果未能解决你的问题,请参考以下文章

js的隐式类型转换你懂了嘛 一起来复习一下吧

深入浅出JavaScript中的隐式转换

深入详解函数的柯里化

javascript的隐式类型转换

js 的隐式转换与显式转换

PHP 字符串的隐式转换规则以及针对包含字母的字符串的递增/递减操作