前言: 看的视频是黑马的js课程,记录可能会用到的知识点以及不懂得地方.
2021-07-13
比较零碎的知识点:
1. 0.1 + 0.2 和0.3不相等,因为浮点数后面有溢出.
2. 不要判断两个浮点数是否相等!!!!!
1.数据类型转换:
(1).隐形转换:
举例说明: var a = 'js' + 1
console.log(a); // js1
重点:
var a; // 此时a是undefined;
var b = a + 1;
console.log(b); // 由于undefined与数值相加此时的值是 NAN
同样:
var a = true; // 此时a是布尔值类型true;
var b = a + 1;
console.log(b); // 由于布尔值与数值相加此时的值是 NAN
(2).数据类型转换
数值转换为字符串方法:
1.toString() 方法;
2.String(num);
2.查看数据类型
var num = 10;
console.log(typeof num); // number
var vari = undefined;
console.log(typeof vari); // undefined
var timeri = null;
console.log(typeof timeri); // object
3.运算符
num++ 这种属于表达式.
(1) 前置递增运算符 ++ 写在变量的前面
var num = 10;
++num
console.log(num); // 11
console.log(++num + 20); // 21
先自加,后返回值
(1) 后置递增运算符 ++ 写在变量的后面
var num = 10;
num++
console.log(num); // 11
console.log(num++ + 20); // 20
先返回值,后自加
当他们单独使用时, 效果是一样的!!!
但是和其他值一块时使用方法不一样!!!
例如: var c = 10;
c++;
console.log(c++ + 20); // 31
错误思路: 按照上面的口诀来说应该先返回值,后自加,c++ = 10, c = 11,后面的打印值是32
正确思路: 由于c++单独使用所以C++此时的值为11, 后面c++和数值一起使用,这个时候就应该按口诀来,先返回值c++ = 11, c = 12, 但是是c++ 和20相加,所以最终值等于31;
var e = 10;
var f = e++ + ++e: // 22
//1.e++ = 10, 此时e = 11;
2. ++e = 12(因为经过了e++之后e已经不是10了,是11), e = 12;
逻辑运算符:
&& 逻辑与,可以理解为并且的意思.
|| 逻辑或,可以理解为或者的意思,也就是条件可以2取一
! 逻辑非 (一元表达式)
consile.log(0 && 123 && 1); // 直接返回0,后面直接短路不再运行!!!
var num = o;
console.log(123 || num++);
console.log(num); // 此时num 的值还是0, 因为上面的逻辑预算中123是真,直接返回了结果,并没有走到num++这一步,这就是逻辑中断.
与的优先级比或高
https://www.cnblogs.com/swlq/p/5361010.html