javascript運算,javascript運算符優(yōu)先級

javascript運算符

javascript具有下列種類的運算符:算術(shù)運算符;等同運算符與全同運算符;比較運算符; 2、目的分類:字符串運算符;邏輯運算符;逐位運

創(chuàng)新互聯(lián)建站是專業(yè)的鄖西網(wǎng)站建設(shè)公司,鄖西接單;提供成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行鄖西網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

1、javascript具有下列種類的運算符:算術(shù)運算符;等同運算符與全同運算符;比較運算符;2、目的分類:字符串運算符;邏輯運算符;逐位運算符;賦值運算符;3、特殊運算符:條件運算符;typeof運算符;創(chuàng)建對象運算符new;delete運算符;void運算符號;逗號運算符;算術(shù)運算符:+ 、 - 、* 、 / 、 % 、 -(一元取反) 、 ++ 、等同運算符與全同運算符:== 、 ===、 !== 、 !===比較運算符: 、 、 = 、 =字符串運算符:: 、 、 = 、 = 、 = 、 +邏輯運算符: 、 、 !、賦值運算符:=、 +=、 *=、 -=、 /=規(guī)則:一、一定要注意傳遞給運算符的數(shù)據(jù)類型和返回的數(shù)據(jù)類型!不同的運算符都期望它的運算數(shù)表達式計算出的結(jié)果符合某種數(shù)據(jù)類型。例如:對字符串是不能進行乘法運算的,"a" * "b" 是不合法的,但是,在可能的情況下,javascript會把表達式轉(zhuǎn)換成正確的類型,因此,表達式 "3" * "5" 是合法的,javascript將字符串轉(zhuǎn)換成數(shù)字執(zhí)行運算,結(jié)果返回的是數(shù)字15,而不是字符串"15"。二、+ 根據(jù)運算數(shù)的不同,具有不同的表現(xiàn):字符串 + 字符串 = 字符串(被連接);"a" + "b" = "ab" "5" + "6" = "11"字符串 + 數(shù)字 = (字符串轉(zhuǎn)換成數(shù)字)字符串(被連接);"a" + 5 = "a5" 5被轉(zhuǎn)換成字符串 "1" + 0 = "10"數(shù)字 + 數(shù)字 = 數(shù)字(相加)5 + 5 = 10。三、注意運算符的結(jié)合性,有些運算符從左到右的結(jié)合性;有些從右到左結(jié)合性。例如:w = a + b + c 等同于 w = (a + b) + c;w = -b 等同于 w = - ( - ( -b ) ); w = a = b = c 等同于 w= ( a = ( b = c ))一元運算符、賦值運算符、三元運算符的結(jié)合性是從右到左的;四、算術(shù)運算符規(guī)則:“+”:可以進行“加法”與“連接”運算;如果2個運算符中的一個是字符串,javascript就將另一個轉(zhuǎn)換成字符串,然后將2個運算數(shù)連接起來?!?”:如果一個運算數(shù)是對象,javascript就會將對象轉(zhuǎn)換成數(shù)字做加法運算或者字符串做連接運算;“-”“*”“/” 如果2個運算數(shù)中的一個是是非數(shù)字,則將它轉(zhuǎn)化成數(shù)字執(zhí)行數(shù)學(xué)運算。“/” 在javascript中,由于所有的數(shù)都是浮點數(shù),除法的結(jié)果都是浮點數(shù),5 / 2 = 2.5 ;除數(shù)為0的結(jié)果為正負(fù)無窮;0/0為NaN;“%”模運算符:計算第一個運算數(shù)對第二個運算數(shù)的模,就是第一個運算數(shù)被第二個運算數(shù)除時,返回余數(shù)。如果運算數(shù)是非數(shù)字的,則轉(zhuǎn)換成數(shù)字?!?”一元取反:將運算數(shù)取反,如果運算數(shù)不是數(shù)字,則轉(zhuǎn)化成數(shù)字?!?+”“”增量運算符/減量運算符號:運算數(shù)必須是一個變量、樹組的一個元素或?qū)ο蟮囊粋€屬性。如果運算數(shù)不是數(shù)字,則轉(zhuǎn)換成數(shù)字。注意:如果“++”位于運算數(shù)之前,先對運算數(shù)進行增量,然后計算運算數(shù)增長后的值。如果“”位于運算數(shù)之后,先計算運算數(shù)未增長之前的值,然后對運算數(shù)增量。例如:i = 1; //賦值給i值1j = ++i; //先將i增量為2,然后將2賦值給j,i的值是2,j的值也是2。i = 1; //賦值給i值1j = i++; //先將i賦值給j,然后對將i值增量到2,i的值是2,j的值是1。減量運算符“”與“++”相同。五、等同運算符與全同運算符:(一)“==”“!==”等同運算符與非等同運算符:比較2個運算數(shù),返回一個不布爾值。比較數(shù)值、字符串、布爾值使用的都是量值。當(dāng)且僅當(dāng)兩個變量存放的值相等的時候,他們才相等。比較對象、數(shù)組、函數(shù)的時候,使用的是引用,只有2個變量引用的是同一個對象時,他們才是相等的。兩個不同的數(shù)組是完全不同的,即使他們具有完全相同的元素。對于存放對象、數(shù)組、函數(shù)的引用的變量來說,只有當(dāng)他們引用的是同一個對象、數(shù)組、函數(shù)的時候,他們才相等。

注意!應(yīng)遵循的原則:當(dāng)兩個運算數(shù)的類型不同時:將他們轉(zhuǎn)換成相同的類型,1)一個數(shù)字與一個字符串,字符串轉(zhuǎn)換成數(shù)字之后,進行比較。2)true轉(zhuǎn)換為1、false轉(zhuǎn)換為0,進行比較。3)一個對象、數(shù)組、函數(shù) 與 一個數(shù)字或字符串,對象、數(shù)組、函數(shù)轉(zhuǎn)換為原始類型的值,然后進行比較。(先使用valueOf,如果不行就使用toString)4)其他類型的組合不星等。想兩個運算數(shù)類型相同,或轉(zhuǎn)換成相同類型后:1)2個字符串:同一位置上的字符相等,2個字符串就相同。2)2個數(shù)字:2個數(shù)字相同,就相同。如果一個是NaN,或兩個都是NaN,則不相同。3)2個都是true,或者2個都是false,則想同。4)2個引用的是同一個對象、函數(shù)、數(shù)組,則他們相等,如果引用的不是同一個對象、函數(shù)、數(shù)組,則不相同,即使這2個對象、函數(shù)、數(shù)組可以轉(zhuǎn)換成完全相等的原始值。5)2個null,或者2個都是未定義的,那么他們相等?!?=”非等同運算符:與等同運算符檢測的結(jié)果相反。(二)“===”“!===”全同運算符與非全同運算符號:全同運算符遵循等同運算符的比較規(guī)則,但是它不對運算數(shù)進行類型轉(zhuǎn)換,當(dāng)兩個運算數(shù)的類型不同時,返回false;只有當(dāng)兩個運算數(shù)的類型相同的時候,才遵循等同運算符的比較規(guī)則進行比較?!?==”非全同運算符與全同運算符比較的結(jié)果相反。如果兩個運算數(shù)的類型或者值不同的時候,返回true。六、比較運算符:這些比較運算符用于比較不同類型的值,結(jié)果返回一個布爾值。“”“”“=”“=”注意規(guī)則:比較的運算數(shù)可以是任意類型的,但是只能在數(shù)字和運算數(shù)上執(zhí)行。不是數(shù)字和字符串的運算數(shù)將被轉(zhuǎn)換成數(shù)字或字符串。1)如果兩個運算數(shù)都是數(shù)字,或者都可以轉(zhuǎn)換成數(shù)字,則按照數(shù)字的大小進行比較;2)如果兩個運算數(shù)都是字符串,或者都可以轉(zhuǎn)換成字符串,則將按照字母順序進行比較;3)如果字符串遇到數(shù)字,則將字符串轉(zhuǎn)換成數(shù)字進行比較。4)如果運算數(shù)既不能轉(zhuǎn)換成數(shù)字,也不能轉(zhuǎn)換成字符串,則返回結(jié)果false。七、字符串運算符:并沒有專用的字符串運算符,只是有些運算符在遇到字符串運算數(shù)的時候,表現(xiàn)不同。(一)“+”連接2個字符串;1)當(dāng)2個運算數(shù)都是字符串的時候,連接起來;2)當(dāng)其中有一個是數(shù)字的時候,將數(shù)字轉(zhuǎn)換成字符串,連接起來;(二)“”這樣的比較運算符通過比較確認(rèn)兩個字符串的順序,比較采用字符的順序,較小的位于教大的前面,大寫字母位于小寫字母之前。(三)“+”的作用方法取決于計算順序,如:s = 1 + 2 +"var" 則:返回結(jié)果3var; 因為先計算1+2,然后將結(jié)果3轉(zhuǎn)換成字符串與"var"連接;如:s = "var" + 1 + 2 則:返回結(jié)果var12; 因為先計算var與1的連接,在將結(jié)果var1與轉(zhuǎn)換成字符串的2連接起來。八、邏輯運算符:用于執(zhí)行布爾運算,常常和比較運算符一起使用,來表示復(fù)雜的比較運算?!啊?邏輯與運算、“”邏輯或運算符、“!”邏輯非運算符(一)“”當(dāng)兩個運算數(shù)都是布爾值的時候,邏輯與對他們進行and操作,即:當(dāng)且僅當(dāng)兩個布爾值都是true的時候,返回結(jié)果true,否則返回false。注意:實際表現(xiàn)“”將檢測第一個表達式運算數(shù)布爾值,如果第一個運算數(shù)表達式返回false,則返回左邊第一個運算數(shù)表達式的值:false;否則將繼續(xù)檢測第二個即右邊的運算數(shù)表達式,然后返回第二個運算數(shù)表達式的值;例如:if (a = b) stop(); 與 (a = b) stop(); 等價不贊成使用這個方法,因為運算符右邊的代碼不能保證會被執(zhí)行,例如:if ((a b) (b++ 10) ) stop();如果運算符右邊的增量必須的話,卻有可能由于前面的返回值而不被執(zhí)行,一般反對在的右邊使用具有其他作用的表達式(賦值、函數(shù)調(diào)用、增減量);將“”看作是一個布爾代數(shù)的運算符,會更簡單與安全。(二)“”當(dāng)兩個運算數(shù)都是布爾值的時候,邏輯或?qū)λ麄冞M行or操作,即:當(dāng)兩個布爾值有一個是true的時候,返回結(jié)果true,否則返回false。注意:實際表現(xiàn)“”將檢測第一個表達式運算數(shù)布爾值,如果第一個運算數(shù)表達式返回true,則返回左邊第一個運算數(shù)表達式的值:true;否則將繼續(xù)檢測第二個即右邊的運算數(shù)表達式,然后返回第二個運算數(shù)表達式的值;同樣不贊成使用這個方法,因為運算符右邊的代碼不能保證會被執(zhí)行,一般反對在的右邊使用具有其他作用的表達式(賦值、函數(shù)調(diào)用、增減量);將“”看作是一個布爾代數(shù)的運算符,會更簡單與安全。(三)“!”邏輯非是一個一元運算符,放在運算數(shù)之前,它的目的是對運算數(shù)取反。九、賦值運算符:(一)“=”是賦值運算符;他總是期望左邊的運算數(shù)是一個變量、數(shù)組的一個元素或?qū)ο蟮囊粋€屬性;期望右邊是一個任意類型的任意的值;從右到左的結(jié)合性,如果一個表達式中有多個賦值運算符,則從最右邊開始計算。注意:每一個賦值表達式都有一個值,就是運算符右邊的值;(二)可以使用帶操作的賦值運算“+=” 左邊的值加上右邊的值后,賦值于左邊的值。“-=”“/=”“*=”方法一樣;十、其他運算符:“?:”條件運算符是唯一的一個三元運算符;一個表達式的布爾結(jié)果?表達式1(任意類型的任意值):表達式2(任意類型的任意值);根據(jù)第一個運算數(shù)的布爾值結(jié)果,如果為true,則執(zhí)行第二個運算數(shù)表達式,返回第二個運算數(shù)表達式的值;如果第一個運算數(shù)的布爾值結(jié)果是false,則執(zhí)行第三個運算數(shù)表達式,返回第三個運算數(shù)表達式的值。

移位運算符面向的運算對象也是二進制的“位”??蓡为氂盟鼈兲幚碚麛?shù)類型(主類型的一種)。左移位運算符()能將運算符左邊的運算對象向左移動運算符右側(cè)指定的位數(shù)(在低位補0)。“有符號”右移位運算符()則將運算符左邊的運算對象向右移動運算符右側(cè)指定的位數(shù)。“有符號”右移位運算符使用了“符號擴展”:若值為正,則在高位插入0;若值為負(fù),則在高位插入1。Java也添加了一種“無符號”右移位運算符(),它使用了“零擴展”:無論正負(fù),都在高位插入0。這一運算符是C或C++沒有的。

若對char,byte或者short進行移位處理,那么在移位進行之前,它們會自動轉(zhuǎn)換成一個int。只有右側(cè)的5個低位才會用到。這樣可防止我們在一個int數(shù)里移動不切實際的位數(shù)。若對一個long值進行處理,最后得到的結(jié)果也是long。此時只會用到右側(cè)的6個低位,防止移動超過long值里現(xiàn)成的位數(shù)。但在進行“無符號”右移位時,也可能遇到一個問題。若對byte或short值進行右移位運算,得到的可能不是正確的結(jié)果(Java 1.0和Java 1.1特別突出)。它們會自動轉(zhuǎn)換成int類型,并進行右移位。但“零擴展”不會發(fā)生,所以在那些情況下會得到-1的結(jié)果??捎孟旅孢@個例子檢測自己的實現(xiàn)方案:

//: URShift.java

// Test of unsigned right shift

public class URShift {

 public static void main(String[] args) {

int i = -1;

i = 10;

System.out.println(i);

long l = -1;

l = 10;

System.out.println(l);

short s = -1;

s = 10;

System.out.println(s);

byte b = -1;

b = 10;

System.out.println(b);

 }

} ///:~

移位可與等號(=或=或=)組合使用。此時,運算符左邊的值會移動由右邊的值指定的位數(shù),再將得到的結(jié)果賦回左邊的值。

下面這個例子向大家闡示了如何應(yīng)用涉及“按位”操作的所有運算符,以及它們的效果:

//: BitManipulation.java

// Using the bitwise operators

import java.util.*;

public class BitManipulation {

 public static void main(String[] args) {

Random rand = new Random();

int i = rand.nextInt();

int j = rand.nextInt();

pBinInt("-1", -1);

pBinInt("+1", +1);

int maxpos = 2147483647;

pBinInt("maxpos", maxpos);

int maxneg = -2147483648;

pBinInt("maxneg", maxneg);

pBinInt("i", i);

pBinInt("~i", ~i);

pBinInt("-i", -i);

pBinInt("j", j);

pBinInt("i j", i j);

pBinInt("i | j", i | j);

pBinInt("i ^ j", i ^ j);

pBinInt("i 5", i 5);

pBinInt("i 5", i 5);

pBinInt("(~i) 5", (~i) 5);

pBinInt("i 5", i 5);

pBinInt("(~i) 5", (~i) 5);

long l = rand.nextLong();

long m = rand.nextLong();

pBinLong("-1L", -1L);

pBinLong("+1L", +1L);

long ll = 9223372036854775807L;

pBinLong("maxpos", ll);

long lln = -9223372036854775808L;

pBinLong("maxneg", lln);

pBinLong("l", l);

pBinLong("~l", ~l);

pBinLong("-l", -l);

pBinLong("m", m);

pBinLong("l m", l m);

pBinLong("l | m", l | m);

pBinLong("l ^ m", l ^ m);

pBinLong("l 5", l 5);

pBinLong("l 5", l 5);

pBinLong("(~l) 5", (~l) 5);

pBinLong("l 5", l 5);

pBinLong("(~l) 5", (~l) 5);

 }

 static void pBinInt(String s, int i) {

System.out.println(

 s + ", int: " + i + ", binary: ");

System.out.print("  ");

for(int j = 31; j =0; j--)

 if(((1 j)  i) != 0)

System.out.print("1");

 else

System.out.print("0");

System.out.println();

 }

 static void pBinLong(String s, long l) {

System.out.println(

 s + ", long: " + l + ", binary: ");

System.out.print("  ");

for(int i = 63; i =0; i--)

 if(((1L i) l) != 0)

System.out.print("1");

 else

System.out.print("0");

System.out.println();

 }

} ///:~

程序末尾調(diào)用了兩個方法:pBinInt()和pBinLong()。它們分別操作一個int和long值,并用一種二進制格式輸出,同時附有簡要的說明文字。目前,可暫時忽略它們具體的實現(xiàn)方案。

大家要注意的是System.out.print()的使用,而不是System.out.println()。print()方法不會產(chǎn)生一個新行,以便在同一行里羅列多種信息。

除展示所有按位運算符針對int和long的效果之外,本例也展示了int和long的最小值、最大值、+1和-1值,使大家能體會它們的情況。注意高位代表正負(fù)號:0為正,1為負(fù)。下面列出int部分的輸出:

-1, int: -1, binary:

  11111111111111111111111111111111

+1, int: 1, binary:

  00000000000000000000000000000001

maxpos, int: 2147483647, binary:

  01111111111111111111111111111111

maxneg, int: -2147483648, binary:

  10000000000000000000000000000000

i, int: 59081716, binary:

  00000011100001011000001111110100

~i, int: -59081717, binary:

  11111100011110100111110000001011

-i, int: -59081716, binary:

  11111100011110100111110000001100

j, int: 198850956, binary:

  00001011110110100011100110001100

i j, int: 58720644, binary:

  00000011100000000000000110000100

i | j, int: 199212028, binary:

  00001011110111111011101111111100

i ^ j, int: 140491384, binary:

  00001000010111111011101001111000

i 5, int: 1890614912, binary:

  01110000101100000111111010000000

i 5, int: 1846303, binary:

  00000000000111000010110000011111

(~i) 5, int: -1846304, binary:

  11111111111000111101001111100000

i 5, int: 1846303, binary:

  00000000000111000010110000011111

(~i) 5, int: 132371424, binary:

  00000111111000111101001111100000

數(shù)字的二進制形式表現(xiàn)為“有符號2的補值”。

javascript取模運算是怎么算的?

javascript取模運算是一個表達式的值除以另一個表達式的值,并返回余數(shù)。

取模在js里就是取余數(shù)的意思。

a%b ?//是求余數(shù);

a/b ?//是求商;

Math.abs(x) ? //是求x的絕對值;

12除以5=2,余數(shù)是2,即5*2+2=12,所以12%5=2

7除以3=2,余數(shù)是1,即3*2+1=7,所以7%3=1

擴展資料:

取模運算(“Modulo Operation”)和取余運算(“Complementation ”)兩個概念有重疊的部分但又不完全一致。主要的區(qū)別在于對負(fù)整數(shù)進行除法運算時操作不同。取模主要是用于計算機術(shù)語中。取余則更多是數(shù)學(xué)概念。

模運算在數(shù)論和程序設(shè)計中都有著廣泛的應(yīng)用,從奇偶數(shù)的判別到素數(shù)的判別,從模冪運算到最大公約數(shù)的求法,從孫子問題到凱撒密碼問題,無不充斥著模運算的身影。雖然很多數(shù)論教材上對模運算都有一定的介紹,但多數(shù)都是以純理論為主,對于模運算在程序設(shè)計中的應(yīng)用涉及不多。

參考資料:百度百科-取模運算

參考資料:百度百科-JavaScript

javascript的運算符+=?

加法

賦值運算符

(+=)將

變量值

與表達式值相加,并將和賦給該變量result

+=

expression

參數(shù)result任何變量。expression任何表達式。說明使用本運算符與這樣指定完全相同:result

=

result

+

expression表達式中加下劃線的子類型決定+=運算符的操作。如果那么兩個表達式都是數(shù)字或Boolean量加兩個表達式都是字符串連接一個表達式是數(shù)字而另一個是字符串。

javascript如何做加減運算??

方法只有一種:

直接使用減號運算符進行減法運算

舉例:

var?a=2;

var?b=1;

var?c=a-b;//這里通過減號運算符進行減法運算

javascript中運算符有哪些

運算符是完成操作的一系列符號,在javascript中有賦值去運算符,算術(shù)運算符,字符串去處符,邏輯運算符,比較運算符,條件運算符及位運算符,(其中位去處符幾乎很少用到,也已超出我們介紹的內(nèi)容).

1.賦值運算符

賦值運算符通常被用于在一個表達式中進行賦值,如example="this

is

a

book";其中"="就是一個賦值運算符.

2.算術(shù)運算符

javascript中的算術(shù)運算符有雙目運算符和單目運算符.

標(biāo)準(zhǔn)的雙目運算符有五種:+(加),-(減),*(乘),/(除),%(取模)

3.比較運算符

比較運算符的基本操作過程是,首先對它的操作數(shù)進行比較,然后再返回一個true或false值.

4.邏輯運算符

主要將布爾值作為操作數(shù),而且同比較去處符一樣,也返回布爾值.

5.字符串運算符

字符串運算符為+,主要用于兩個字符串的組合,例如"this

is

"+"book"

//結(jié)果為"this

is

book"

6.條件運算符

條件運算符與前面介紹過的運算符有所不同,因為條件表達式會根據(jù)條件計算出一個或兩個不同的值,其結(jié)構(gòu)為(條件)?結(jié)果1:結(jié)果2。望采納。

JavaScript里面運算符有哪些?

運算符是完成操作的一系列符號,在javascript中有賦值去運算符,算術(shù)運算符,字符串去處符,邏輯運算符,比較運算符,條件運算符及位運算符,(其中位去處符幾乎很少用到,也已超出我們介紹的內(nèi)容).

1.賦值運算符

賦值運算符通常被用于在一個表達式中進行賦值,如example="this

is

a

book";其中"="就是一個賦值運算符.

2.算術(shù)運算符

javascript中的算術(shù)運算符有雙目運算符和單目運算符.

標(biāo)準(zhǔn)的雙目運算符有五種:+(加),-(減),*(乘),/(除),%(取模)

3.比較運算符

比較運算符的基本操作過程是,首先對它的操作數(shù)進行比較,然后再返回一個true或false值.

4.邏輯運算符

主要將布爾值作為操作數(shù),而且同比較去處符一樣,也返回布爾值.

5.字符串運算符

字符串運算符為+,主要用于兩個字符串的組合,例如"this

is

"+"book"

//結(jié)果為"this

is

book"

6.條件運算符

條件運算符與前面介紹過的運算符有所不同,因為條件表達式會根據(jù)條件計算出一個或兩個不同的值,其結(jié)構(gòu)為(條件)?結(jié)果1:結(jié)果2。望采納。

當(dāng)前名稱:javascript運算,javascript運算符優(yōu)先級
網(wǎng)站網(wǎng)址:http://muchs.cn/article10/phepdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、網(wǎng)站策劃網(wǎng)站導(dǎo)航、網(wǎng)站內(nèi)鏈品牌網(wǎng)站建設(shè)、App設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站