JS中的“&&”与“&”和“||”“|”有什么区别? 请教javascript中||与&&的区别

JS\u4e2d\u7684\u201c&&\u201d\u4e0e\u201c&\u201d\u548c\u201c||\u201d\u201c|\u201d\u6709\u4ec0\u4e48\u533a\u522b\uff1f

\u5728JavaScript\u4e2d\u201c&&\u201d\u548c\u201c||\u201d\u662f\u903b\u8f91\u8fd0\u7b97\u7b26\uff1b\u201c&\u201d\u548c\u201c|\u201d\u662f\u4f4d\u8fd0\u7b97\u7b26\u3002
\u56db\u4e2a\u8fd0\u7b97\u7b26\u4e3b\u8981\u533a\u522b\u662f\u8fd0\u7b97\u65b9\u6cd5\u4e0d\u4e00\u6837\u3002

a.indexOf("@")==-1 \u4e3a\u771f,\u8868\u660e a \u4e2d\u4e0d\u5b58\u5728 @
a.indexOf(".")==-1 \u4e3a\u771f,\u8868\u660e a \u4e2d\u4e0d\u5b58\u5728 .

\u6211\u89c9\u5f97\u4f60\u53ef\u80fd\u8ba4\u4e3a a.indexOf("@")==-1 \u8868\u793a a\u4e2d\u5b58\u5728 @ \u3002

\u4f60\u6d4b\u8bd5\u4ee5\u4e0b\u4ee3\u7801\u5c31\u77e5\u9053\u4e86


//-----------------------------------
//\u6709 @
var str="a@com";
if(str.indexOf("@",0)==-1 && str.indexOf(".",0)==-1){
alert(" &&1 ");
}

if(str.indexOf("@",0)==-1 || str.indexOf(".",0)==-1){
alert(" ||1 ");
}
//----------------------------------
//\u6709 .
var str="a.com";
if(str.indexOf("@",0)==-1 && str.indexOf(".",0)==-1){
alert(" &&2 ");
}

if(str.indexOf("@",0)==-1 || str.indexOf(".",0)==-1){
alert(" ||2 ");
}
//----------------------------------
//\u6709 @ \u548c .
var str="a.@com";
if(str.indexOf("@",0)==-1 && str.indexOf(".",0)==-1){
alert(" && 3");
}

if(str.indexOf("@",0)==-1 || str.indexOf(".",0)==-1){
alert(" || 3");
}
//----------------------------------
//\u6ca1\u6709 @ \uff0c\u4e5f\u6ca1\u6709 .
var str="acom";
if(str.indexOf("@",0)==-1 && str.indexOf(".",0)==-1){
alert(" && 4");
}

if(str.indexOf("@",0)==-1 || str.indexOf(".",0)==-1){
alert(" || 4");
}

在JS“&&”和“||”是逻辑运算符;“&”和“|”是位运算符。

1、运算表达的不同

只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。

JavaScript中的位运算符:“|”运算方法:两个位只要有一个为1,那么结果都为1。否则就为0

2、使用方式的不同

只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

3、运算逻辑的不同

按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;逻辑与:a&&b就是当且仅当两个操作数均为true时,其结果才为true;只要有一个为零,a&&b就为零。

扩展资料

js中的||的使用:

只有前后都是false的时候才返回false,否则返回true;

alert(2||1);//2

前面2是true,后面1也是true,结果是2;

alert('a'||1);//'a'

前面'a'是true,后面1也是true;测试结果是'a';

alert(''||1);//1

前面”是false,后面1是true,而返回结果是1;

alert('a'||0);//'a'

前面'a'是true,而后面0是false,返回结果是'a';

alert(''||0);//0

前面”是false,后面0同样是false,返回结果是0;

alert(0||'');//''

前面0是false,后面”是false,返回结果是”。



在JavaScript中“&&”和“||”是逻辑运算符;“&”和“|”是位运算符。

四个运算符主要区别是运算方法不一样:

1、JavaScript中的位运算符:“&”

运算方法:两个数值的个位分别相与,同时为1才得1,只要一个为0就为0。

举个例子:

31&2  结果为2

理由:31的二进制为11111,2的二进制为10  11111&00010的结果为00010,即2

控制台运行结果:

2、JavaScript中的位运算符:“|”

运算方法:

两个位只要有一个为1,那么结果都为1。否则就为0

举个例子:

31|2 结果为31  31的二进制为11111,2的二进制为10 11111|00010的结果为11111,即31

控制台运行结果:

3、JavaScript中的逻辑运算符“&&”

运算方法:

只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;

只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

例子:1&&3 为3,1&&0为0,控制台运行结果如下:

4、JavaScript中的逻辑运算符“||”

运算方法:

只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。

只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。

例子:3||1为3,3||0为3,0||3为3   控制台运行结果如下:

扩展资料:

在JavaScript逻辑运算中

0、”“、null、false、undefined、NaN都会判为false,其他都为true。

举个例子:null && 1 结果为null

控制台运行结果如下:

JavaScript中的逻辑运算除了&& 和 || 外,还有逻辑非(!)

逻辑非(!)的判断逻辑如下:

如果一个操作数是一个对象,返回false;

如果一个操作数是一个空字符串,返回false;

如果一个操作数是一个非空字符串,返回false;

如果一个操作数是一个数值0,返回true;

如果一个操作数是任意的非零字符,返回false;

如果一个操作数是null,返回true;

如果一个操作数是NaN,返回true;

如果一个操作数是undefined,返回true;



在JavaScript中“&&”和“||”是逻辑运算符;“&”和“|”是位运算符。

1、意思不同:&&是“与”的意思,||是“或者”的意思。  

2、使用上不同:a&&b:a和b同时为true才返回true,否则返回false;a||b:a或b任意一个为true就返回true,否则返回false。  

3、两者都表示运算,但是&&运算符第一个表达式不成立的话,后面的表达式不运算,直接返回。而&对所有表达式都得判断。

扩展资料:

通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

1、是一种解释性脚本语言(代码不进行预编译)。

2、主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。

3、可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。

4、跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。

Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。

参考资料来源:百度百科-javascript



&&和||是逻辑运算的,返回的是boolean值,&和|是位运算的
他们最大的区别是,&& 和|| 是短路的,&和|不是短路的。
var a = 1;
var b = 1;
如if(a>2 && b<2) 和if(a>2 & b<2)
前者只会执行到a>2而b<2是不会执行的,返回false
后者执行a>2还会继续执行b<2,最终返回0

与java不同的是,js中“&&”与“&”、“||”与“|”意思差不多,但还是有点小区别

性能上的比较

逻辑运算符&& || 中,如果&&的第一个运算数是false,就不再考虑第二个运算数,直接返回false;如果||的第一个运算数是true,也不再考虑第二个运算数,直接返回true。而&和|运算符却不是这样的,它们总是要比较两个运算数才得出结果,因而性能上&&和||会比&和|好。

功能用法

&&和||只能进行逻辑运算,而&和|除了可以进行"逻辑运算"外,还可以进行位运算



  • "#"鍦js涓浠h〃浠涔
    绛旓細js閲娌℃湁鐢ㄥ埌鈥#鈥欑殑浠g爜绔紝涓鑸'#'鏄湪jQuery 鏈夌敤鍒帮紝涓鑸敤浜巌d閫夋嫨鍏冪礌浣跨敤銆侸avaScript涓绉嶇洿璇戝紡鑴氭湰璇█锛屾槸涓绉嶅姩鎬佺被鍨嬨佸急绫诲瀷銆佸熀浜庡師鍨嬬殑璇█锛屽唴缃敮鎸佺被鍨嬨傚畠鐨勮В閲婂櫒琚О涓篔avaScript寮曟搸锛屼负娴忚鍣ㄧ殑涓閮ㄥ垎锛屽箍娉涚敤浜庡鎴风鐨勮剼鏈瑷锛屾渶鏃╂槸鍦℉TML锛堟爣鍑嗛氱敤鏍囪璇█涓嬬殑涓涓簲鐢級...
  • js 涓殑鍊兼槸浠涔堟剰鎬,鍙傛暟鍜屽兼湁浠涔堝尯鍒?
    绛旓細楂樹腑鏁板閲岄潰搴旇鏈夊杩噁(x)鐨勫惂锛岃繖閲岄潰f灏辨槸鍑芥暟锛寈灏辨槸鍙傛暟 鏈変簡f(x)锛屽氨鍙互浼犲叆f(0)鎴栬協(1)鏉ユ眰鍊间簡 浣嗘槸js閲岄潰锛屽肩殑鑼冨洿灏辨瘮杈冨箍浜嗭紝鍙互鐢ㄥ彉閲忔潵鎺ユ敹鐨勯兘鏄硷紝NaN鏄硷紝undefined涔熸槸鍊硷紝null锛孖nfinity锛0,1锛宖unction(){}杩欎簺閮芥槸 鐒跺悗鍙傛暟鍜屽肩殑鍖哄埆锛屽湪浜庯紝娌℃湁鍙傛暟鐨勮瘽锛...
  • JS姝e垯琛ㄨ揪寮忎腑鏈夊摢浜涚壒娈婂瓧绗,杩欎簺鐗规畩瀛
    绛旓細11."()"鍖呭惈涓夐噸鐢ㄩ旓細涓鏄畾涔夊瓙琛ㄨ揪寮忋備簩鏄湪瀹屾暣鐨勬ā寮忎腑瀹氫箟瀛愭ā寮忋備笁鏄瓙琛ㄨ揪寮忕殑寮曠敤銆傚瓙妯″紡鐨勫畾涔夊彲浠ヤ粠鐩爣涓蹭腑鎶藉彇鍜屾嫭鍙涓殑瀛愭ā寮忕浉鍖归厤鐨勯儴鍒嗐傚瓙妯″紡鐨勮〃杈惧紡鐨勫紩鐢ㄦ槸鎸囷細鍙瘑鍒瓙妯″紡鐨勭紪鍙凤紝鎻愬彇瀹冦傚/(abc)\sis\s(string\w*)/锛涢噷闈㈠惈鏈変袱涓瓧琛ㄨ揪寮忥細鍙氳繃 \1鎸(abc)锛...
  • 鎬庝箞璋冪敤js鏂囦欢鎬庝箞璋冪敤js鏂囦欢涓殑鏂规硶
    绛旓細1銆侀鍏堣寮曞叆js鏂囦欢2銆佹寚瀹氱殑鍏冪礌璋冪敤js鐨勬柟娉/*涓嬮潰鐨勪緥瀛愭槸JQuery鐨勬柟娉曡皟鐢╡ach閬嶅巻鍑芥暟锛宮ouseenter鍑芥暟锛宖ind鍑芥暟*/3銆佽嚜瀹氫箟鐨勫嚱鏁颁篃鐨勮皟鐢╢unctionshow1(obj){obj.style.background=red }varoDiv=$(#p1);oDiv.mouseover=function(){show1(oDiv);} JS鎬庝箞璋冪敤PHP涓殑鏂规硶锛熷湪js涓璋冪敤php鐨...
  • js 涓濡備綍鏇挎崲瀛楃涓?
    绛旓細JS瀛楃涓叉浛鎹㈠嚱鏁:Replace(鈥滃瓧绗︿覆1鈥, 鈥滃瓧绗︿覆2鈥)锛 1.鎴戜滑閮界煡閬JS涓瀛楃涓叉浛鎹㈠嚱鏁版槸Replace(鈥滃瓧绗︿覆1鈥, 鈥滃瓧绗︿覆2鈥)锛屼絾鏄繖涓嚱鏁板彧鑳藉皢绗竴娆″嚭鐜扮殑瀛楃涓1鏇挎崲鎺夛紝閭d箞鎴戜滑濡備綍鎵嶈兘涓娆℃у叏閮ㄦ浛鎹㈡帀浜嗭紵 var s = "LOVE LIFE 锛 LOVE JAVA ..."; alert(s); al...
  • js涓殑$()鐨勭敤娉
    绛旓細2銆$()鍙互鏄$(element)锛屽嵆涓涓壒瀹氱殑DOM鍏冪礌銆傚甯哥敤鐨凞OM瀵硅薄鏈塪ocument銆乴ocation銆乫orm绛夈傚杩欐牱涓琛屼唬鐮侊細 $(document).find("div>p").html());()涓殑document鏄竴涓狣OM鍏冪礌锛屽嵆鍦ㄥ叏鏂囧鎵惧甫鐨勫厓绱狅紝骞舵樉绀轰腑鐨勫唴瀹广3銆$()鍙互鏄$(function)锛屽嵆涓涓嚱鏁帮紝瀹冩槸$(document).ready(...
  • js涓:鏄粈涔堟剰鎬
    绛旓細涓嬮潰鏄粡杩囨煡璧勬枡鍜屽疄鐜板緱鍑虹殑缁撹锛氫竴銆佷笁鍏冩搷浣滅閲岄潰鐨鍐掑彿 ?: 姣斿锛歛 = expression ? b : c;濡傛灉 expression 涓 true锛屽垯灏 b 璧嬩簣 a锛涘鏋 expression 涓 false锛屽垯灏 c 璧嬩簣 a銆備簩銆佷綔涓轰竴涓璞$殑灞炴э紝 姣斿锛歷ar on = { a:1, b:2 };璇ヨ〃杈惧紡琛ㄧず寤虹珛涓涓璞★紝璇ュ璞″叿鏈変袱...
  • js 涓鏃ユ湡 杞崲鎴愭椂闂存埑 渚嬪2013-08-30 杞崲涓烘椂闂存埑
    绛旓細js涓浼犲叆鎸囧畾鏃ユ湡杞崲涓烘椂闂存埑锛屽彲浠ヤ娇鐢ㄥ師鐢焜avascript鐨凞ate瀵硅薄杩涜鏍煎紡鍖栨搷浣滄垨绗笁鏂筳s搴撳moment.js杩涜鏍煎紡鍖栬緭鍑恒備互涓嬫槸杩2绉嶆柟娉曠殑鍏蜂綋瀹炵幇锛1銆佷娇鐢ㄥ師鐢焜avascript鐨凞ate瀵硅薄锛岃繘琛屾牸寮忓寲 锛1锛夊皢鏃ユ湡瀛楃涓茶浆鎹负Date绫诲瀷鐨勫璞°俵et d = new Date('2018-01-01')锛2锛夎浆鎹负鏃堕棿鎴炽俵et t =...
  • js 涓null 鍜寀ndefined鐨勫尯鍒
    绛旓細鍦╦avascript涓粈涔堟儏鍐靛嚭鐜颁笅闈笁绉嶆儏鍐: null undefined 鈥 鈥濇枃浠1锛歯ull_undefined.html 鏂囦欢2锛歯ull_undefined.js 1 null_undefined.html 銆愯鏂囩珷璇勮涓銆憂ull_undefined.js var test = function(){ alert(window.aiter2008); //寮瑰嚭undefined window绌洪棿涓病鏈塧iter2008杩欎釜鍙橀噺 alert(document.get...
  • js 涓濡備綍鍙栧嚭鏁扮粍涓殑鍊?
    绛旓細闇瑕佸噯澶囩殑鏉愭枡鍒嗗埆鏈夛細鐢佃剳銆乭tml缂栬緫鍣ㄣ佹祻瑙堝櫒銆1銆侀鍏堬紝鎵撳紑html缂栬緫鍣紝鏂板缓html鏂囦欢锛屼緥濡傦細index.html锛岀紪鍐欓棶棰樺熀纭浠g爜銆2銆佸湪index.html涓殑鏍囩锛岃緭鍏js浠g爜锛$('body').append($('#shuz').val());銆3銆佹祻瑙堝櫒杩愯index.html椤甸潰锛屾鏃秙huz鏁扮粍涓殑鍊艰鎴愬姛鐢╦s鍙栧嚭鎵撳嵃浜嗗嚭鏉ャ
  • 扩展阅读:韩国macbookpro ... air jordan 1 ... www.sony.com.cn ... 718娱乐爆料 ... matebook14 ... js中${} ... macbook pro m1 ... js引入js ... javascript ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网