JavaScript——操作符

本文详细讲解了JavaScript中的算数操作符如赋值、加减乘除、比较操作符的规则,包括类型转换,逻辑运算符的使用以及条件分支、循环和位运算。还介绍了流程结构与控制语句,如if-else、switch-case和各种循环结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

10、操作符

○ 算数操作符:
	=:赋值操作符 从右向左赋值
		var a=10;

	+ +=:
		+:
			a+b:
			1.如果两个变量均为number类型,直接相加
			2.如果两个变量均为非number类型,并且均不为string类型,也不为object类型
				null undefined boolean 
				直接转换为number类型进行相加(Number())
			3.如果其中一个值为string类型,另一个不为object类型,直接进行字符串拼接	
				10+"10"=1010

			4.如果其中一个值为object类型,
			另一个值不为string类型:
				10+{
				}
				默认调用{}的tostring()
			另一个值为string类型:
				"10"+{}=10[object Object]
			如果只重写了toString():
				调用tostring()
			如果只重写valueof():
				 调用valueof
			如果既toString()有valueof():
				valueof()

		+=:
			a+=2 -> a=a+2;
	- -=:
		-:
			a-b:
		-=
			a-=4->a=a-4
	* *=
			a*=4->a=a*4
	/ /=
	% %=
○ 比较操作符(返回值均为boolean)
	§ >:
		□ a>b:
			® num:num——》直接比较
			® 非number(不为string):num——》将非number转换为number进行比较
			® 非num:非num——》转为number
			® string:string——》比较字符编码
			® num:obj——》
				默认情况下调用tostring()
				如果只tostring(),调用tostring()
				如果只valueof(),调用valueof()
				如果既重写了tostring,又重写了valueof,调用valueof()
			
		
	§ <:
	§ >=:
	§ <=:
	§ ==:
		□ 先进行数据类型转换,再进行比较
		□ null==null	true
		undefined==null	true
		undefined==undefined	true
		NaN==NaN	false
		“10” == 10	true
	§ ===:
		□ 全等操作符
		□ 先进行数据类型的比较,数据类型相同,再比较值
		□ 如果数据类型不同,直接返回false

		null === undefined	//false
		“10” === 10	//false
		obj === obj	比较引用地址
		

○ 逻辑操作符
	§ &&:
		□ a&&b:
			转为Boolean的结论:同真才真,有假则假
			a、如果第一个数为false、""、null、undefined、nan能够转换为false的值,则返回第一个数
			b、如果第一数不返回false,则返回第二个数
	
	§ ||:逻辑或
		□ 结论:有真则真,同假才假
		□ 1.如果第一个数为null/undefined/false/“”/nan->返回第二个数
		□ 2.如果第一个不为上述值,返回第一个数
	
	
	§ !:逻辑非
		□ !null
		□ 1.将null转换为boolean
			® Boolean()
		□ 2.取反

		结果一定为boolean类型

		□ 对一个变量,连用两次逻辑非,相当于将当前变量转换为boolean类型
		!!null:false
	
○ 三目运算符
	§ a>b?console.log(a):console.log(b)

	表达式?成立:不成立
	if(a>b){
		//成立
	}else{
		//不成立
	}

○ 一元运算符
	§ +:
		+a:
			相当于调用了Number(a)
	§ -:
		-a
			:-Number(a)
	§ ++:
		□ a++:a=a+1
			先进行变量操作,再进行++
		□ ++a:a=a+1
			先进行++操作,再进行变量操作
	§ --:
		a--:
			a=a-1
		--a:
			a=a-1
		var b = 4;
	        c = b--;        //第一个b是第三方的b
	        console.log(b);     //4
	        console.log(c);
			

○ 位运算
	§ js中32位2进制
		□ 原码-》反码-〉补码
	
		□ 正数:
			® 原码=反码=补码

		□ 负数:
			® 反码=原码的符号位不变,其他位取反
			® 补码=反码+1

		□ ....128 64 32 16 8 4 2 1
		-3+4:
		-3:
			1000 0011:原码
	
			1111 1100:反码
					1
			------------
			1111 1101:补码
		4:
			0000 0100:源码=补码
	
		sum:
			1111 1101
			0000 0100
			-----------
			补:0000 0001=原


流程结构:
	顺序结构
	分支结构
	循环结构

○ 条件分支语句
	if(表达式boolean){
		//true
	}

	.....

	if(a>b){
		//true
	}else{
		//false
	}

	if(){

	}else if(){

	}else if(){

	}else if(){

	}else{

	}
	
	
	
	switch case
	switch语句中的判断使用的是===
	switch(变量/表达式){
		case key:
			//
			break
		case key:
			//
			break
		default:
			如果写在第一行,一定要+break

	}

	§ break:
		跳出循环体
	§ continue:
		跳出本次循环,继续进行下一次循环
	
	
	
○ 循环语句
	§ 循环三要素:
		初始条件;结束条件;迭代条件
	§ 1、前置条件循环语句
		for(初始条件;结束条件;迭代条件){
			//循环体
		}

	死循环:
		for(;;){}

	label语句:
		标示循环的名称
		
	while和do…while一般用来解决无法确认;for循环一般在循环次数确定的时候比较方便
	
	
	with(){}
		var obj= {
			name:"lisi",
			age:20,
			gender:'men'
		}
		
		console.log(obj.name);
		console.log(obj.age);
		console.log(obj.gender);
		
		with(obj){
			console.log(name);
			console.log(age);
		}

	§ 2、后置条件循环语句
		循环体至少执行一次
		初始条件;
		do{
			//循环体
			//迭代条件
		}while(结束条件)

	§ 增强for循环:
		for in循环
		主要用来循环对象
		var obj={
			name:'lisi',
			age:20,
			gender:'men'
		}

		for(var key in obj){
			key:属性名
			obj[key]:属性值
			
			循环体
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值