JS的類

一、種類

** 1. 系統(tǒng)類**

** 2. 自定義類**


關(guān)于幾個(gè)常用系統(tǒng)類#

1)String類 字符串類
length :取得字符串長度
indexOf(string) :取得參數(shù)在字符串中出現(xiàn)的位置
substr(num1,[num2]) :截取字符串
toLowerCase() :轉(zhuǎn)換為小寫
toUpperCase() :轉(zhuǎn)換為大寫
replace(str1,str2) :字符串替換


2)Date類 日期類
getYear() :返回年份
getFullYear() :返回年份
getMonth() :返回月份 (0---11)
getDate() :返回每月第幾天
getDay() :返回星期數(shù)(0-6)
getHours() :返回小時(shí)數(shù)
getMinutes() :返回分鐘數(shù)
getSeconds() :返回秒數(shù)
getMilliseconds() :返回毫秒數(shù)


3)Math類 數(shù)學(xué)類
ceil(數(shù)值) :返回大于或等于該數(shù)的最小整數(shù)
floor(數(shù)值) :返回小于或等于該數(shù)的最大整數(shù)
min(數(shù)值1,數(shù)值2) :返回最小數(shù)
max(數(shù)值1,數(shù)值2) :返回最大數(shù)
pow(數(shù)值1,數(shù)值2) :返回?cái)?shù)值1的數(shù)值2次數(shù)
random() :返回隨機(jī)數(shù) 0----------1
round(數(shù)值) :四舍五入
sqrt(數(shù)值) :開平方根



二、自定義類的使用

1、類的定義
語法:
function 類名(){
}
在js中,沒有類的定義語句,只有function,每一個(gè)function,我們可以認(rèn)為它是同名類的構(gòu)造函數(shù)
Function person -----> 它是Person類的構(gòu)造函數(shù)
這種函數(shù)也叫構(gòu)造器
function Person(){
}

2、聲明對(duì)象
語法:
var 對(duì)象=new 類名();
開辟相應(yīng)內(nèi)存空間
function Person(){
alert('hello');
}
var p1 = new Person();
執(zhí)行上題,我們發(fā)現(xiàn),在實(shí)例化時(shí),直接執(zhí)行了Person構(gòu)造函數(shù)

3、關(guān)于對(duì)象屬性的使用
語法:

  • 對(duì)象.屬性;
  • 對(duì)象[‘屬性’];
    在js中,對(duì)象屬性是動(dòng)態(tài)添加的,對(duì)象屬性可以使用“.”或[‘’]這兩種形式表示出來
    對(duì)象的屬性可以是任何數(shù)據(jù)類型,如:字符串、數(shù)字、對(duì)象
    window.document.write();
    window.navigator.appCodeName

4、重點(diǎn)說明
在js中,一切都是對(duì)象
var num = 10; //Number
var str =‘hello’; //String
var flag = true; //Boolean
var per = new Person();

  • 三個(gè)常用關(guān)鍵字: *
    constructor:返回的是對(duì)象的構(gòu)造器
    typeof :返回?cái)?shù)據(jù)類型
    instanceof :判斷對(duì)象是否是某個(gè)類的實(shí)例
    alert(p1.constructor);
    alert(typeof p1);
    alert(p1 instanceof Person);

三、對(duì)象在內(nèi)存中表現(xiàn)形式(指針指向的是否是同一個(gè)地址)

** 1. 如果創(chuàng)建第二個(gè)對(duì)象,會(huì)擁有name和age屬性么**

function Person(){
}
var p1 = new Person();
p1.name = 'zhangsan';
p1.age=30;
var p2 = new Person();
alert(p2.name);
對(duì)象內(nèi)存引用圖_0.png

創(chuàng)建p1對(duì)象時(shí),會(huì)為p1開辟相應(yīng)的堆空間,然后將name和age屬性以及值添加到p1所指向的堆空間中,
創(chuàng)建p2對(duì)象時(shí),也會(huì)為p2對(duì)象開辟對(duì)應(yīng)的空間,但p2所指向的堆空間是空的,
所以P2對(duì)象沒有name和age屬性

2. 如果創(chuàng)建第二個(gè)對(duì)象p2,使用p1為p2賦值會(huì)怎樣?

function Person(){
}
var p1 = new Person();
p1.name = 'zhangsan';
p1.age=30;
var p2=p1;
alert(p2.name);
p2.name='lisi';
alert(p1.name);
對(duì)象內(nèi)存引用圖_1.png

Var p2=p1;
將p1棧中保存的堆的地址賦值給了p2,所以說,p2也指向了p1指向的堆內(nèi)存的地址
兩個(gè)對(duì)象指向了同一塊堆內(nèi)存,所以改變一個(gè)對(duì)象的屬性,會(huì)影響到另一個(gè)對(duì)象
Js中的數(shù)據(jù)類型
值類型
引用類型

**3.如果刪除了p2對(duì)象,是否會(huì)影響到p1對(duì)象 **

var p1 = new Person();
p1.name = 'zhangsan';
p1.age=30;
var p2 = p1;
p2 = null;
alert(p1.name + p1.age);
對(duì)象內(nèi)存引用圖_2.png

P2=null; 表示釋放p2所占的??臻g,但p1的空間仍保留,p1仍然指向相應(yīng)的堆空間,所以刪除p2不會(huì)影響到p1對(duì)象。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容