前端(五):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 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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...