謂操作符,就是用來操作數據值的符號,在JavaScript中包括算術操作符、位操作符、關系操作符和相等操作符。這些操作符可以操作所有類型的數據,比如字符串、數字、布爾值,甚至對象。
所謂一元操作符就是只能對一個數據值進行操作,比如(遞增、遞減)操作符。
遞增、遞減操作符是直接借鑒C語言的,它分前置型和后置型。前置就是操作符在要操作的變量之前,后置在變量之后。
如下示例:
// 前置型
let age=20;
++age; // 遞增
console.log(age); // 結果輸出21
--age;//遞減
console.log(age); // 結果輸出20
如上面例子,age通過++操作符遞增變成21,又通過--操作符遞減變成20;上面的操作等同下面的操作:
// 后置型
let age=20;
age=age + 1; // 加1
age=age -1; // 減1
同理使用后置操作符會得到上面同樣的結果,但是前置和后置有區別。前置操作符在語句被求值以前改變,后置是在語句被求值后改變。通過下面的例子看下其區別:
// 前置
let age=20;
let anotherAge=--age + 5;
alert(age); // 輸出19
alert(anotherAge); // 輸出24
由于前置操作符的優先級和執行語句相等,因此會從左到右依次求值。上面的--age 會先進行遞減操作,再繼續后面的 + 5 運算,所以結果是24。
// 后置時
let age=20;
let anotherAge=age-- + 5;
alert(age); // 輸出19
alert(anotherAge); // 輸出25
但是后置的最終結果卻是25,因為age-- 使用了遞減前的值繼續和后面進行+5運算。
如果使用一個加號或減號時,加號代表正值、減號代表負值。
操作多個數據值,比如加減乘除等:
let a=1,b=2;
let c=a + b; // 加
let d=c - a; // 減
let e=d * b; // 乘
let f=e/d; // 除
注意加減乘除主要用來操作數字類型的數據,如果操作數不是數字類型,會先進性強制轉換再進行計算,這樣結果會不確定。
位操作符,是指按內存中的表示的數值位來操作數值,通俗講就是用來操作二進制的數據。二進制數據都是由0、1組成的,在JavaScript中所有數值都是64位的格式存儲,但位操作符不直接在64位的值上進行計算,會先轉化成32位后再運算。位操作符有以下幾種:
按位非(NOT)
按位非操作符是(~)符號,就是將二進制中每位數值進行反碼操作。其規則如下:
操作符 | 數值 | 結果 |
~ | 1 | 0 |
~ | 0 | 1 |
如下示例:
let a=25;
let b=~a;
alert(b); // 輸出-26
按位與(AND)
使用(&)符號表示,它有2個操作數,當2個數對應的位都是1時返回1,任何一位是0則返回0。如下規則:
數值1 | 操作符 | 數值2 | 結果 |
1 | & | 1 | 1 |
1 | & | 0 | 0 |
0 | & | 1 | 0 |
0 | & | 0 | 0 |
示例:
let a=25 & 3;
alert(a); // 輸出結果是1
按位或(OR)
用(|)符號表示,同樣也是2個操作數。其規則是只要有一位是1其結果就是1,負則結果是0;
數值1 | 操作符 | 數值2 | 結果 |
1 | | | 1 | 1 |
1 | | | 0 | 1 |
0 | | | 1 | 1 |
0 | | | 0 | 0 |
示例:
let a=25 | 3;
alert(a); // 輸出結果是27
按位異或(XOR)
由(^)符號表示,也是操作2個操作數,其當2個操作數的位值相同時返回0,負則返回1。
數值1 | 操作符 | 數值2 | 結果 |
1 | ^ | 1 | 0 |
1 | ^ | 0 | 1 |
0 | ^ | 1 | 1 |
0 | ^ | 0 | 0 |
示例:
let a=25 ^ 3;
alert(a); // 輸出結果是26
左移
使用(<<)兩個小于號表示,這個操作符會將數值每一位向左移動指定位數。如下示例:
let a=2; // 二進制 10
let b=b << 5; // 二進制的 1000000,十進制64
上面,將二進制10向左移動5位,注意左移會多出5個空位,用0來填充,這樣就會得到一個完整的32位二進制數據。
注意,左移不會影響符號位(二進制位中第一位表示數的正負),如-2 向左移5位結果是-64。
有符號的右移
使用(>>)兩個大于號表示,會將每位向右移動指定位數,但保留符號位(即正負號標記)。如下示例:
let a=64; // 二進制 1000000
let b=b >> 5; // 二進制的 10,十進制的2
在移位過程,原數中也會出現空位,只不過這次空位出現在原數值左側、符號位右側。空位使用符號位值填充。
有符號的整數,指32位中前31位表示整數的值,第32位表示數值的符號,0正數,1負數。這個表示符號的位就是符號位。
無符號的右移
使用(>>>)三個大于號表示,這個操作會將所有32位都向右移動。對于正數其結果和有符號的右移一樣,如下示例:
let a=64; // 二進制 1000000
let b=b >>> 5; // 二進制的 10,十進制的2
但是負數就不一樣了,無符號的右移是以0來填充空位,不像有符號右移使用符號位填充。所以其結果相差很大,如下示例:
let a=-64; // 二進制 1111 1111 1111 1111 1111 1111 1100 0000
let b=b >>> 5; // 二進制 0000 0111 1111 1111 1111 1111 1111 1110 ,十進制的134217726
在任何編程語言中,布爾操作符都是非常重要的,它是用來判斷邏輯的關鍵,布爾操作符一共有三種:非(NOT)、與(AND)、或(OR)。
邏輯非
使用(!)感嘆號表示邏輯非,其規則就是:
操作符 | 邏輯值 | 結果 |
! | true | false |
! | false | true |
邏輯與
使用(&&)表示,操作兩個數,如下示例:
let a=ture && false;
其規則如下:
邏輯值1 | 操作符 | 邏輯值2 | 結果 |
ture | && | ture | ture |
ture | && | false | false |
false | && | ture | false |
false | && | false | false |
也就是只有當2個數值都是true時其結果才是true。
邏輯或
使用(||)符號表示,也是有兩個操作數,其示例:
let a=true || false;
規則如下:
邏輯值1 | 操作符 | 邏輯值2 | 結果 |
ture | || | ture | ture |
ture | || | false | ture |
false | || | ture | ture |
false | || | false | false |
也就是2個操作數中有一個true,結果就是true,負則是false。
注意布爾操作符,不僅僅可以操作布爾類型值,對于其它數據類型同樣適用,只不過會先將其它數據類型轉換成布爾值,再進行布爾運算。如下示例:
let a=!1; // 輸出false
let b=!'string'; // 輸出false
let c=1 || 0; // 輸出true
let e=1 && 0;// 輸出false
let d=''&& 2; // 輸出true
關系操作符用來比較2個操作數,有小于(<)、大于(>)、小于等于(<=)和大于等于(>=)。其比較的結果返回一個布爾值,true或false。
如下示例:
let a=5 > 3; // true
let b=5 < 3; // false
同樣,關系操作符也可以適用其它類型的數據,比如字符串比較大小時,會按照字符的編碼大小比較。如下示例:
let a="Brick" < "alphabet"; // true,
上面中因為B字符編碼是66,a的編碼是97,所以返回true。
在編程中,確定2個值是否相等是一個非常重要的操作。在JavaScript中分相等(==)和全等(===)、不等(!=)和不全等(!==)四種。
相等(==)和不相等(!=)
如下示例:
let a=1==1; // true
let b=1==0;// false
let c=1!=1; // false
let d=1!=0; //true
注意相等和不相等的操作前會先對操作性進行強制轉換,如下示例:
let a=true==1; // 先將true轉換成1再比較,結果是true
let b=false==1; // 先將false轉換成0再比較,結果是false
全相等(===)和不全相等(!==)
全等和不全等不同之處是,它在比較數據前,不進行數據類型轉換,是對原始數值比較,所以它的結果更加嚴格準確,如下示例:
let a=1===1; // true
let b=1==='1';// false
let c=1!==1; // false
let d=1!=='1'; //true
注意和之前相等和不相等的例子比較,其結果非常不一樣。
使用(=)表示賦值操作,其作用就是把等號右側的值賦值給左邊的變量或屬性,如下示例:
let a=10; // 給a變量賦值10
如果在等號前面加上其它操作符,就組成了復合型賦值操作,如下示例:
let a=10;
a +=5; // 結果是 15
上面的等同于下面:
let a=10;
a=a + 5; // 結果是 15
當然也可以使用其它操作符,如(*=)、(/=)、(%=)、(-=)、(<<=)等等。
也稱三目運算符,它是一種簡便的條件運算,可以把它看成是if else的簡化,其語法如下:
變量=布爾表達式 ? true_value : false_value
先求出問號前面的布爾表示結果,如果是true,變量使用冒號前面的值,負則使用冒號后面的值。如下示例:
let a=5 > 3 ? '好' : '不好'; // 結果是 '好'
使用(,)符號,表示可以執行多個操作,常用于變量定義或函數參數,如下示例:
var a=0,b=1,c=2; // a、b、c使用逗號隔開
let a,b,c;
// 函數中的參數a、b、c使用逗號隔開
function test(a,b,c){
// 函數主體
}
// 調用函數
test(1,2,3)
本節主要講述了JavaScript中所有的操作符概念,這些都是最基本的知識,需要完全掌握。在平常工作中其中除了位操作符不常用外,其它操作符使用頻率很高,尤其是布爾操作符,算術操作符,比較操作符等。
本篇只是大概講述了操作符的概念和使用方法,還有一些細節沒有講到,作為入門課程已經足夠了,你可以自己搜索每個知識點詳細內容,比如關于二進制數據、位操作、數據類型強制轉換等,這里不再詳細介紹。
《JavaScript 高級程序設計》
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
https://www.w3cschool.cn/javascript/js-operators.html
、 結構
一、標記<Html> 建立HTML文檔
<Head> 設置網頁頭部和其它信息
<Body> 設計文件格式及內文所在<Body> 元素的屬性
Text 設置頁面文字的送顔色 Bgcolor 設置頁面背景的顡色
Background 設置頁面的背景圖像 Link設置頁面黙認的顔色
Bgproperties 設置頁面的背景圖像為固定,不隨頁面的滾動而滾動
Alink 設置鼠標正在單擊時候的鏈接顔色 Vlink 設置訪問過后的鏈接顔色
Topmargin 設置頁面的上邊距 Leftmargin 設置頁面的左邊距
二、頭部
標記 <Base> 當前文檔的URL全稱 <Title>設置顯示在瀏覽器在上方的標題內容
<Isindex> 表明該文檔是一個可用于檢索的網關腳本
<Meta> 有關文檔本身的信息,例如用于查詢的關鍵詞,用于獲取該文檔的有效期等
<Style> 設置CSS層疊樣式表的內容
<link> 設置外部文件的鏈接 <script> 設置頁面中程序腳本的內容
<Mate> 標記屬性
Http-Equiv 生成一個HTTP標題域,它的取值與另一個屬性相同,
例如Http-Equiv=Expires,實際取值由Content確定
Name 如果元數據是以關鍵字/取值的形式出現的,Name 表示鍵字,
如Author或ID
Content 關鍵字/取值的內容
三、文字
文字標記 <HNumber>……<1HNumber> Number=1.2.3.4.5.6
分別指1至6級標題
<Font>文字
文字的修飾標記 <B>/<strong> 粗體 <I>/<Em>/<cite> 斜體
<Sup>上標 <sub>下標 <Big>大字號 <small>小字號
<U>下劃線 <S>/<strike>刪除線 <Address>地址
<Tt>打字機文字 <Blink>閃爍文字(只適用于Netscape瀏覽器)
<Code>/<samp>等寬 <kbd>鍵盤輸入文字 <Var>聲明變量
<Fant>標記的屬性
Face 字體 Size字號 Color顔色
四.列表
列表標記 <Ul>無序列表 <Ol>有序列表 <Dir>回錄列表 <Dl>定義列表
<Meru>菜單列表 <Dt>·<Dd>定義列表的標記 <Li>列表項目的標記
<Ul><Ol>標記的屬性 Type設置列表類型 start設置列表起始屬性
Type的屬性值 1 數字 a 小寫字母 A 大寫字母 i小寫羅馬數字
I 大寫羅馬數字 Disc ● Circle ○ square □
五.鏈接
鏈接標記 <A> 鏈接
<A>標記的屬性 Href 指定鏈接地址 Name給鏈接命名
Title設置鏈接提示文字 Target指定鏈接的目標窗口
Target屬性值 -parent在上一級窗口中打開。一般使用分幀的框架頁會經常使用
-bank在新窗口中打開
-self在同一個幀或窗口中打開.這項一般不用設置
Href屬性值 http:// 進入萬維網站點 news://啟動新聞討論
ftp:// 進入文件傳輸服務器 mailto:// 啟動新聞討論組
telnet:// 啟動telnet方式 gopher://訪問一個gopher服務器
六.圖片
圖片標記 <Img>圖片 <Map>圖像映射 <Area>圖像映射中定義區域
<lmg>標記的屬性 src圖像的源文件 Alt提示文字 Width寬度
Height高度 Vspace垂直間距 Hspace水平間距 Align排列 Border邊框
Align屬性值 Top文字的中間線居于圖片上方 Middle文字的中間線居于圖片中間
Bottom文字的中間線居于圖片底部 Left 圖片在文字的左側
Right圖片在文字的右側 Absbottom文字的底線居于圖片底部
Absmiddle文字的底線居于圖片中間 Baseline英文文字基線對齊
Texttop英文文字上邊線對齊
Shape屬性值
Rect矩形區域 Circle橢圓形區域 Poly多邊形區域
七.表格
1.表格標記 <Table>…</Table>表格標記 <Tr>…</Tr>行標記
<Td>…</Td>單元格標記 <Th>表頭標記
<Table>標記屬性 Bordercolor 表格邊框色 Borde表格邊框的寬度
Bordercolorlight 表格邊框亮邊框色(左上邊框顔色)
Bordercolordark 表格暗邊框色(右下邊框顔色)
Bordercolor 行的邊框顔色 Width表格的寬度 Height表格的高度
Bgcolor表格的背景顔色 Background表格的背圖像
<Tr>標記屬性 Align行內容的水平對齊 Valign 行內容的垂直對齊
Bgcolor 行的背景顔色 Background 行的背景圖像
Bordercolor 行的邊框顔色 Bordercolorlight 行的亮邊框顔色
Bordercolordark 行的暗邊框顔色
<Td>標記屬性 Align單元內容的水平對齊 Valign單元格內容的垂直對齊
Bgcolor 單元格的背景顔色 Background 單元格的背景圖像
Bordercolor單元格的背景顔色 Bordercorlorlight單元格的亮邊框顔色
Brodercolordark 單元格的暗邊框顔色 Width 單元格的寬度
Height單元格的高度
<Th>標記屬性 Align表頭內容的水平對齊 Valign表頭內容的垂直對齊
Bgcolor 表頭的背景顔色 Background表頭的背景圖像
Bordercolor表頭的邊框顔色 Bordercolorlight 表頭的亮邊框顔色
Bordercolordark 表頭的暗邊框顔色 Width 表頭的寬度 Height 表頭的高度
八.表單
1.表單標記 <Form>表單標記 <Input>表單輸入標記
<select>菜單和列表標記 <Option>菜單和列表項目標記
2.屬性 <Form> Name表單的名稱
Method 定義表單結果從瀏覽器傳送到服務器的方法,一般有兩種方法:get,post
Action 用來定義表單處理程序(一個Asp,CGI等程序)的位置(相對地址或絕對地址)
<lnput>標記屬性 Name 域的名稱 Type域的類型
Maxlength 域的最大輸入字符數 size域的寬度 Value 域的默認值
<Select>標記屬性 Name 菜單和列表的名稱 size 顯示的選項數目
Multiple 列表中的項目多選 Value 選項值 selected默認選項
<Texrarea>標記屬性 Name 文字域的名稱 Rows文字域的行數
Cols 文字域的列數 Value 文字域的默認值
Type屬性值 Text 文字域 Password 密碼域 File 文件域
Checkbox復選框 Redio單選框 Button普通按扭
Submit 提交按鈕 Reset重置按鈕 Hidden隱藏域Image圖像域
九.滾動
滾動標記 <Marquee>
<Marquee>標記屬性 Direction 滾動方向 up 文字向上滾動 Left文字向左滾動
Behavior 滾動方式 Scroll 循環往復
Side 只做一次滾動
Alternate 交替進行滾動
ScrollAmount 滾動速度
ScrollDelay 滾動延遲
Trim函數用來剔除首尾空格
十.框架
1.標記 <Frameset> 框架邊框標記 <Frame> 框架標記 <Iframe>浮動框架標記
<Frameset>標記屬性 Cols列 Rows行
<Frame> 標記屬性 src框架中顯示頁面源文件的路徑
FrameBorder 框架邊框顯標屬性 FrameSpacing框架邊框寬度屬性
Scrolling框架滾動條顯示屬性 NoResize 框架尺寸調整屬性
BorderColor 框架邊框顔色屬性 MarginWidt 框架邊框緣寬度屬性
MarginHerght框架邊緣高度屬性
<1frame> 標記屬性 src浮動框架中顯示頁面源文件的路徑
Width 浮動框架的寬度 Height 浮動框架的高度
Name 浮動框架的名稱
Align 浮動框架的排列方式 Left表示居左 Center表示居中 Right表示居右
FrameBorder 框架邊框顯示屬性 FrameSpacing 框架寬度屬性
Scrolling 框架滾動條顯示屬性 ( yes顯示 No不顯示 Auto根據頁面的長度自動判斷是否晶粒示滾動條
NoResize 框架尺寸調整屬性 BorderColor框架的顔色
MarginWidth 框架邊緣寬度屬性 MarginHeight 框架邊緣高度屬性
插入刷新
步驟:1.選擇"查看/文件頭內容"
2.在插入面板上,打開HTML選項卡
優化代碼
打開文件窗口,執行"命令、清理HTML"命令
文本換行:Enter 行距較大
Enter + Shift 行距較小
插入水平線設置顔色:單擊屬性面板中的快捷標簽編輯器按鈕
在代碼中鍵入"color=#顔色值"
當圖像無法顯示時將顯示這段文字:
圖像屬性中的替代→輸入文字
插入鼠標經過圖像:準備兩張圖像
在文件窗口中,將光標放置于需要翻轉圖像位置→插入工具欄中單擊鼠標經過圖像
Ⅱ.使用導航條:
在"常用"對象組中,單擊"圖像"小三角→導航條
插入圖像占位符:圖像小三角→圖像占位符
Flash動畫的背景實現透明 參數wmode 值 transparent
插入 Java Applet
插入表單
插入表單域:對象面板上"表單"→插入表單
插入文本域:單擊面板上的插入文本域. 初始值=打開時顯于的文字
插入密碼框:在屬性面板上選擇密碼
插入多行文本域:在類型后選擇多行
插入隱藏域:對象面板→插入隱藏域
插入按鈕:標簽用來設置按鈕上顯示的文本
插入圖像提交按鈕=圖像域:
插入文件上傳按鈕=文件域:
插入單選框
插入單選按鈕組:Label文字說明 Value 單選按鈕的值
插入復選框
菜單/插入列表:列表值→
插入跳轉菜單:(
制作網頁鏈接
URL統一資源定位器
目標:_blank在一個新的未命名的瀏覽器窗口中打開
_parent如果是嵌套的框架,鏈接會在父框架或窗口中打開,否則=_top
_top在完整的瀏覽器中打開
創建搜索頁
運行中輸入:
Inetmgr (IIS
Odbcad32 (odbc
Asp對象
Applicatipn 在給定的應用程序的所有用戶間共享信息,并在服務器運行期間持久地保存數據。
集合: Contents
staticObjects
Item(變量值)=設置資料變量的值
Key(變量名稱)=設置資料變量的名稱
Count(變量資料的數量)=表示
Coutents集合中資料的總數量
方法: Lock
Unlock
事件: Applicatipn_Onstart
Application_OnEnd
Session 存儲特定的用戶會話所需的信息
屬性:CodePage
LCID
SessionID
Timeout
集合:Contents
StaticObjects
方法:Abandon
事件:Session_Onstart
Session_OnEnd
Response 用來控制發送給用戶的信息,包括直接發送信息給瀏覽器,重定位瀏覽器到另一個URL或設置Cookie值
屬性: Buffer
CacheControl
Charset
ContentType
Expires
ExpiresAbsolute
IsClientConnected
PICS
Status
集合: Cookies
方法: AddHeader
AppendToLog
BinaryWrite
Clear
End
Flush
Redirect
Write
Request 訪問任何基于HTTP請求傳遞的信息,常見的有從HTML表單用Post方法或Get方法傳遞的參數,Cookie或用戶認證等。
屬性: TotalBytes
集合: ClientCertificate
Cookies
Form
QueryString
ServerVaiables
方法: BinaryRead
Server 提供對服務器方法和屬性的訪問
屬性: ScriptTimeout
集合: 無
方法: CreatObject
HTMLEncode
MapPath
URLEncode
Recordset
MoveNext 將前數據記錄移至下一條
MovePrevious 將當前數據記錄移至上一條
MoveFirst 將當前數據記錄移至第一條
MoveLast 將當前數據記錄移至最后一條
AbsolutePosition=N 將當前數據記錄移至第N條
EOF 當前數據記錄是否移過了最后一條(發生于向下移動時)
BOF 當前數據記錄是否移過了第一條 (發生于向上移動時)
VBScript 運算符
算術運算符
指數 取負 乘法 除法 加法 減法 取模 連接 整數除法
∧ - * / ﹢ ﹣ Mod & \
比較運算符
相等 不相等 小于 大于 小于或等于 大于或等于 對象相象
=<> < > <=>=IS
邏輯運算符
邏輯非 邏輯與 邏輯或 異或 邏輯等于 邏輯蘊含
Not And Or Xor Eqv Imp
是一個朋友前天剛接觸這個行業不久問我的一個問題,我網上也查了一些,看了下代碼,不喜歡;所以
自己動手做了這個小demo;希望大家可以借鑒一下
首先頁面布局:其中最主要的是對類wrapper設置position:relative;overflow:hidden;
類items設置:position:absolute等屬性;
接下來就事分析如何輪播:
我的思路是:點擊下一頁的時候:items的animate向左移動
animate({"marginLfet":"-800px"},1000,function(){});其中function({})里執行的方法:
首先將item-1放到$(".items li")最后面,然后items({marginLeft:0})
【一開始在想,將item-1追加到$(".items li")最后面之后,那么一開始item-1是不是要移除掉呢,
然后我觀察了下一頁的方法執行后的頁面元素,才發現這個擔心是多余的】
下面是執行下一頁之后的頁面元素:
【大家發現了沒有,第一個li元素跑到最后面了,然后接下來點擊上一頁的時候,我們只需要取最后一個li元素就行了】
思路:點擊上一頁的時候,items的css向左移動({"marginLfet":0}),然后$(".items li").eq(3)放在items第一個位置里,然后動畫aniamte({"marginLeft":0},1000);
這時候大家腦補一下:items的css向左移動({"marginLfet":0})和$(".items li").eq(3)[即item-1]放在items第 一個位置里都是瞬間完成,人眼是看不出來的;所以再之后執行aniamte({"marginLeft":0},1000)時候,發現item-1慢悠悠從左側出來
js代碼如下:
接下來就是定時器了:自動輪播
【timer一定去做下判斷,不然會導致連續點擊的時候,圖片移動會越來越快】
還有最后一個setTimeout這個:在點擊上下一頁的時候,我會清除定時器,所有我會在其事件里添加它,然后三秒之后再執行show(),自動輪播;
最后點擊事件:
總體頁面展示:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。