前端(五):JavaScript面向對象之內建對象

来源:https://www.cnblogs.com/kuaizifeng/archive/2018/07/12/9300995.html
-Advertisement-
Play Games

一、數據類型 js中數據類型分為兩種,原始數據累次能夠和引用數據類型。 1.原始數據類型 2.引用數據類型 3.原始值和引用值 特別提醒的是,在js中,字元串被看做是原始類型,這意味著下麵的操作是非常耗記憶體的。 二、本地對象(內建對象) 1.Array對象 1.創建語法 2.屬性 3.方法 4.數組 ...


一、數據類型

  js中數據類型分為兩種,原始數據累次能夠和引用數據類型。

  1.原始數據類型

UndefinedNullBooleanNumberStringjs中五種原始數據類型(primitive type)

  2.引用數據類型

引用類型通常叫作類(class),凡是以new創建出來的對象都是引用數據類型。包括new Booleannew Number等原始類。

  3.原始值和引用值

原始值是存儲在棧(stack)中的簡單數據段,也就是說,它們的值直接存儲在變數訪問的位置。
引用值時存儲在堆(heap)中的對象,也就是說,存儲在變數處的值是一個指針(point),指向存儲對象的記憶體處。

為變數賦值時,ECMAScript的解釋程式必須判斷該值是原始類型的還是引用類型的,從而把它們放到記憶體區域。
var a = 100;   // 棧記憶體
var b = new Number(100); // 堆記憶體
console.log(a); // 數值
console.log(b); // 對象引用
console.log(b.valueOf()); // 獲取數字對象b的值

二、本地對象(內建對象)

ECMA-262把本地對象(native object)定義為獨立於宿主換將的ECMAScript實現提供的對象。本地對象就是ECMA-262定義的類(引用類型)。包括:
  - Object Funciton
  - Array String Boolean Number Date RegExp
  - Error EvalError RangeError ReferenceError SyntaxError TypeError URIError

  1.Array對象

  1.創建語法

var arr = [element0, element2, ...];
new Array();
new Array(size);
new Array(element0, element1, ...);
var arr = [100, 200, [100, 200], true, undefined, function() {
console.log("wtf.");
}, {name: "孫悟空", age: 18}];

  2.屬性

constructor  返回對創建此對象的數組函數的引用。
length 設置或返回數組中元素的數目。
prototype 可以向對象添加屬性和方法。

  3.方法

http://www.w3school.com.cn/jsref/jsref_obj_array.asp
push() 向數組的末尾添加一個或更多元素,並返回新的長度。
unshift() 向數組的開頭添加一個或更多元素,並返回新的長度。
pop() 刪除並返回數組的最後一個元素

shift() 刪除並返回數組的第一個元素。
splice() 刪除元素,並向數組添加新元素。
slice() 從某個已有的數組返回選定的元素。
sort() 對數組的元素進行排序。
reverse() 顛倒數組中元素的順序。
concat() 連接兩個或更多的數組,並返回結果。
join() 把數組的所有元素放入一個字元串。元素通過指定的分隔符進行分隔。
toSource() 返回該對象的源代碼。
toString() 把數組轉換為字元串,並返回結果。
toLocaleString() 把數組轉換為本地數組,並返回結果。
valueOf() 返回數組對象的原始值

  4.數組遍歷

var arr = [1, 3, 5, 7, 9, 11];
for(var i in arr){
console.log(arr[i]);
}

for(var j=0; j<arr.length; j++){
console.log(arr[j]);
}

for(var k=arr.length-1; k>=0; k--){
console.log(arr[k]);
}
function Person(name, force) {
this.name = name;
this.force = force;
}
var perArr = [
new Person("喬峰", 93),
new Person("段譽", 87),
new Person("虛竹", 89),
new Person("掃地僧", 97),
new Person("慕容博", 88),
new Person("慕容復", 85),
new Person("蕭遠山", 90),
];
var forceArr = [];
for (var i in perArr){
if (perArr[i].force >= 90){
forceArr.push(perArr[i]);
}
}
console.log(forceArr);

  2.String對象

  1.創建

new String(s);
String(s);
// 字元串在底層是以字元數組的形式存儲的,這源於js對字元串奇葩的設置:它是原始類型而不是引用類型。在其它大多數語言中,字元串都是引用類型。

  2.屬性

constructor  對創建該對象的函數的引用
length 字元串的長度
prototype 允許您向對象添加屬性和方法

  3.方法

http://www.w3school.com.cn/jsref/jsref_obj_string.asp
concat() 連接字元串。
split() 把字元串分割為字元串數組。
slice() 提取字元串的片斷,併在新的字元串中返回被提取的部分。

indexOf() 檢索字元串。
lastIndexOf() 從後向前搜索字元串。
substr() 從起始索引號提取字元串中指定數目的字元。
substring() 提取字元串中兩個指定的索引號之間的字元。
charAt() 返回在指定位置的字元。
charCodeAt() 返回在指定的位置的字元的 Unicode 編碼。
fromCharCode() 從字元編碼創建一個字元串。

match() 找到一個或多個正則表達式的匹配。
replace() 替換與正則表達式匹配的子串。
search() 檢索與正則表達式相匹配的值。
toSource()    代表對象的源代碼。
toString() 返回字元串。
valueOf() 返回某個字元串對象的原始值。
localeCompare() 用本地特定的順序來比較兩個字元串。
anchor() 創建 HTML 錨。

toLocaleLowerCase() 把字元串轉換為小寫。
toLocaleUpperCase() 把字元串轉換為大寫。
toLowerCase() 把字元串轉換為小寫。
toUpperCase() 把字元串轉換為大寫。
big()    使用大號字體顯示字元串。
small() 使用小字型大小來顯示字元串。
bold() 使用粗體顯示字元串。
italics() 使用斜體顯示字元串。

sup() 把字元串顯示為上標。
sub() 把字元串顯示為下標。
strike() 使用刪除線來顯示字元串
link() 將字元串顯示為鏈接。blink() 顯示閃動字元串。fontcolor() 使用指定的顏色來顯示字元串。fontsize() 使用指定的尺寸來顯示字元串。fixed() 以打字機文本顯示字元串。

   3.RegExp

  1.創建

new RegExp(pattern, attributes);
/pattern/attributes;
參數 pattern 是一個字元串,指定了正則表達式的模式或其他正則表達式。
參數 attributes 是一個可選的字元串,包含屬性 "g""i" "m",分別用於指定全局匹配、區分大小寫的匹配和多行匹配

  2.屬性

global         RegExp 對象是否具有標誌 g
ignoreCase RegExp 對象是否具有標誌 i
lastIndex 一個整數,標示開始下一次匹配的字元位置。
multiline RegExp 對象是否具有標誌 m
source 正則表達式的源文本。

  3.方法

http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
compile 編譯正則表達式。
exec 檢索字元串中指定的值。返回找到的值,並確定其位置。
test 檢索字元串中指定的值。返回 true false

  4.支持正則表達式的 String 對象的方法

search        檢索與正則表達式相匹配的值。     
match 找到一個或多個正則表達式的匹配。
replace 替換與正則表達式匹配的子串。
split 把字元串分割為字元串數組。
關於match
  如果 regexp 沒有標誌 g,那麼 match() 方法就只能在 stringObject 中執行一次匹配。如果沒有找到任何匹配的文本, match() 將返回 null。
  如果 regexp 具有標誌 g,則 match() 方法將執行全局檢索,找到 stringObject 中的所有匹配子字元串。若沒有找到任何匹配的子串,則返回 null。
  match會將匹配到的結果返回到一個數組對象中,不論是一次或是多次匹配。

  在全局檢索模式下,match() 即不提供與子表達式匹配的文本的信息,也不聲明每個匹配子串的位置。如果您需要這些全局檢索的信息,可以使用 RegExp.exec()
var str = "1234Like123Array789language";
result = str.match(/[a-zA-z]+/gi);
console.log(result instanceof Array); //true
console.log(result); // [ 'Like', 'Array', 'language' ]
var str = "1234Like123Array789language";

var match = str.match(/[a-zA-z]+/gi);
console.log(match);

var reg = new RegExp("(?<word>[a-zA-z]+)", "g");
var result;
var arr = [];
while ((result = reg.exec(str)) !== null){
// console.log(result);
// console.log(result instanceof Array);
// console.log(reg.lastIndex);
arr.push(result);
}
console.log(arr);

  4.Date

  1.創建

var myDate=new Date();

  2.屬性

constructor  返回對創建此對象的 Date 函數的引用。
prototype 可以向對象添加屬性和方法。

  3.方法

http://www.w3school.com.cn/jsref/jsref_obj_date.asp
Date() 返回當日的日期和時間。
getDate() Date 對象返回一個月中的某一天 (1 ~ 31)
etDay() Date 對象返回一周中的某一天 (0 ~ 6)
getMonth() Date 對象返回月份 (0 ~ 11)
getFullYear() Date 對象以四位數字返回年份。
getHours() 返回 Date 對象的小時 (0 ~ 23)
getMinutes() 返回 Date 對象的分鐘 (0 ~ 59)
getSeconds() 返回 Date 對象的秒數 (0 ~ 59)
getMilliseconds() 返回 Date 對象的毫秒(0 ~ 999)
setDate() 設置 Date 對象中月的某一天 (1 ~ 31)
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • (__ bridge id) 是橋接,把非OC轉化為OC使用的; CoreAnimation 屬性: keyPath: 動畫屬性; anchorPoint: 錨點,圖層移動的把柄; 解釋:在一張紙的中央釘一個圖釘,紙可以繞著圖釘旋轉,這個圖釘就相當於是一個錨點,它的值是從 0 到 1 之間。 pos ...
  • # 學習目的 - 學會使用`DrawerLayout` - 學會使用`NavigationView` - 學會使用ToolBar+DrawerLayout+NavigationView實現側滑抽屜效果 - 學會實現Toolbar在頂部以及Toolbar被遮擋的兩種效果 ...
  • 前戲 到目前為止,我們已經學過了JavaScript的一些簡單的語法。但是這些簡單的語法,並沒有和瀏覽器有任何交互。 也就是我們還不能製作一些我們經常看到的網頁的一些交互,我們需要繼續學習BOM和DOM相關知識。 JavaScript分為 ECMAScript,DOM,BOM。 BOM(Browse ...
  • 起初會想到使用keyup、keydown、keypress或者是onchange事件,onchange需要失去焦點才觸發, 其它三個有些對按住鍵盤某個鍵不放不生效,有些對使用中文輸入法正在輸入時統計不正確。 網上找到一種方法就是綁定事件input propertychange 效果如下: ...
  • 使用js來動態繪製svg圖片,首先就是要創建svg 節點。 使用createElementNS(),語法: 參數: 有效的命名空間URL有: 代碼舉例: ...
  • param:{ id:"", customerHead: "", } } } 如果修改頭像,向後臺傳base64字元串,否則會傳原圖片路徑,後臺判斷是否是base64字元串. 如果是base64字元串,則對base64字元串進行處理,在後臺伺服器生成圖片.此處需要對base64字元串進行處理,如圖所 ...
  • 當載入頁面時,“回到頂部” 預設不顯示,當拖滾動條後動態顯示;當點擊 “回到頂部” 時,勻減速回到頂部。 佈局效果如下: 1、首先在設置中的“頁面定製CSS代碼”中,添加如下css代碼(也可以修改成自己喜歡的樣式噢~): 2、然後在“博客側邊欄公告(支持HTML代碼)(支持JS代碼)”中,添加如下j ...
  • 微信的小程式是沒有分享到朋友圈的功能的。小程式目前只能分享到群里或者發給好友。但是業務需要方便推廣,需要分享到朋友圈。 經過度娘後,得出了以下思路:利用小程式canvas繪製圖片,將背景圖和二維碼繪製成一張圖片。百度過幾個好的demo,參考了一下,本以為會很簡單就解決這個問題,然而這個並不是小程式c ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...