真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

javascript與非,js邏輯與或非

javascript中模式彈窗與非模式彈窗是什么意思?如何用?

模態(tài)和非模態(tài)的區(qū)別在于,模態(tài)窗體彈出后需要將其窗體關(guān)閉后才能進行除該窗體以外的其他操作,通俗點說就是除了該窗體上的操作,其他的操作都無效

10年積累的成都網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計制作后付款的網(wǎng)站建設(shè)流程,更有平定免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

原生JS用法:

模態(tài):window.showModalDialog(非標準)

非模態(tài):window.showModelessDialog(IE5+,非標準),window.open(所有瀏覽器,標準)

不推薦使用以上三種方法實現(xiàn)模態(tài)窗體,原因有二:

一是以上方法在各個瀏覽器上表現(xiàn)各不一樣,不一定能兼容所有主流瀏覽器(未測試,但我知道肯定不行)

二是如今大多數(shù)現(xiàn)代瀏覽器會屏蔽掉彈出窗體,會給您實現(xiàn)功能造成極大的障礙

使用JS模擬彈出窗體:

使用層(一般是div)模擬一個窗體,將其放置在所有層之上,加上希望的功能,比如close,resize等等,其中的內(nèi)容如果是其他頁面,我們可以用iframe,這些都很靈活,可以自己定義規(guī)則,這樣就形成了一個非模態(tài)窗體。

在上面的基礎(chǔ)上,在窗體層下放置一個mask層,其作用在于不讓操作除窗體層以外的內(nèi)容,最后將mask層設(shè)置為深色并且半透明,這樣就形成了一個模態(tài)窗體了。

以上只是原理,畢竟自己來做很惱火,當今主流js框架都實現(xiàn)了類似的功能,比如jQuery,ext等,用法也很簡單,也很兼容各種主流瀏覽器,所以使用js框架來實現(xiàn)是最推薦的

希望對您有幫助~

By Billskate

javascript運算符

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

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ù)學運算?!?” 在javascript中,由于所有的數(shù)都是浮點數(shù),除法的結(jié)果都是浮點數(shù),5 / 2 = 2.5 ;除數(shù)為0的結(jié)果為正負無窮;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ù)值、字符串、布爾值使用的都是量值。當且僅當兩個變量存放的值相等的時候,他們才相等。比較對象、數(shù)組、函數(shù)的時候,使用的是引用,只有2個變量引用的是同一個對象時,他們才是相等的。兩個不同的數(shù)組是完全不同的,即使他們具有完全相同的元素。對于存放對象、數(shù)組、函數(shù)的引用的變量來說,只有當他們引用的是同一個對象、數(shù)組、函數(shù)的時候,他們才相等。

注意!應(yī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)換,當兩個運算數(shù)的類型不同時,返回false;只有當兩個運算數(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)當2個運算數(shù)都是字符串的時候,連接起來;2)當其中有一個是數(shù)字的時候,將數(shù)字轉(zhuǎ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í)行布爾運算,常常和比較運算符一起使用,來表示復雜的比較運算?!啊?邏輯與運算、“”邏輯或運算符、“!”邏輯非運算符(一)“”當兩個運算數(shù)都是布爾值的時候,邏輯與對他們進行and操作,即:當且僅當兩個布爾值都是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ù)的運算符,會更簡單與安全。(二)“”當兩個運算數(shù)都是布爾值的時候,邏輯或?qū)λ麄冞M行or操作,即:當兩個布爾值有一個是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;若值為負,則在高位插入1。Java也添加了一種“無符號”右移位運算符(),它使用了“零擴展”:無論正負,都在高位插入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值,使大家能體會它們的情況。注意高位代表正負號:0為正,1為負。下面列出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的補值”。

怎么禁止js文件在網(wǎng)頁中執(zhí)行????

如果你想直接在瀏覽器去禁止某個js文件是不可能的,從html運行就加載就肯定加載了js文件并且運行了,除非你直接禁止js腳本運行,另外,從js腳本調(diào)試上說,firebug應(yīng)該不陌生吧,里面有腳本調(diào)試的,腳本問題你可以設(shè)置斷點然后來調(diào)試吧; 另外從頁面制作上說吧,一般是根據(jù)瀏覽器是否加載,主要為了區(qū)別IE與非IE版本,然后IE中區(qū)分IE6跟IE高版本的,在html中就可以這么寫,例如: !--[if !IE]!-- script src="a.js" type="text/javascript"/scriptscriptalert(1)/script !--![endif]-- 非IE瀏覽器識別

有關(guān)枚舉類型與非枚舉類型的區(qū)分

感覺解釋得挺好的,例子讓人看著很明白

附上鏈接:

-

2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-

1.controldist_request_id=1330144.6567.16180236839763441depth_1-utm_source=distribute.pc_relevant_t0.none-

task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

在嚴格模式下進行javascript有什么好處

非嚴格模式下有些寫法其實是不大符合邏輯的,比如不用var來聲明變量就算是個全局變量就可以直接用這種。

嚴格模式與非嚴格模式的區(qū)別在于以下幾點

1,全局變量的顯示聲明

2,嚴格模式限制了動態(tài)綁定,比如禁止使用with,創(chuàng)設(shè)eval的單獨作用域

3,嚴格模式下讓你頭痛的this關(guān)鍵字不能指向全局變量了

4,不能重名:對象不能有重名屬性,方法不能有重名形參

5,對于arguments的限制,嚴格模式下不能對其賦值了,也不再跟蹤參數(shù)的變化,arguments.callee也不允許使用

6,函數(shù)必須聲明在頂層,不允許在非函數(shù)代碼塊內(nèi)聲明函數(shù)

嚴格模式還有一個作用就是為以后JS的標準化做鋪墊。嚴格模式下多了很多關(guān)鍵字如public private如果你懂JAVA,或C#你會明白這是什么意思


本文題目:javascript與非,js邏輯與或非
標題路徑:http://weahome.cn/article/dsihpsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部