• JavaScript中涉及得运算符以及运算符的优先级


    在js中主要有三种运算符:算术运算符,逻辑与比较运算符,位运算符。在着三种运算符中,最常见的应该是算术与比较运算符,位运算符比较少见一些
    *说到了运算符,就不得不说运算符的优先级。下面我来列一下这些运算符的优先级(优先级排列由高到低):
    					( )	     *		括号
    				!、-、++、--		* 		逻辑运算符NOT、算术运算符的符号、递增和递减
    				*、/、%			*      算术运算符的乘、除法和求余数
    				+、-		     *      算术运算符的加法和减法
    				<<、>>、>>>、		*      位运算符左移、右移、无符号右移
    				>、>=、<、<=		*      比较运算符大于、大于等于、小于和小于等于
    				==、!=			*		比较运算符等于和不等于 
    				&			*		位运算符AND 
    				^			*		位运算符XOR 
    				|			*		位运算符OR 
            			&&			*		逻辑运算符AND 
    				||			*		逻辑运算符OR 
    				?:			*		条件运算符(三元表达式中常用) 
    				=、op=			* 		赋值运算符
    														* 
    						
    						*上面是三种运算符在js中优先级。由此我们可以确定的一点是:赋值运算的优先级最低,这个小点挺重要的。
    						*
    						*说一下算术运算符:
    						* 	
    						*		-			负号
    						* 		++			递增运算、
    						* 		--			递减运算
    						* 		*			乘法
    						* 		/			除法
    						* 		%			求余数
    						* 		+			加法或字符串连接
    						* 		-			减法
    						* 
    						*递增和递减可以放在变量前面或者后面,放在前面则会立即改变变量;放在变量后面则会在运行表达式之后才改变。
    						* 
    						*然后是逻辑与比较运算符:
    						* 
    						*比较运算符:
    						* 		==			等于
    						* 		!=			不等于
    						* 		<			小于
    						* 		>			大于
    						* 		<			小于等于
    						* 		>=			大于等于
    						* 		
    						*逻辑运算符:
    						* 		!			NOT非,返回操作数相反的值,true成false,false成true
    						* 		&&			AND与,连接的两个操作数都为true,表达式结果位true
    						* 		||			OR或,连接的两个操作数,任何一个位true,表达式结果为true
    						* 	
    						*最后是位运算符:
    						* 	关于位运算符,我的接触不多。项目中基本没有接触过,但是本身自己看书时候,接触了一些。我写的关于位运算的东西,
    						*如果有不对的地方,希望各位进行指正。
    						*	JavaScript支持位运算符,通过这些运算符能够进行二进制值的运算。首先来列举一下这些位运算符:
    						* 		~			NOT运算
    						* 		<<			左移运算
    						* 		>>			右移运算
    						* 		>>>			无符号右移	
    						* 		&			AND运算
    						* 		^			XOR运算
    						* 		|			OR运算
    						* 
    						*稍微的解释一下:
    						* 	
    						* 	<<:左移运算,赋值A=3,A的二进制为11B,则A<<2=1100B,换算成10进制也就是12.
    						* 	>>:右移运算,赋值C=2,C的二进制为10B,则C>>1=1B,换算成10进制,也就是1.
    						* 	>>>:无符号右移运算,赋值D=6,D的二进制也就是1000B,D>>>2=0010,换算成10进制也就是2.
    						* 	上面三种位运算都用于高度优化的代码,很难遇到。
    						* 	~:NOT运算,赋值  E=1,E的二进制为01B,则~E=-2;这种运算说白了就是对数字求负然后减1,这种规律适用于10进制。
    						* 	&:AND运算,赋值  F=3,G=10,F的二进制为11B,G的二进制为1010,在进行AND判断时,最直观的方式就是上下排列,例如
    						* 		F:0000011
    						* 		G:0001010
    						* 	      结果:0000010//2
    						* 	运算的规律为:	1对1,得1
    						*				1对0,得0
    						* 				0对0,得0
    						* 
    						* 	^:XOR运算,赋值  H=13,I=7,H得二进制为1101B,I得二进制为111,上下排列
    						* 		H:1101
    						* 		I:0111
    						* 	  结果为:1010//10
    						* 	运算规律为:	1对1,得0
    						* 				1对0,得1
    						* 				0对0,得0
    						* 	
    						* 	|:OR运算,赋值 J=14,K=18,J得二进制为1110,K得二进制为10010,上下排列
    						* 		J: 	01110
    						* 		K:	10010
    						* 	  结果为:	11110//30
    						* 		
    						*本来想把运算过后进行得隐式转换也写出来得,但是想一想下次写数据类型及转换得时候写出来比较好。
    						*如果我有哪里写错了,希望您指出,我会改正。这些东西也许对你来说很简单,但是路是一步步走的,慢慢来,不急。
    						* 
    						* 
    						* */
    

      

      

  • 相关阅读:
    基本算法 st
    winServer服务器设置多用户同时远程访问!
    类的实例化顺序
    基于layui的数据列表展示数据中template的作用。使得日期等数据符合预期进行展示
    基于layui的laydate,在加载后台数据时laydate.render()不起作用。
    微信企业号两种常用搜索加载方式
    Docker搭建私有仓库registry
    第7章 Dockerfile详解
    第6章 docker数据管理
    第5章 Docker的四种网络模式
  • 原文地址:https://www.cnblogs.com/qishuaishuai/p/7890525.html
Copyright © 2020-2023  润新知