整理一下大学自学JS的笔记
** 基本类型**
''空字符串
' '空格字符串
加 +
减 -
乘 *
除 /
余 %
=
+=
-+
*=
/=
%=
>
<
>=
<=
== 值一样就行,不用管数据类型
===全等 一模一样 数据类型也一样
!=
!==全不等
与 &&
结果不一定是布尔值
对于逻辑与运算,如果第一个操作数为true或者能隐式转换为true,运算结果为第二个操作数(第二个操作数是什么,结果就是什么),如果第一个操作数为false或者能隐式转换为false,运算结果为第一个操作数(第一个操作数是什么,结果就是什么),第二个操作数的式子不进行计算
-面试题
var a = 10; var b = a < 5 && a++; console.log(a,b);// 10 false
第一个式子是false,第二个式子就不执行了 var c = a < 5 && ++a;
console.log(a,c);// 10 false
或 ||
结果不一定是布尔值
对于逻辑或运算,如果第一个操作数为true或者能隐式转换为true,结果就为第一个操作数,如果第一个操作数为false或者能隐式转换为false,结果就为第二个操作数
-面试题
var a = 10; var d = a < 5 || a++; console.log(a,d);// 11 10 var d = a < 5 ||
++a; console.log(a,d);// 12 12
非 !
非真即假 非假即真 结果为布尔值
++ 自增1
a++
先取值再加1
var a = 10; var b = a++; console.log(a,b);//11 10 var c = 10;
console.log(c++);//10
++a
先加 1 再取值
var val = 5; var num = ++val; console.log(num,val);// 6 6 var num1 = 1;
console.log(++num1);// 2
var d = 10; console.log(d++ + ++d + d + d++ + --d + d--);// 10+12+12+12++12=70
console.log(d);//11
-- 自减1
一元运算符 + - !++ -- (因为+ -可以表示正负)
二元运算符 + - * / % > < >= <= == === != !== && ||
三元运算符 操作数1?操作数2:操作数3 操作数1:条件 操作数2:条件成立时执行的代码 操作数3:条件不成立 时执行的代码
强制(显式)转换
借助转换函数
Number()
String()
Boolean()
parseInt()
parseFloat()
Number()
NaN
console.log(Number("10 11"));//NaN console.log(Number(""));//0
console.log(Number(" "));//0
console.log(Number(true));//1 console.log(Number(false));//0
console.log(Number(undefined));//NaN console.log(Number(null));//0
Boolean()
0
和NaN
转化为false
null
undefined
转化为布尔,全是false
''
串转化为false
parseInt()
NaN
parseFloat()
NaN
console.log(parseFloat("1.1.11"));//1.1 console.log(parseFloat(""));//NaN
console.log(parseFloat(" "));//NaN console.log(parseFloat(null));//NaN
console.log(parseFloat(undefined));//NaN //pareInt的后四个一样