關於JavaScipt對象的基本知識

来源:http://www.cnblogs.com/croso/archive/2016/03/07/5250492.html
-Advertisement-
Play Games

關於JavaScipt對象的基本知識 JavaScript是運用“對象化編程”的,又叫“面向對象編程”的。所謂“對象化編程”,意義是把JavaScript能涉及的領域劃分成各種對象,對象後面還連續劃分對象直至很是詳細為止,整個的編程都以對象為出發點,基於對象。何謂對象,小到一個變數,大到網頁文檔、窗


 

關於JavaScipt對象的基本知識

JavaScript是運用“對象化編程”的,又叫“面向對象編程”的。所謂“對象化編程”,意義是把JavaScript能涉及的領域劃分成各種對象,對象後面還連續劃分對象直至很是詳細為止,整個的編程都以對象為出發點,基於對象。何謂對象,小到一個變數,大到網頁文檔、視窗乃至屏幕,都是對象。這裡將“面向對象”報告JavaScript的運轉環境。

對象的基本知識

對象是可以從JavaScript“勢力範圍”劃分出來的一小塊,可以是一段文字、一張圖片、一個表單(Form)等等。每個對象備它本人的屬性、方式和事件。對象的屬性是反映該對象某些特定的性子的,比如:字元串的長度、圖象的長寬、文字框(Textbox)里的文字等等;對象的方式能關於該對象做一些任務,比喻,表單的“提交”(Submit),視窗的“轉動”(Scrolling)等等;而對象的事件就可以相應發作正在對象上的任務,比喻提交表單發作表單的“提交事件”,點擊連接發作的“點擊事件”。不是整個的對象都有以上三天性質,有些沒有事件,有些惟獨屬性。援用對象的任一“性子”用“<對象名>.<性子名>”這類方式。

基本對象

此刻我們要複習以上學過的內容了——把一些數據典範用對象的角度從頭深造一下。

Number“數字”對象。這個對象用得很少,作者就一次也沒有見過。可是屬於“Number”的對象,也便是“變數”就多了。

屬性
MAX_VALUE用法Number.MAX_VALUE;返回“最大值”。
MIN_VALUE用法:Number.MIN_VALUE;返回“最小值”。
NaN用法:Number.NaN或許NaN;返回“NaN”。“NaN”(不是數值)正在很早就先容過了。
NEGATIVE_INFINITY用法:Number.NEGATIVE_INFINITY;返回:負無窮大,比“最小值”還小的值。
POSITIVE_INFINITY用法:Number.POSITIVE_INFINITY;返回:正無窮大,比“最大值”還大的值。
toString()用法:<數值變數>.toString();返回:字元串形式的數值。如:若a==123;則a.toString()=='123'。

String字元串對象,聲明一個字元串對象最龐雜、快捷、有用、常常的方式便是間接賦值。

屬性

length用法:<字元串對象>.length;返回該字元串的長度。

方法
charAt()用法:<字元串對象>.charAt(<位置>);返回該字元串位於第<位置>位的單個字元。註意:字元串中的一個字元是第0位的,第二個才是第1位的,起初一個字元是第length-1位的。
charCodeAt()用法:<字元串對象>.charCodeAt(<位置>);返回該字元串位於第<位置>位的單個字元的ASCII碼。
fromCharCode()用法:String.fromCharCode(a,b,c...);返回一個字元串,該字元串每逐個個字元的ASCII碼由a,b,c...等來一定。 indexOf()用法:<字元串對象>.indexOf(<另外一個字元串對象>[,<起始位置>]);該方式從<字元串對象>中查找<另外一個字元串對象>(如果給出<起始位置>就無視以前的位置),如果找到了,就返回它的位置,沒有找到就返回“-1”。整個的“位置”都是從零起頭的。
lastIndexOf()用法:<字元串對象>.lastIndexOf(<另外一個字元串對象>[,<起始位置>]);跟indexOf()相似,可是是從後邊起頭找。
split()用法:<字元串對象>.split(<離開符字元>);返回一個數組,該數組是從<字元串對象>中分離開來的,<離開符字元>決定了分離的地方,它本人不會包含正在所返回的數組中。比喻:'1&2&345&678'.split('&')返回數組:1,2,345,678。關於數組,我們等一下就接頭。
substring()用法:<字元串對象>.substring(<始>[,<終>]);返回原字元串的子字元串,該字元串是原字元串從<始>位置到<終>位置的前一位置的一段。<終>-<始>=返回字元串的長度(length)。如果沒有指定<終>或許指定得逾越字元串長度,則子字元串從<始>位置不停取到原字元串尾。如果所指定的位置不克不及返回字元串,則返回空字元串。
span style="color: #800080;"> substr()用法:<字元串對象>.substr(<始>[,<長>]);返回原字元串的子字元串,該字元串是原字元串從<始>位置起頭,長度為<長>的一段。如果沒有指定<長>或許指定得逾越字元串長度,則子字元串從<始>位置不停取到原字元串尾。如果所指定的位置不克不及返回字元串,則返回空字元串。
toLowerCase()用法:<字元串對象>.toLowerCase();返回把原字元串整個大寫字母都變為小寫的字元串。
toUpperCase()用法:<字元串對象>.toUpperCase();返回把原字元串整個小寫字母都變為大寫的字元串。

Array數組對象。

數組對象是一個對象的集合,裡邊的對象可以是區別典範的。數組的每一個成員對象都有一個“下標”,用來暗示它正在數組中的位置(既然是“位置”,就也是從零起頭的啦)。 數組的概念方式:

var<數組名>=newArray();

多麼就概念了一個空數組。以後要增添數組元素,就用:

<數組名>[<下標>]=...;

註意此處的方括弧不是“可以省略”的意義,數組的下標暗示方式便是用方括弧括起來。 如果想正在概念數組的時辰間接初始化數據,請用:

var<數組名>=newArray(<元素1>,<元素2>,<元素3>...);

例如,varmyArray=newArray(1,4.5,'Hi');概念了一個數組myArray,裡邊的元素是:myArray[0]==1;myArray[1]==4.5;myArray[2]=='Hi'。 可是,如果元素列表中惟唯一個元素,而這個元素又是一個正整數的話,這將概念一個包含<正整數>個空元素的數組。 註意:JavaScript惟唯一維數組!萬萬不要用“Array(3,4)”這類愚蠢的方式來概念4x5的二維數組,大約用“myArray[2,3]”這類方式來返回“二維數組”中的元素。肆意“myArray[...,3]”這類形式的調用實踐上只返回了“myArray[3]”。要運用多維數組,請用這類捏造法:

varmyArray=newArray(newArray(),newArray(),newArray(),...);

實踐上這是一個一維數組,裡邊的每一個元素又是一個數組。調用這個“二維數組”的元素時:myArray[2][3]=...;

屬性 length用法:<數組對象>.length;返回:數組的長度,即數組裡有幾多個元素。它即是數組裡起初一個元素的下標加一。以是,想增添一個元素,只必要:myArray[myArray.length]=...。
方式 join()用法:<數組對象>.join(<離開符>);返回一個字元串,該字元串把數組中的各個元素串起來,用<離開符>置於元素與元素之間。這個方式不影響數組原先的內容。
reverse()用法:<數組對象>.reverse();使數組中的元素次序反過來。如果關於數組[1,2,3]運用這個方式,它將使數組變為:[3,2,1]。
slice()用法:<數組對象>.slice(<始>[,<終>]);返回一個數組,該數組是原數組的子集,始於<始>,究竟<終>。如果不給出<終>,則子集不停取到原數組的掃尾。
sort()用法:<數組對象>.sort([<方式函數>]);使數組中的元素依據一定的次序分列。如果不指定<方式函數>,則按字母次序分列。正在這類環境下,80是比9排得前的。如果指定<方式函數>,則按<方式函數>所指定的排序方式排序。<方式函數>有點難報告,此處只將一些適用的<方式函數>先容給巨匠。

按升序分列數字: functionsortMethod(a,b){ returna-b; }
myArray.sort(sortMethod);

按降序分列數字:把後面的“a-b”該成“b-a”。 無關函數,請看後面。

Math“數學”對象,提供關於數據的數學計較。後面所提到的屬性和方式,再也不詳細說明“用法”,巨匠正在運用的時辰記著用“Math.<名>”這類格式。

屬性

E 前平常數 e (2.718281828...)。
LN2 返回 2 的自然關於數 (ln 2)。
LN10 返回 10 的自然關於數 (ln 10)。
LOG2E 返回以 2 為低的 e 的關於數 (log2e)。
LOG10E 返回以 10 為低的 e 的關於數 (log10e)。
PI 返回π(3.1415926535...)。
SQRT1_2 返回 1/2 的平方根。
SQRT2 返回 2 的平方根。

方法

abs(x) 返回 x 的相關於值。
acos(x) 返回 x 的反餘弦值(餘弦值即是 x 的角度),用弧度暗示。
asin(x) 返回 x 的歸正弦值。 atan(x) 返回 x 的歸正切值。
atan2(x, y) 返回覆平面內點(x, y)關於應的雙數的幅角,用弧度暗示,其值正在 -π 到 π 之間。
ceil(x) 返回大於即是 x 的最小整數。
cos(x) 返回 x 的餘弦。
exp(x) 返回 e 的 x 次冪 (ex)。
floor(x) 返回小於即是 x 的最大整數。
log(x) 返回 x 的自然關於數 (ln x)。
max(a, b) 返回 a, b 中較大的數。
min(a, b) 返回 a, b 中較小的數。
pow(n, m) 返回 n 的 m 次冪 (nm)。
random() 返回大於 0 小於 1 的一個隨機數。
round(x) 返回 x 四捨五入後的值。
sin(x) 返回 x 的正弦。
sqrt(x) 返回 x 的平方根。
tan(x) 返回 x 的正切。

Date 日期對象。這個對象可以儲存肆意一個日期,從 0001 年到 9999 年,而且可以切確到毫秒數(1/1000 秒)。正在內部,日期對象是一個整數,它是從 1970 年 1 月 1 日零時正起頭計較到日期對象所指的日期的毫秒數。如果所指日期比 1970 年早,則它是一個負數。整個日期時間,如果不指按時區,都採用“UTC”(天下時)時區,它與“GMT”(格林威治時間)正在數值上是同樣的。

定義一個日期對象: var d = new Date; 這個方式使 d 成為日期對象,而且已經有初始值:以後時間。如果要自定初始值,可以用:
var d = new Date(99, 10, 1);
//99 年 10 月 1 日 var d = new Date('Oct 1, 1999'); //99 年 10 月 1 日
等等方式。最佳的方式便是用後面先容的“方式”來嚴格的概念時間。

方法

如下有不少“g/set[UTC]XXX”多麼的方式,它暗示既有“getXXX”方式,又有“setXXX”方式。“get”是得到某個數值,而“set”是設定某個數值。如果帶有“UTC”字母,則暗示得到/設定的數值是基於 UTC 時間的,沒有則暗示基於外地時間或許掃瞄期預設時間的。
如無說明,方式的運用格式為:“<對象>.<方式>”,下同。
g/set[UTC]FullYear() 返回/配置年份,用四位數暗示。如果運用“x.set[UTC]FullYear(99)”,則年份被設定為 0099 年。
g/set[UTC]Year()返回/配置年份,用兩位數暗示。設定的時辰掃瞄器自動加之“19”掃尾,故運用“x.set[UTC]Year(00)”把年份設定為 1900 年。
g/set[UTC]Month()返回/配置月份。 g/set[UTC]Date()返回/配置日期。
g/set[UTC]Day()返回/配置禮拜,0 暗示禮拜天。
g/set[UTC]Hours()返回/配置小時數,24小時制。 g/set[UTC]Minutes()返回/配置分鐘數。
g/set[UTC]Seconds()返回/配置秒鐘數。 g/set[UTC]Milliseconds()返回/配置毫秒數。
g/setTime() 返回/配置時間,該時間便是日期對象的內部搞定方式:從 1970 年 1 月 1 日零時正起頭計較到日期對象所指的日期的毫秒數。如果要使某日期對象所指的時間推遲 1 小時,就用:“x.setTime(x.getTime() + 60 * 60 * 1000);”(一小時 60 分,一分 60 秒,一秒 1000 毫秒)。
getTimezoneOffset() 前來日期對象採用的時區與格林威治時間所差的分鐘數。正在格林威治東方的市區,該值為負,比喻:中國時區(GMT+0800)返回“-480”。
toString() 返回一個字元串,描寫日期對象所指的日期。這個字元串的格式相同於:“Fri Jul 21 15:43:46 UTC+0800 2000”。
toLocaleString() 返回一個字元串,描寫日期對象所指的日期,用外地時間暗示格式。如:“2000-07-21 15:43:46”。 toGMTString() 返回一個字元串,描寫日期對象所指的日期,用 GMT 格式。 toUTCString() 返回一個字元串,描寫日期對象所指的日期,用 UTC 格式。
parse() 用法:Date.parse(<日期對象>);返回該日期對象的內部標明方式。

全局對象

全局對象從不現形,它可以說是虛擬出來的,宗旨正在於把全局函數“對象化”。正在 Microsoft JScript 語言參登科,它叫做“Global 對象”,可是援用它的方式和屬性從來不用“Global.xxx”(何況多麼做會蛻化),而間接用“xxx”。

屬性

NaN 一早就說過了。
方法
eval() 把括弧內的字元串看成標準語句或許標明式來運轉。
isFinite() 如果括弧內的數字是“無窮”的(介於 Number.MIN_VALUE 和 Number.MAX_VALUE 之間)就返回 true;不然返回 false。
isNaN() 如果括弧內的值是“NaN”則返回 true 不然返回 false。
parseInt() 返回把括弧內的內容轉換成整數以後的值。如果括弧內是字元串,則字元串掃尾的數字部份被轉換成整數,如果以字母掃尾,則返回“NaN”。
parseFloat() 返回把括弧內的字元串轉換成浮點數以後的值,字元串掃尾的數字部份被轉換成浮點數,如果以字母掃尾,則返回“NaN”。
toString() 用法:<對象>.toString();把對象轉換成字元串。如果正在括弧中指定一個數值,則轉換過程中整個數值轉換成特定進位。
escape() 返回括弧中的字元串顛末編碼後的新字元串。該編碼運用於 URL,也便是把空格寫成“%20”這類格式。“+”不被編碼,如果要“+”也被編碼,請用:escape('...', 1)。
unescape() 是 escape() 的反過程。解編括弧中字元串成為一般字元串。

函數函數的概念  所謂“函數”,是有返回值的對象或許對象的方式。
函數的種類
常見的函數有:機關函數,如 Array(),能機關一個數組;全局函數,即全局對象里的方式;自概念函數;等等。
自定義函數 

定義函數用如下語句:
function 函數名([參數集]) {    
...    
[return[ <值>];]
    ... } 

此中,用正在 function 以後和函數掃尾的大括弧是不克不及省去的,就算整個函數惟唯一句。  函數名與變數名有同樣的起名規矩,也便是只包含字母數字下劃線、字母排頭、不克不及與保留字重覆等。  參數集無關緊要,但括弧就一定要有。

參數是函數內部向函數內部傳送信息的橋梁,比喻,想叫一個函數返回 3 的立方,你就要讓函數知道“3”這個數值,這時分辰就要有一個變數來接收數值,這類變數叫做參數。  參數集是一個或許多個用逗號離開開來的參數的集合,如:a, b, c。

函數的內部有一至少行語句,這些語句其實不會當即實施,而只當有別的程式調用它時才實施。這些語句中大約包含“return”語句。正在實施一個函數的時辰,碰著 return 語句,函數立刻遏制實施,並返回到調用它的程式中。如果“return”後帶有<值>,則參加函數的同時返回該值。

正在函數的內部,參數可以間接看成變數來運用,並可以用 var 語句來新建一些變數,可是這些變數都不克不及被函數內部的過程調用。要使函數內部的信息能被內部調用,要末運用“return”返回值,要末運用全局變數。

全局變數 正在 Script 的“根部”(非函數內部)的“var”語句所概念的變數便是全局變數,它能正在整個過程的肆意地方被調用、修改。

例如:
function addAll(a, b, c) {
    return a + b + c;
} var total = addAll(3, 4, 5); 

這個例子成立了一個叫“addAll”的函數,它有 3 個參數:a, b, c,功能是返回三個數相加的效果。正在函數內部,把持“var total = addAll(3, 4, 5);”接收函數的返回值。  更多的時候,函數是沒有返回值的,這類函數正在一些有點嚴格的語言中是叫做“過程”的,比喻 Basic 類語言的“Sub”、Pascal 語言的“procedure”。 

屬性
arguments 一個數組,反映外部程式調用函數時指定的參數。用法:間接正在函數內部調用“arguments”。  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • (第一篇博文) 今天在一個交流群里見他們無聊,然後找到之前收藏的一些c語言題目放出去想讓他們做,結果反倒是自己不會做,於是花了很多時間去想。 原題:張三說李四在說謊,李四說王五在說謊,王五說張三和李四都在說謊。現在問:這三人中到底誰說的是真話,誰說的是假話? 其實問題本身並不難,只是一開始想多了,陷
  • 瞭解RegExp類型: ECMAScript通過RegExp類型來支持正則表達式。 var expression=/pattern/flags; 正則表達式的模式(pattern)部分: 可以是任何簡單或複雜的正則表達式,可以包含字元類,限定符,分組,向前查找,反向引用。 關於正則表達式中各種特殊字
  • 本文同步至微信公眾號http://mp.weixin.qq.com/s?__biz=MzAxMzgwNDU3Mg==&mid=401950045&idx=1&sn=cec056802bb52f909554691d0427f4f0#rd 對後續文章感興趣的可以掃碼關註哈 對於一個非技術人員比如說pm,
  • 效果預覽:http://hovertree.com/code/run/css/x8l6si70.html 請實用Chrome瀏覽器查看效果,手機上也可以. 代碼如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont
  • Node.js寫文件的三種方式: 1、通過管道流寫文件 採用管道傳輸二進位流,可以實現自動管理流,可寫流不必當心可讀流流的過快而崩潰,適合大小文件傳輸(推薦) 2 var readStream = fs.createReadStream(decodeURIComponent(root + filep
  • 原文出處: 攜程設計委員會 現在手機的占比越來越高,各種酷炫頁面層出不窮,這些特效都離不開css動畫。說到css動畫,主流的情況也就無非這兩大類:位移和形變。而我們在寫一個動畫特效的過程中,如何去提升它的性能呢?當然首先我們需要去瞭解一下基本的概念,比如瀏覽器渲染的工作原理等,這些我也在讀了幾位大牛
  • 看到這樣一個問題:為什麼直接在控制台運行{} + []和用console.log({} + [])輸出,兩者結果不一樣? 於是乎打開chrome的控制台運行了一下: 為什麼結果會這樣呢?不得已學習一下JS中的{}吧 複合語句 1 if() { 2 //... 3 }else { 4 //... 5
  • 除了慣例的面對對象的思想,另一種較流行的通過可復用組件創建類的方法是將簡單的類混合到一起。你可能對這種混合的方式比較熟悉或對Scala語言的特性有理解,這種模式在JavaScript社區也有一定的人氣。 混合案例 在下麵的代碼中,我們展示瞭如何在TypeScript中混合模型,看完代碼之後,再分析它
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...