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

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

javascript注解,js代碼注釋

網(wǎng)頁關(guān)于banner導(dǎo)航的javascript代碼的注解

var a = document.getElementById("slideContainer"), f = document.getElementById("slidesImgs").getElementsByTagName("li"), h = document.getElementById("slideBar"), n = h.getElementsByTagName("li"), d = f.length, c = c || 3000, e = lastI = 0, j, m;

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)匯川免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

//各個對象,變量

function b() {

m = setInterval(function () {e = e + 1 = d ? e + 1 - d : e + 1;g()}, c)//定時器從第一張每隔C毫秒執(zhí)行一次,從1到Banner張數(shù),然后重復(fù)輪

}

function k() {

clearInterval(m);//清除 名為m 的定時器;

}

function g() {//輪換方法

f[lastI].style.display = "none";//上一張圖片,隱藏

n[lastI].className = "";//賦值空值

f[e].style.display = "block";//進入下一張顯示

n[e].className = "on";//標(biāo)題顯示

lastI = e//設(shè)置當(dāng)前 顯示的 圖片位標(biāo)數(shù)字

}

a.onmouseover = k;//鼠標(biāo)移動上去后,清除定時器(暫停輪播)

a.onmouseout = b;//鼠標(biāo)離開,開始定時器

h.onmouseover = function (i) {//計算id slideBar 里面的li數(shù)量,為了顯示banner下標(biāo)

j = i ? i.target : window.event.srcElement;

if (j.nodeName === "LI") {

e = parseInt(j.innerHTML, 10) - 1;

g()

}

};

b()

}

TypeScript 入門指南

新系列 深入淺出TypeScript 來了,本系列至少20+篇。本文為第一篇,來介紹一下TypeScript 以及常見的類型。

TypeScript是一門由微軟推出的開源的、跨平臺的編程語言。它是JavaScript的超集,擴展了 JavaScript 的語法,最終會被編譯為JavaScript代碼。

TypeScript的主要特性:

TypeScript 主要是為了實現(xiàn)以下兩個目標(biāo):

下面就來看看這兩個目標(biāo)是如何實現(xiàn)的。

為什么要給JavaScript加上類型呢?

我們知道,JavaScript是一種輕量級的解釋性腳本語言。也是弱類型、動態(tài)類型語言,允許隱式轉(zhuǎn)換,只有運行時才能確定變量的類型。正是因為在運行時才能確定變量的類型,JavaScript代碼很多錯誤在運行時才能發(fā)現(xiàn)。TypeScript在JavaScript的基礎(chǔ)上,包裝了類型機制,使其變身成為 靜態(tài)類型 語言。在 TypeScript 中,不僅可以輕易復(fù)用 JavaScript 的代碼、最新特性,還能使用可選的靜態(tài)類型進行檢查報錯,使得編寫的代碼更健壯、更易于維護。

下面是 JavaScript 項目中最常見的十大錯誤,如果使用 TypeScript,那么在 編寫階段 就可以發(fā)現(xiàn)并解決很多 JavaScript 錯誤了:

類型系統(tǒng)能夠提高代碼的質(zhì)量和可維護性,經(jīng)過不斷的實踐,以下兩點尤其需要注意:

可以認(rèn)為,在所有操作符之前,TypeScript 都能檢測到接收的類型(在代碼運行時,操作符接收的是實際數(shù)據(jù);在靜態(tài)檢測時,操作符接收的則是類型)是否被當(dāng)前操作符所支持。當(dāng) TypeScript 類型檢測能力覆蓋到所有代碼后,任意破壞約定的改動都能被自動檢測出來,并提出類型錯誤。因此,可以放心地修改、重構(gòu)業(yè)務(wù)邏輯,而不用擔(dān)憂因為考慮不周而犯下低級錯誤。

在一些語言中,類型總是有一些不必要的復(fù)雜的存在方式,而 TypeScript 盡可能地降低了使用門檻,它是通過如下方式來實現(xiàn)的。

TypeScript 與 JavaScript 本質(zhì)并無區(qū)別,我們可以將 TypeScipt 理解為是一個添加了類型注解的 JavaScript,為JavaScript代碼提供了編譯時的類型安全。

實際上,TypeScript 是一門“ 中間語言 ”,因為它最終會轉(zhuǎn)化為JavaScript,再交給瀏覽器解釋、執(zhí)行。不過 TypeScript 并不會破壞 JavaScript 原有的體系,只是在 JavaScript 的基礎(chǔ)上進行了擴展。

準(zhǔn)確的說,TypeScript 只是將JavaScript中的方法進行了標(biāo)準(zhǔn)化處理:

這段代碼在TypeScript中就會報錯,因為TS會知道a是一個數(shù)字類型,不能將其他類型的值賦值給a,這種類型的推斷是很有必要的。

上面說了,TypeScript會盡可能安全的推斷類型。我們也可以使用類型注釋,以實現(xiàn)以下兩件事:

在一些語言中,類型總是有一些不必要的復(fù)雜的存在方式,而 TypeScript 的類型是結(jié)構(gòu)化的。比如下面的例子中,函數(shù)會接受它所期望的參數(shù):

為了便于把 JavaScript 代碼遷移至 TypeScript,即使存在編譯錯誤,在默認(rèn)的情況下,TypeScript 也會盡可能的被編譯為 JavaScript 代碼。因此,我們可以將JavaScript代碼逐步遷移至 TypeScript。

雖然 TypeScript 是 JavaScript 的超集,但它始終緊跟ECMAScript標(biāo)準(zhǔn),所以是支持ES6/7/8/9 等新語法標(biāo)準(zhǔn)的。并且,在語法層面上對一些語法進行了擴展。TypeScript 團隊也正在積極的添加新功能的支持,這些功能會隨著時間的推移而越來越多,越來越全面。

雖然 TypeScript 比較嚴(yán)謹(jǐn),但是它并沒有讓 JavaScript 失去其靈活性。TypeScript 由于兼容 JavaScript 所以靈活度可以媲美 JavaScript,比如可以在任何地方將類型定義為 any(當(dāng)然,并不推薦這樣使用),畢竟 TypeScript 對類型的檢查嚴(yán)格程度是可以通過 tsconfig.json 來配置的。

在搭建TypeScript環(huán)境之前,先來看看適合TypeScript的IDE,這里主要介紹Visual Studio Code,筆者就一直使用這款編輯器。

VS Code可以說是微軟的親兒子了,其具有以下優(yōu)勢:

因為 VS Code 中內(nèi)置了特定版本的 TypeScript 語言服務(wù),所以它天然支持 TypeScript 語法解析和類型檢測,且這個內(nèi)置的服務(wù)與手動安裝的 TypeScript 完全隔離。因此, VS Code 支持在內(nèi)置和手動安裝版本之間動態(tài)切換語言服務(wù),從而實現(xiàn)對不同版本的 TypeScript 的支持。

如果當(dāng)前應(yīng)用目錄中安裝了與內(nèi)置服務(wù)不同版本的 TypeScript,我們就可以點擊 VS Code 底部工具欄的版本號信息,從而實現(xiàn) “use VS Code's Version” 和 “use Workspace's Version” 兩者之間的隨意切換。

除此之外,VS Code 也基于 TypeScript 語言服務(wù)提供了準(zhǔn)確的代碼自動補全功能,并顯示詳細(xì)的類型定義信息,大大的提升了我們的開發(fā)效率。

1)全局安裝TypeScript:

2)初始化配置文件:

執(zhí)行之后,項目根目錄會出現(xiàn)一個 tsconfig.json 文件,里面包含ts的配置項(可能因為版本不同而配置略有不同)。

可以在 package.json 中加入script命令:

3)編譯ts代碼:

TSLint 是一個通過 tslint.json 進行配置的插件,在編寫TypeScript代碼時,可以對代碼風(fēng)格進行檢查和提示。如果對代碼風(fēng)格有要求,就需要用到TSLint了。其使用步驟如下: (1)在全局安裝TSLint:

(2)使用TSLint初始化配置文件:

執(zhí)行之后,項目根目錄下多了一個 tslint.json 文件,這就是TSLint的配置文件了,它會根據(jù)這個文件對代碼進行檢查,生成的 tslint.json 文件有下面幾個字段:

這些字段的含義如下;

在說TypeScript數(shù)據(jù)類型之前,先來看看在TypeScript中定義數(shù)據(jù)類型的基本語法。

在語法層面,缺省類型注解的 TypeScript 與 JavaScript 完全一致。因此,可以把 TypeScript 代碼的編寫看作是為 JavaScript 代碼添加類型注解。

在 TypeScript 語法中,類型的標(biāo)注主要通過類型后置語法來實現(xiàn):“ 變量: 類型 ”

在 JavaScript 中,原始類型指的是 非對象且沒有方法 的數(shù)據(jù)類型,包括:number、boolean、string、null、undefined、symbol、bigInt。

它們對應(yīng)的 TypeScript 類型如下:

JavaScript原始基礎(chǔ)類型TypeScript類型 numbernumber booleanboolean stringstring nullnull undefinedundefined symbolsymbol bigIntbigInt

需要注意 number 和 Number 的區(qū)別:TypeScript中指定類型的時候要用 number ,這是TypeScript的類型關(guān)鍵字。而 Number 是 JavaScript 的原生構(gòu)造函數(shù),用它來創(chuàng)建數(shù)值類型的值,這兩個是不一樣的。包括 string 、 boolean 等都是TypeScript的類型關(guān)鍵字,而不是JavaScript語法。

TypeScript 和 JavaScript 一樣,所有數(shù)字都是 浮點數(shù) ,所以只有一個 number 類型。

TypeScript 還支持 ES6 中新增的二進制和八進制字面量,所以 TypeScript 中共支持 2、8、10和16 這四種進制的數(shù)值:

字符串類型可以使用單引號和雙引號來包裹內(nèi)容,但是如果使用 Tslint 規(guī)則,會對引號進行檢測,使用單引號還是雙引號可以在 Tslint 規(guī)則中進行配置。除此之外,還可以使用 ES6 中的模板字符串來拼接變量和字符串會更為方便。

類型為布爾值類型的變量的值只能是true或者false。除此之外,賦值給布爾值的值也可以是一個計算之后結(jié)果為布爾值的表達式:

在 JavaScript 中,undefined和 null 是兩個基本數(shù)據(jù)類型。在 TypeScript 中,這兩者都有各自的類型,即 undefined 和 null,也就是說它們既是實際的值,也是類型。這兩種類型的實際用處不是很大。

注意,第一行代碼可能會報一個tslint的錯誤: Unnecessary initialization to 'undefined' ,就是不能給一個變量賦值為undefined。但實際上給變量賦值為undefined是完全可以的,所以如果想讓代碼合理化,可以配置tslint,將" no-unnecessary-initializer "設(shè)置為 false 即可。

默認(rèn)情況下,undefined 和 null 是所有類型的子類型,可以賦值給任意類型的值,也就是說可以把 undefined 賦值給 void 類型,也可以賦值給 number 類型。當(dāng)在 tsconfig.json 的"compilerOptions"里設(shè)置為 "strictNullChecks": true 時,就必須嚴(yán)格對待了。這時 undefined 和 null 將只能賦值給它們自身或者 void 類型。這樣也可以規(guī)避一些錯誤。

BigInt是ES6中新引入的數(shù)據(jù)類型,它是一種內(nèi)置對象,它提供了一種方法來表示大于 2- 1 的整數(shù),BigInt可以表示任意大的整數(shù)。

使用 BigInt 可以安全地存儲和操作大整數(shù),即使這個數(shù)已經(jīng)超出了JavaScript構(gòu)造函數(shù) Number 能夠表示的安全整數(shù)范圍。

我們知道,在 JavaScript 中采用雙精度浮點數(shù),這導(dǎo)致精度有限,比如 Number.MAX_SAFE_INTEGER 給出了可以安全遞增的最大可能整數(shù),即 2- 1 ,來看一個例子:

可以看到,最終返回了true,這就是超過精讀范圍造成的問題,而 BigInt 正是解決這類問題而生的:

這里需要用 BigInt(number) 把 Number 轉(zhuǎn)化為 BigInt ,同時如果類型是 BigInt ,那么數(shù)字后面需要加 n 。

在TypeScript中, number 類型雖然和 BigInt 都表示數(shù)字,但是實際上兩者類型是完全不同的:

symbol我們平時用的比較少,所以可能了解也不是很多,這里就詳細(xì)來說說symbol。

symbol 是 ES6 新增的一種基本數(shù)據(jù)類型,它用來表示獨一無二的值,可以通過 Symbol 構(gòu)造函數(shù)生成。

注意:Symbol 前面不能加 new關(guān)鍵字,直接調(diào)用即可創(chuàng)建一個獨一無二的 symbol 類型的值。

可以在使用 Symbol 方法創(chuàng)建 symbol 類型值的時候傳入一個參數(shù),這個參數(shù)需要是一個字符串。如果傳入的參數(shù)不是字符串,會先自動調(diào)用傳入?yún)?shù)的 toString 方法轉(zhuǎn)為字符串:

上面代碼的第三行可能會報一個錯誤:This condition will always return 'false' since the types 'unique symbol' and 'unique symbol' have no overlap. 這是因為編譯器檢測到這里的 s1 === s2 始終是false,所以編譯器提醒這代碼寫的多余,建議進行優(yōu)化。

上面使用Symbol創(chuàng)建了兩個symbol對象,方法中都傳入了相同的字符串,但是兩個symbol值仍然是false,這就說明了 Symbol 方法會返回一個獨一無二的值。Symbol 方法傳入的這個字符串,就是方便我們區(qū)分 symbol 值的??梢哉{(diào)用 symbol 值的 toString 方法將它轉(zhuǎn)為字符串:

在TypeScript中使用symbol就是指定一個值的類型為symbol類型:

在ES6中,對象的屬性是支持表達式的,可以使用于一個變量來作為屬性名,這對于代碼的簡化有很多用處,表達式必須放在大括號內(nèi):

symbol 也可以作為屬性名,因為symbol的值是獨一無二的,所以當(dāng)它作為屬性名時,不會與其他任何屬性名重復(fù)。當(dāng)需要訪問這個屬性時,只能使用這個symbol值來訪問(必須使用方括號形式來訪問):

在使用obj.name訪問時,實際上是字符串name,這和訪問普通字符串類型的屬性名是一樣的,要想訪問屬性名為symbol類型的屬性時,必須使用方括號。方括號中的name才是我們定義的symbol類型的變量name。

使用 Symbol 類型值作為屬性名,這個屬性是不會被 for…in遍歷到的,也不會被 Object.keys() 、 Object.getOwnPropertyNames() 、 JSON.stringify() 等方法獲取到:

雖然這些方法都不能訪問到Symbol類型的屬性名,但是Symbol類型的屬性并不是私有屬性,可以使用 Object.getOwnPropertySymbols 方法獲取對象的所有symbol類型的屬性名:

除了這個方法,還可以使用ES6提供的 Reflect 對象的靜態(tài)方法 Reflect.ownKeys ,它可以返回所有類型的屬性名,Symbol 類型的也會返回:

Symbol 包含兩個靜態(tài)方法, for 和 keyFor 。 1)Symbol.for()

用Symbol創(chuàng)建的symbol類型的值都是獨一無二的。使用 Symbol.for 方法傳入字符串,會先檢查有沒有使用該字符串調(diào)用 Symbol.for 方法創(chuàng)建的 symbol 值。如果有,返回該值;如果沒有,則使用該字符串新創(chuàng)建一個。使用該方法創(chuàng)建 symbol 值后會在全局范圍進行注冊。

上面代碼中,創(chuàng)建了一個iframe節(jié)點并把它放在body中,通過這個 iframe 對象的 contentWindow 拿到這個 iframe 的 window 對象,在 iframe.contentWindow上添加一個值就相當(dāng)于在當(dāng)前頁面定義一個全局變量一樣??梢钥吹?,在 iframe 中定義的鍵為 TypeScript 的 symbol 值在和在當(dāng)前頁面定義的鍵為'TypeScript'的symbol 值相等,說明它們是同一個值。

2)Symbol.keyFor() 該方法傳入一個 symbol 值,返回該值在全局注冊的鍵名:

看完簡單的數(shù)據(jù)類型,下面就來看看比較復(fù)雜的數(shù)據(jù)類型,包括JavaScript中的數(shù)組和對象,以及TypeScript中新增的元組、枚舉、Any、void、never、unknown。

在 TypeScript 中有兩種定義數(shù)組的方式:

以上兩種定義數(shù)組類型的方式雖然本質(zhì)上沒有任何區(qū)別,但是更推薦使用第一種形式來定義。一方面可以避免與 JSX 語法沖突,另一方面可以減少代碼量。

注意,這兩種寫法中的 number 指定的是數(shù)組元素的類型,也可以在這里將數(shù)組的元素指定為其他任意類型。如果要指定一個數(shù)組里的元素既可以是數(shù)值也可以是字符串,那么可以使用這種方式: number|string[] 。

在JavaScript中,object是引用類型,它存儲的是值的引用。在TypeScript中,當(dāng)想讓一個變量或者函數(shù)的參數(shù)的類型是一個對象的形式時,可以使用這個類型:

可以看到,當(dāng)給一個對象類型的變量賦值一個對象時,就會報錯。對象類型更適合以下場景:

在 JavaScript 中并沒有元組的概念,作為一門動態(tài)類型語言,它的優(yōu)勢是支持多類型元素數(shù)組。但是出于較好的擴展性、可讀性和穩(wěn)定性考慮,我們通常會把不同類型的值通過鍵值對的形式塞到一個對象中,再返回這個對象,而不是使用沒有任何限制的數(shù)組。TypeScript 的元組類型正好彌補了這個不足,使得定義包含固定個數(shù)元素、每個元素類型未必相同的數(shù)組成為可能。

元組可以看做是數(shù)組的擴展,它表示已知元素數(shù)量和類型的數(shù)組,它特別適合用來實現(xiàn)多值返回。確切的說,就是已知數(shù)組中每一個位置上的元素的類型,可以通過元組的索引為元素賦值::

可以看到,定義的arr元組中,元素個數(shù)和元素類型都是確定的,當(dāng)為arr賦值時,各個位置上的元素類型都要對應(yīng),元素個數(shù)也要一致。

當(dāng)訪問元組元素時,TypeScript也會對元素做類型檢查,如果元素是一個字符串,那么它只能使用字符串方法,如果使用別的類型的方法,就會報錯。

在TypeScript 新的版本中,TypeScript會對元組做越界判斷。超出規(guī)定個數(shù)的元素稱作越界元素,元素賦值必須類型和個數(shù)都對應(yīng),不能超出定義的元素個數(shù)。

這里定義了接口 Tuple ,它繼承數(shù)組類型,并且數(shù)組元素的類型是 number 和 string 構(gòu)成的聯(lián)合類型,這樣接口 Tuple 就擁有了數(shù)組類型所有的特性。并且指定索引為0的值為 string 類型,索引為1的值為 number 類型,同時指定 length 屬性的類型字面量為 2,這樣在指定一個類型為這個接口 Tuple 時,這個值必須是數(shù)組,而且如果元素個數(shù)超過2個時,它的length就不是2是大于2的數(shù)了,就不滿足這個接口定義了,所以就會報錯;當(dāng)然,如果元素個數(shù)不夠2個也會報錯,因為索引為0或1的值缺失。

TypeScript 在 ES 原有類型基礎(chǔ)上加入枚舉類型,使得在 TypeScript 中也可以給一組數(shù)值賦予名字,這樣對開發(fā)者比較友好。枚舉類型使用enum來定義:

上面定義的枚舉類型的Roles,它有三個值,TypeScript會為它們每個值分配編號,默認(rèn)從0開始,在使用時,就可以使用名字而不需要記數(shù)字和名稱的對應(yīng)關(guān)系了:

除此之外,還可以修改這個數(shù)值,讓SUPER_ADMIN = 1,這樣后面的值就分別是2和3。當(dāng)然還可以給每個值賦予不同的、不按順序排列的值:

我們可以將一個值定義為any類型,也可以在定義數(shù)組類型時使用any來指定數(shù)組中的元素類型為任意類型:

any 類型會在對象的調(diào)用鏈中進行傳導(dǎo),即any 類型對象的任意屬性的類型都是 any,如下代碼所示:

需要注意:不要濫用any類型,如果代碼中充滿了any,那TypeScript和JavaScript就毫無區(qū)別了,所以除非有充足的理由,否則應(yīng)該盡量避免使用 any ,并且開啟禁用隱式 any 的設(shè)置。

void 和 any 相反,any 是表示任意類型,而 void 是表示沒有類型,就是什么類型都不是。這在 定義函數(shù),并且函數(shù)沒有返回值時會用到 :

需要注意: void 類型的變量只能賦值為 undefined 和 null ,其他類型不能賦值給 void 類型的變量。

never 類型指永遠不存在值的類型,它是那些 總會拋出異常 或 根本不會有返回值的函數(shù)表達式的返回值 類型,當(dāng)變量被永不為真的類型保護所約束時,該變量也是 never 類型。

下面的函數(shù),總是會拋出異常,所以它的返回值類型是never,用來表明它的返回值是不存在的:

never 類型是任何類型的子類型,所以它可以賦值給任何類型;而沒有類型是 never 的子類型,所以除了它自身以外,其他類型(包括 any 類型)都不能為 never 類型賦值。

上面代碼定義了一個立即執(zhí)行函數(shù),函數(shù)體是一個死循環(huán),這個函數(shù)調(diào)用后的返回值類型為 never,所以賦值之后 neverVariable 的類型是 never 類型,當(dāng)給neverVariable 賦值 123 時,就會報錯,因為除它自身外任何類型都不能賦值給 never 類型。

基于 never 的特性,我們可以把 never 作為接口類型下的屬性類型,用來禁止操作接口下特定的屬性:

可以看到,無論給 props.name 賦什么類型的值,它都會提示類型錯誤,這就相當(dāng)于將 name 屬性設(shè)置為了只讀 。

unknown 是TypeScript在3.0版本新增的類型,主要用來描述類型并不確定的變量。它看起來和any很像,但是還是有區(qū)別的,unknown相對于any更安全。

對于any,來看一個例子:

上面這些語句都不會報錯,因為value是any類型,所以后面三個操作都有合法的情況,當(dāng)value是一個對象時,訪問name屬性是沒問題的;當(dāng)value是數(shù)值類型的時候,調(diào)用它的toFixed方法沒問題;當(dāng)value是字符串或數(shù)組時獲取它的length屬性是沒問題的。

當(dāng)指定值為unknown類型的時候,如果沒有 縮小類型范圍 的話,是不能對它進行任何操作的??傊?,unknown類型的值不能隨便操作。那什么是類型范圍縮小呢?下面來看一個例子:

這里由于把value的類型縮小為Date實例的范圍內(nèi),所以進行了value.toISOString(),也就是使用ISO標(biāo)準(zhǔn)將 Date 對象轉(zhuǎn)換為字符串。

使用以下方式也可以縮小類型范圍:

關(guān)于 unknown 類型,在使用時需要注意以下幾點:

在實際使用中,如果有類型無法確定的情況,要盡量避免使用 any,因為 any 會丟失類型信息,一旦一個類型被指定為 any,那么在它上面進行任何操作都是合法的,所以會有意想不到的情況發(fā)生。因此如果遇到無法確定類型的情況,要先考慮使用 unknown。

關(guān)于javascript每一步注解

script

var a=document.links; //把頁面上所有的鏈接存在數(shù)組a中

for(i=0;ia.length;i++) //在數(shù)組a中循環(huán)

document.write(a[i]+'br'); //在頁面上顯示數(shù)組a中的每個元素,也就是頁面上的每個鏈接,br是換行用的

/script

求javascript這幾個代碼的//詳細(xì)注解。

if(userinfo.name.value.length2){ //如果USERINFO的名字參數(shù)長度小于2個字節(jié)的話

userinfo.name.focus(); //這是一個方法,就是光標(biāo)返回到text框

alert("用戶名不能為空或長度小于2,請重新輸入!");

return false; //失敗,返回重新輸入。

}

if(userinfo.password.value.length6){

userinfo.password.focus();

alert("密碼長度不能小于6,請重新輸入");

return false;

}

if(userinfo.password.value!=userinfo.password1.value){

userinfo.password.focus();

userinfo.password.value=''; //如果密碼為空

userinfo.password1.value=''; //如果密碼2為空

alert("兩次輸入的密碼不同,請重新輸入");

return false;

}

if(document.userinfo.useremail.value.length!=0){ //從這里到下面都是驗證郵件格式的,用 了“||”并且來說明,驗證一下郵件的格式是否準(zhǔn)確

if(document.userinfo.useremail.value.charAt(0)=="."|| //同上

document.userinfo.useremail.value.charAt(0)=="@"|| //同上

document.userinfo.useremail.value.indexOf('@',0)==-1|| //同上

document.userinfo.useremail.value.indexOf('@',0)==-1){ //同上

alert("地址不正確!");

document.userinfo.useremail.focus(); //和

return false;

}

}

else{

alert("地址不能為空");

document.userinfo.useremail.useremail.focus(); //和userinfo.name.focus()一個意思。

return false;

如果采用html5的話,不需要使用這段js來驗證表單中的輸入格式是否正確。

javascript詳細(xì)注解//幫幫我寫上哈

html

head

title表單數(shù)據(jù)驗證/title

script

function checknumber(){ //定義一個函數(shù),函數(shù)名為checknumber,用來驗證輸入

if(userform.acctno.value==""||userform.cname.value==""){ //判斷輸入控件accton和cname是否有輸入數(shù)據(jù),假如兩個控件的值都為空

alert("賬號或姓名沒有填寫!"); //則彈出對話框:“帳號或姓名沒有填寫”

return false; //返回值為false

}

else{

if (isnumeric(userform.acctno.value)) //判斷輸入空間acctno錄入的值是否為數(shù)字

return false;

else{

alert("請輸入有效的賬號!");

return false;

}

}

}

function isnumeric(str){ //定義一個函數(shù)isnumeric,用來判斷字符串是否為數(shù)字組成

for (var i=0;istr.length;i++){ //循環(huán)遍歷字符串,從第一個下標(biāo)開始循環(huán)到字符串長度為止

var ch=str.substring(i,i+1); //定義變量ch用于存儲循環(huán)中下標(biāo)到下標(biāo)+1的值(即獲取字符串中每個字符的值)

if(ch"0"||ch"9"||str.length==null) //判斷字符是否是數(shù)字(符合此條件則不是數(shù)字)

return false;

}

return true; //不符合上述條件則是數(shù)字

}

/script

/head

body

form method="get"action=""name="userform" onsubmit="return checknumber()" //這個代碼里的onsubmit="return checknumber()"是什么意思 這句的意思是當(dāng)表單提交的時候獲取checknumber()里面的返回值

p賬號;input type="text" name="acctno" size="16"

p姓名;input type="text" name="cname" size="10"

p input type="submit" value="提交"

input type="reset" value="重填"

/form

/body

/html

求此楊輝三角程序詳細(xì)注解(javascript編寫)

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""

html xmlns=""

headtitlesdfds/title

style

body{ word-spacing:12pt} !--控制間隙--

/style

/head

body

script LANGUAGE="JAVASCRIPT"

var arr=new Array(); /* 定義存放的數(shù)組 */

for(var i=0;i10;i++)

arr[i]=new Array();

arr[0][0]=1;

document.write("center"); //使輸出的楊輝三角居中

for(var row=0;row10;row++){

for(var col=0;col=row;col++)

{

if(col==0||col==row) //如果是每一行的開頭或結(jié)尾都為1

arr[row][col]=1;

else

arr[row][col]=arr[row-1][col-1]+arr[row-1][col]; //否則值等于上一行的本列與前一列之和

document.write(arr[row][col]);

document.write("?");

}

document.write("br");//換行

}

document.write("/center");

/script

/body

/html


當(dāng)前文章:javascript注解,js代碼注釋
文章鏈接:http://weahome.cn/article/dsdcjss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部