<script>
console.log(2+5);
</script>
<script>
console.log( "56" + "78");
</script>
这里为什么会是输出5678呢,不是应该输出134吗?
首先我们要清楚这里两个数字分别添加了双引号,从数字转换成了字符串了
不清楚数字和字符串数据类型的可以打开下面的链接查看
(https://blog.csdn.net/m0_58305766/article/details/126141141?spm=1001.2014.3001.5502)
当转换成字符串的时候,我们这时是将它们拼接起来的,所以输出的结果是5678
<script>
console.log( 56 + "78");
</script>
前面的属于数字类型,后面的属于字符串,进行相加的话会进行拼接起来
<script>
console.log( ( 5 + 6 ) + "78");
</script>
前面的括号都属于数字类型,可以进行相加,得出的结果与后面的字符串进行拼接起来
<script>
console.log( ( 5 + 6 ) + (78 + "99"));
</script>
我们这里两个括号里面的内容进行了运算,然后在进行相加,前面算出是11,后面由于99是字符串数据类型,得到的是7899,这时的7899也转化为了字符串数据类型,与11只能进行拼接起来
<script>
console.log(true + 11);
</script>
这里可以进行相加,而且输出的还是数字数据类型,这是为什么呢?
这是因为我们这里进行相加的时候,true转变1,如果这里是false的话,则会把false变成0,看下图
<script>
console.log(false+ 11);
</script>
<script>
console.log("true" + 78);
</script>
这里和上面的我讲的类型,前面的true加了双引号,从布尔数据类型转变成了字符串,字符串与数字进行相加会进行拼接