Skip to content

1.算术运算符

隐式类型转换

除了加法和其他字符串运算时,它先将其他值转为字符串,在进行拼接;其他运算它先将其他值转为数字,在进行运算

js
a = 10 - '5' //5
a = 10 - true // 9
a = 10 - false //10
a = 10 - undefined // NaN
a = 10 - null // 10

2.赋值运算符

js
let a = 10
a = a + 10 // a += 10  (*= 	/=   %=		**=)
//	??= 只有当a为undefined或null才会进行赋值

3..运算符

js
+'123' // 123
a = 123
b = -a //-123

4.自增和自减

js
//	++ 使用后回事原来的变量立刻增加1
a++
a--

//前自增:返回自增前的值
//后自增:返回自增后的值

5.逻辑运算符

js
!   //逻辑非:对布尔值值取反,对非布尔值值取反,会先将其转为布尔值值再取反,可运用于隐式转布尔值   !!123 -> true
    
&&  //逻辑与:左右都为true返回true,否则返回false;非布尔值运算,会先转为布尔值后运算,但是最终返回原值
    	//-	第一个值为(falsy),则直接返回第一个值的原值1,如果第一个值为ture,则直接返回第二个值
    	NaN && 2	-> NaN
		0 && 1 		-> 0

        1 && undefined	->	undefined
        1 && false 		->	false

||  //逻辑或:左右有true,则不看第二个值,则返回true的原值,否则返回false 	
      	12 || false		->	 12	
		null || {a : 1}	->	 {a : 1}

6.关系运算符

js
//用来检查两个值的关系是否成立,成立返回true,否则返回false (多个比较用&&)
	>	>=	<	<=
// 非数值与数值比较会先非数值转为数值再比较  7 < '10' ->  true
//	两端为字符串则逐个比较字符的Unicode编码	 
   'a' > 'b' -> false		
   'abc' < 'b' -> true(比完第一位则结束)
   '12' < '2'	-> true

7.相等运算符

js
==/!=	//用来比较两个值是否相等/不相等,不同类型会转为相同类型再比较	
    '2' == 2	-> true
	//null和undefined进行相等比较会返回true(null == undefined -> true)
	//NaN不和任何值相等,包括它自身
===/!== //检查两个值是否全等/不全等,不会自动类型转换
    '2' == 2	-> false
	//null === undefined -> false

8.条件运算符

js
表达式 ? 表达式1 : 表达式2	//let max = a > b ? a : b

9.控制语句

js
if{	}else if(){	}else{	}
if //不加{}if只会控制紧随其后的一条语句
 
switch(表达式){
    case 表达式:
        break
        ...
    default
        ...
        //表达式进行全等比较,满足则执行代码,否则比较其他case后的表达式
}

10.循环语句

js
//循环三要素 1.初始化变量	2.条件表达式	3.更新表达式
while(条件表达式){...}
do{	...	}while(表达式)	//先执行一次循环体,再判断条件是否执行循环体
for(let i = 0;i < 10;i++){ ... } //for(;;)死循环

break与continue:broken_heart:终止离它最近的循环, break立即循环停止; continue跳过当前循环,继续下一次循环

11.数据类型

js
//原始值(7种):
	Number,String,Boolean,Null,Undefined,BigInt,Symbol
//引用值(对象)
	Object
    {
        [Symbol()]:'此值不可枚举'
    }

用心去做高质量的内容网站,欢迎 star ⭐ 让更多人发现