亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

js 高程學習總結 第三章

2024-04-27 15:14:34
字體:
來源:轉載
供稿:網友

js基本概念

區分大小寫 變量名test 和Test分別表示兩個不同的變量。

標識符 即:變量、函數、屬性的名字,或者函數的參數。 格式規則:第一個字符必須是一個字母、下劃線或一個美元符號;其他字符可以是字母、下劃線、美元符號和數字;也可以包含ascii或unicode字母符號,但是不推薦。標識符采用駝峰大小寫格式如 firstSecond

注釋 單行注釋(//)和塊級注釋(/* */)

嚴格注釋 “use strict”;

語句 語句以分號結尾 ;

關鍵字、保留字

變量 var message ; 未初始化的變量會保存為一個特殊值 undefined 函數中使用var定義一個變量,那么這個變量在函數退出后就會被銷毀,在函數外不能訪問

數據類型 5種簡單數據類型(基本數據類型):Undefined ,Null, Boolean, Number, String .還有復雜數據類型 Object ,本質是無序的名值對

typeof 操作符 由于ECMAScript 為松散類型,因此需要有一種手段來檢測給定變量的數據類型 typeof ;使用typeof操作符返回值可能為 ——“undefined”–這個值未定義 ——“boolean”–這個值為布爾值 ——“string”–這個值為字符串 ——“number”–這個值是數字 ——“object”–這個值為對象或null ——“function”–這個值為函數

Undefined 類型 使用var聲明變量但未對其加以初始化時,這個變量的值就是undefined 對于未初始化和未聲明的變量執行typeof操作符都會返回undefined值

Null類型 null值表示一個空對象指針,所以使用typeof操作符檢測null時會返回“object”;null == undefined (true); 無論什么時候,都沒有必要把一個變量的值顯示地設置為undefined,可是同樣的規則對于null不適用:只要保存對象的變量還沒有真正的保存對象,就應該明確的讓該對象保存null值,可以進一步區分null和undefined

Boolean類型 只有兩個字面值 true和false(區分大小寫,與數字不是一回事,true不一定等于1,false也不一定等于0) ECMAScript中的所有類型的值都與這兩個Boolean值等價的值。可以使用Boolean()轉型函數; 對應false : (String)“” ;(Number) 0 和NaN;(Object)null;(Undefined) undefined

Number類型 八進制字面量在嚴格模式下是無效的; 八進制字面值的第一位必須會0 十六進制字面值的前兩位必須是ox 浮點數值 必須含有小數點,且小數點后面必須至少有一個數值 由于保存浮點數值需要的內存空間是保存整數值的兩倍,因此ECMAScript會不失時機的將浮點數值轉換為整數值,如1.0 10. 浮點數值的最高精度是17位小數,但在進行算數計算時其精確度遠不如整數,如0.1+0.2 不是0.3,而是0.30000000000004,因此不要測試特定的浮點數值 if(a+b == 0.3){}將不會得到正確結果 數值范圍 Number.MIN_VALUE Number.MAX_VALUE 如果超過該數值會轉化為特殊的Infinity值,-Infinity值,即正無窮,負無窮,該值將無法繼續參與下一次的計算,因為Infinity 不是能夠參與計算的數值,要判斷一個數值是不是又窮的,可以使用isFinite() 函數,若參數位于最大與最小數值之間會返回true; NaN 非數值(Not a Number),是一個特殊的值,表示一個本來要返回數值的操作數未返回數值的情況;任何數除以0會返回NaN,但不會影響代碼的執行(其他語言會停止代碼的執行) NaN 特點:任何實際NaN的操作都會返回NaN,NaN與任何值都不相等,包括NaN本身; isNaN()嘗試將接收的值轉換為數值,不能被轉換為數值的值都會導致這個函數返回true 數值轉換 Number()、parseInt()和parseFloat()將非數值轉換為數值 Number()可以用于任何數據類型,后兩個用于將字符串轉換為數值 number()轉化規則: 其中true false 轉換為1和0;null 返回 0 ; undefined 返回 NaN; 字符串時只包含數字(含浮點格式與十六進格式,但是八進制會被忽略,因為前導的0被忽略了),轉換為對應的數值;空字符串轉換為0;若含有上述以外的字符,將其轉換為NaN; 如果是對象,會調用valueOf()方法,然后按照前面規則轉換,如果結果為NaN,則調用toString()方法,再按照前面的規則轉換 Number()函數在轉換字符串時比較復雜且不合理,因此處理整數更常用parseInt()行數 parseInt()轉化規則 忽略空格;如果第一個字符不是數字符號或者負號,返回NaN,即空字符串會返回NaN;如果是數字,會解析完所有后續字符或者遇到一個非數字字符;如“1234blue”會被轉換為1234 “22.5”會被轉換為22,小數點不是有效的數字字符;并且可以辨別出 十進制 八進制 十六進制 ,超出進制則會返回NaN 如“0xz” 書中結果是ECMAScript 3 認為是56 八進制,ECMAScript 5 認為是0 十進制但是在瀏覽器里測試后為 70(parseInt(“070”) ==》 70);因此一定要寫上第二個參數(任何時候):進制 parseFloat()轉化規則 “22.33.5” ==》22.33 從第一個字符開始解析每個字符,一直解析到字符串的末尾或者解析到遇到一個無效的浮點數字字符為止 字符串中第一個小數點有效,第二個無效,他后面的字符串將被忽略 parseFloat 始終忽略前導的0(即只解析十進制,不存在第二個參數);十六進制的字符串始終被轉換成0,

String類型 字符字面量 一些特殊的字符字面量,即轉義序列,用于表示非打印字符或其他用途的字符如/n 換行、/t 制表等; 字符串的長度 length屬性; 但是如果字符串中含有雙字節字符,那么length屬性可能不會精確地返回字符串的字符數目 字符串不可變,要改變某個變量保存的字符串,首先銷毀原來的字符串,然后再用另一個包含新值的字符串填充該變量 轉換為字符串 toString()方法,該方法會返回相應值的字符串表現 數值、布爾值、對象、字符串都有該方法,但是null和undefined沒有。 toString()可以傳入參數:輸出數值的基數,默認為十進制 String()方法,轉型函數,能將任何類型的值轉換為字符串(過程為如果有toString()方法,則調用該方法,如果值為null,則返回’null’,如果值是undefined,則返回”undefined”) 要把某個值轉換為字符串,可以使用加號操作符把他與字符串(“”)加在一起

Object類型 var o = new Object(); 對象:一組數據和功能的集合 Object每個實例都具有下列屬性和方法 Constructor :保存的創建當前對象的函數,對上面的例子就是Object( hasOwnPRoperty(propertyName):用于檢查給定的屬性在當前實例是否存在,入參為字符串 isPrototypeOf(object):用于檢查傳入對象是否是另一個對象的原型 propertyIsEnumerable(propertyName):用于檢查給定屬性是否能夠使用for-in語句枚舉,入參為字符串 toLocaleString():返回對象的字符串表示,該字符串與執行環境的地區對應 toString():返回對象的字符串表示 valueOf():返回對象的字符串、數值或布爾值表示,通常與toString()方法返回值相同 但是瀏覽器的環境對象,如BOM和DOM中的對象,都屬于宿主對象,是由宿主實現提供和定義的,可能不會繼承Object

操作符 能使用于字符串、數字值、布爾值、甚至對象,應用于對象時,會調用對象的valueOf()或toString()方法,以便取得可以操作的值 一元操作符 有遞減和遞增操作符:前置和后置型; 前置時變量的值在語句求值以前改變的,前置操作和執行語句的優先級相等,整個語句會從左至右被求值;后置時變量的值在語句求值以后才改變; 應用于字符串時,google測試結果為必須是全部是有效數字字符的字符串,才會轉換為數字,否則為NaN 一元加和減操作符 一元加操作符放在數值前面,對數值不會產生任何影響,不過對非數值應用一元加操作符時,該操作符會像Number()一樣對該值轉換 一元減操作符應用于數值時,該值會變成負值;應用于非數值時,規則如一元加操作符,最后將得到的數值轉換為負數 位操作符 按照內存中的位來操作數值,ECMAScript中數值 都是以64位格式存儲,但位操作符并不直接操作64位的值,而是先將64位的值轉換為32位的整數,然后執行操作,最后將結果轉換回64位 有符號的整數:前31位表示整數的值,第32位表示數值的負號,0為正數,1為負數 負數為二進制補碼:步奏如下: 求這個值絕對值的二進制碼;求二進制的反碼,0—>1;得到的二進制反碼加1 但是ECMAScript會隱藏這些信息,我們調用toString(2)時,返回的是這個負數絕對值的二進制碼前面加上了一個負號 對NaN和Infinity 應用位操作時,會被當成0處理;對于非數值應用位操作符時,會先使用Number()將其轉換為一個數值,在應用位操作 按位非(NOT) 符號:~;本質:操作數的負號減1;由于按位非是數值的最底層操作,速度更快 按位與(AND) 符號:&; 本質:兩個數值的每一位對其,相同位置上的兩個數執行AND操作;都是1才是1 按位或(OR) 符號:|;都是0才是0 按位異或(XOR) 符號:^ 兩個數值的對應位上只有一個1才返回1, 左移 符號:<< 空位補0;左移不會影響符號位 有符號的右移 符號:>> 空位補0;右移不會影響符號位 無符號右移 符號:>>> 對正數來說,與有符號的右移結果相同; 對負數來說,影響較大

布爾操作符 有三個:非(NOT)、與(AND)、或(OR) 邏輯非 符號:!;規則為 對象=>false;空字符串=>true;非空字符串=>false;0=>true;非0數值=>false;null、NaN、undefined=>true; ?。。╲alueBoolean) 與Boolean()方法一致 邏輯與 符號:&& 邏輯與操作可以用于任何類型的操作數。在有一個操作符不是布爾值的時候,邏輯與操作就不一定返回布爾值;規則如下: 第一個操作數是對象,返回第二個操作數; 第二個是對象,只有在第一個操作數的求值結果為true才能返回該對象 兩個都是對象,返回第二個操作數 第一個為null、NaN、undefined時,返回第一個

為短路操作,第一個能決定結果時,不會對第二個操作數求值;不能再邏輯與操作中使用未定義的值 邏輯或 符號:|| 求值規則: 如果第一個操作數是對象,返回第一個操作數 第一個操作數求值結果為false,返回第二個操作數 如果兩個都是對象,返回第一個操作數 如果兩個都是null,或NaN或undefined,則返回null或NaN或undefined

也是短路操作,因此var myObject = preferredObject || backupObject; 有一個默認值:backupObject;

乘性操作符 有乘法、除法和求模;如果參與乘法計算的某個操作符不是數值,會先使用Number()轉型函數將其轉換為數值 乘法 符號:* 規則如下: 都是數值,執行常規乘法計算:兩個正數或負數相乘還是正數,只有一個有符號,結果就是負數,超出ECMAScript數值范圍,返回Infinity 或-Infinity 如果一個是NaN,結果為NaN;如果Infinity與0相乘,結果是NaN;Infinity與非0相乘,結果為Infinity或-Infinity,取決于有符號操作數的符號; infinity與infinity相乘,結果是infinity;如果有一個操作數不是數值,則后臺調用Number()將其轉換為數值 除法 符號:/ 規則如下: 都是數值,執行常規除法計算:兩個正數或負數相乘還是正數,只有一個有符號,結果就是負數,超出ECMAScript數值范圍,返回Infinity 或-Infinity 如果一個是NaN,結果為NaN; infinity與infinity相除,結果是NaN;0/0 結果是NaN;如果非0的有限數被0除,結果是Infinity或-Infinity,取決有符號操作數的符號;如果是Infinity被任何非零除,則結果為Infinity或-Infinity,取決于有符號操作數的符號 如果有一個操作數不是數值,則后臺調用Number()將其轉換為數值 求模 符號:% ;求余 規則如下: 被除數是無窮大而除數是有限大的數值,則結果是NaN; 被除數是有限大而除數是0,結果是NaN; Infinity除以Infinity,結果是NaN; 被除數是有限大數值而除數是無窮大的數值,結果為被除數 被除數為0,結果為0;除數為0,結果為NaN 如果有一個操作數不是數值,則后臺調用Number()將其轉換為數值,然后應用上面的規則

加行操作符 加法 規則如下:

如果都是數值,執行常規的加法計算,然后由下列規則返回結果 如果一個為NaN,結果為NaN;如果Infinity加Infinity,則為Infinity;如果-Infinity加-Infinity,則為-Infinity;如果是Infinity加-Infinity,則為NaN; 如果+0加+0,結果為+0;如果-0加-0,結果為-0;如果+0加-0,結果為+0;如果有一個操作數是字符串,規則如下: 都是字符串,拼接起來即可只有一個是字符串,另一個轉換為字符串,拼接起來如果有一個是對象、數值或布爾值,則調用他們的toString()方法取得相應的字符串值,再應用前面的字符串規則。對于undefined和null,則分別調用String()函數并取得字符串“undefined”和“null” 減法 符號:- 規則如下: 操作符都是數值,執行常規算術減法操作返回結果一個為NaN,結果為NaNInfinity減Infinity,結果為NaN-Infinity減-Infinity,結果為NaNInfinity減-Infinity,結果為Infinity-Infinity減Infinity,結果為-Infinity+0減+0 結果+0;+0減-0,結果-0;-0減-0,結果+0如果一個為字符串、布爾值、null或undefined,先在后臺調用Number()轉換為數值,在執行前面的規則如果一個操作數是對象,調用valueOf()以取得表示該對象的數值,如果得到NaN,則結果為NaN,沒有valueOf()方法,則調用toString()方法并將得到的字符串轉換為數值

關系操作符 < > <= >= 規則如下

兩個操作數都是數值,執行數值比較兩個操作數都是字符串,比較兩個字符串對應的字符編碼值一個為數值,將另一個轉為數值,再執行比較一個為對象,調用valueOf()方法,再按照前面的規則執行比較,如果沒有valueOf()方法, 則調用toString()方法,并執行前面比較一個為布爾值,轉換為數值,在執行比較 “23”< 3 false; “23”<”3” true; “a” < 3 false; a 被轉化為NaN,任何數與NaN進行比較,結果都是false;

相等操作符 相等和不相等——先轉換再比較;全等和不全等——僅比較而不轉換 相等和不相等 符號: == 和 != 先轉換操作數,在比較相等性;規則如下:

有一個是布爾值,比較之前先轉換為數值,false轉換為0,true轉換為1如果一個為字符串,一個為數值,比較前先將字符串轉換為數值一個為對象,一個不是,先將對象調用valueOf()方法,在按照前面規則進行null和undefined是相等的比較之前,不能將null和undefined轉換成其他任何值一個操作數為NaN,相等操作符返回false,不相等,返回true;NaN == NaN fasle都為對象,比較是否是同一對象,只想同一對象,返回true,否則為false

全等和不全等 符號 === 和!== 規則:

比較之前不轉換操作數null === undefined false 不是一個類型

條件操作符 即三木運算符 var variable = boolean_expression ? true_value :false_value;

賦值運算符 符號有: = 右側的值賦給左側的變量;復合賦值 ,等號前面添加 乘性操作符、加性操作符、位操作符

逗號運算符 在一條語句中執行多個操作如 var num1 = 1,num2=2,num3=3; 上面是聲明多個變量,除此之外逗號操作符還可以用于賦值,逗號操作符總會返回表達式的最后一項var num = (1,2,3,4,5)// num的值為5,最后一項


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性感美女h网站在线观看免费| 久久久精品中文字幕| 亚洲精品欧美日韩专区| 久久中文精品视频| 91久久在线播放| 少妇高潮久久77777| 欧美成在线视频| 少妇高潮 亚洲精品| 精品一区电影国产| 欧美一级片久久久久久久| 欧美亚洲国产精品| 欧美韩日一区二区| 欧美黄色片免费观看| 尤物精品国产第一福利三区| 91久久久久久久久久| 欧美日韩在线观看视频小说| 欧美一区第一页| 国产视频精品久久久| 亚洲精品久久久久久下一站| 伊人青青综合网站| 欧美极品少妇xxxxⅹ喷水| 国产精品国产自产拍高清av水多| 亚洲丝袜在线视频| 91网站免费观看| 欧美精品福利视频| 国产欧亚日韩视频| 国产精品久久久久久av| 欧美裸身视频免费观看| 欧美裸体视频网站| 97在线看免费观看视频在线观看| 国产精品爽黄69| 亚洲第一中文字幕在线观看| 亚洲免费av片| 日韩电影中文字幕在线| 欧美日韩国产在线播放| 欧美性受xxxx白人性爽| 欧美丰满老妇厨房牲生活| 欧美裸体xxxx| 亲子乱一区二区三区电影| 91高清视频免费观看| 91精品国产91久久久久久久久| 国产在线观看91精品一区| 久久久亚洲福利精品午夜| 中文字幕在线观看日韩| 国产精品亚洲аv天堂网| 精品视频久久久久久久| 一本大道香蕉久在线播放29| 亚洲国产精品va在线观看黑人| 国产精品自产拍在线观看中文| 日本伊人精品一区二区三区介绍| 成人妇女淫片aaaa视频| 青草热久免费精品视频| 亚洲性av网站| 欧美影院久久久| 国产中文字幕91| 精品久久香蕉国产线看观看gif| 国产一区二区三区免费视频| 久久精品免费播放| 在线观看日韩欧美| 尤物九九久久国产精品的分类| 国产欧美一区二区三区久久| 久久精品中文字幕电影| 午夜精品一区二区三区av| 亚洲成人xxx| 永久免费毛片在线播放不卡| 精品国产91久久久久久老师| 中文字幕日韩精品有码视频| 久国内精品在线| 日韩欧美国产一区二区| 欧美性猛交xxxx乱大交极品| 亚洲aa在线观看| 成人欧美一区二区三区在线湿哒哒| 久久99国产精品自在自在app| 亚洲第一级黄色片| 久久久国产成人精品| 日本免费一区二区三区视频观看| 92看片淫黄大片看国产片| 久久天堂电影网| 色综合色综合网色综合| 国产日韩欧美夫妻视频在线观看| 成人激情视频在线| 自拍偷拍亚洲一区| 久久久国产一区二区三区| 国内揄拍国内精品| 欧美日韩亚洲激情| 97精品伊人久久久大香线蕉| 欧美成aaa人片在线观看蜜臀| 久久精品视频播放| 欧美在线影院在线视频| 91欧美精品午夜性色福利在线| 国产精品欧美风情| 精品成人69xx.xyz| 国产精品色婷婷视频| 国产精品久久久久久久久久ktv| 亚洲精品456在线播放狼人| 亚洲人成毛片在线播放| 亚洲第一福利网站| 国内揄拍国内精品少妇国语| 欧美另类暴力丝袜| 疯狂做受xxxx欧美肥白少妇| 成人妇女淫片aaaa视频| 国产精品久久久久久久久久免费| 久久久久免费精品国产| 亚洲欧美日韩爽爽影院| 在线成人激情黄色| 久久精品国产精品亚洲| 欧美精品亚州精品| 在线精品91av| 亚洲色图校园春色| 久久五月情影视| 久久久久久久久网站| 国产精品扒开腿做爽爽爽的视频| 成人a在线观看| 91色琪琪电影亚洲精品久久| 欧美成人网在线| 色综合视频网站| 国产女同一区二区| 97成人精品视频在线观看| 97国产在线观看| 国产一区二区三区直播精品电影| 91久久综合亚洲鲁鲁五月天| 亚洲伦理中文字幕| 国产91色在线|免| 午夜精品久久久久久久久久久久久| 亚洲一区二区中文| 亚洲一区二区三区乱码aⅴ| 日本精品久久中文字幕佐佐木| 最新中文字幕亚洲| 亚洲欧美日韩天堂| 国产91在线播放九色快色| 久久久久久久久久婷婷| 一区二区三区视频免费在线观看| 亚洲精品电影网| 亚洲精品在线观看www| 美日韩在线视频| 亚洲精品国产精品国自产观看浪潮| 亚洲人成77777在线观看网| 国产精品 欧美在线| 最近2019年好看中文字幕视频| 北条麻妃一区二区在线观看| 成人免费网站在线看| 国产精品久久av| 国产盗摄xxxx视频xxx69| 国产精品欧美日韩一区二区| 亚洲国产欧美一区二区丝袜黑人| 久久精品成人一区二区三区| 国产精品成熟老女人| 亚洲欧美日韩网| 亚洲最大的网站| 亚洲欧美另类人妖| 欧美美女18p| 欧美伦理91i| 亚洲国产精品久久久久久| 亚洲精品按摩视频| 青青草原一区二区| 欧美日韩人人澡狠狠躁视频| 日韩欧美福利视频| 欧洲成人在线观看| 欧美性受xxxx白人性爽| 91亚洲精品久久久久久久久久久久| 午夜精品www| 成人av.网址在线网站| 久久久免费精品视频| 日韩美女视频中文字幕|