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的隐式类型转换你懂了嘛 一起来复习一下吧的主要内容,如果未能解决你的问题,请参考以下文章