基本類型與引用類型的區(qū)別
基本類型是保存在棧內(nèi)存中的簡單數(shù)據(jù)段顽爹,大小固定。
引用類型是保存在堆內(nèi)存中的對象骆姐,變量中保存的是指針镜粤,指向內(nèi)存中另一個位置,大小不固定玻褪。
基本類型值有哪些肉渴?引用類型值有哪些?
基本類型值:undefined,null,number,string,boolean归园。
引用類型值:object,array,date,regexp,function,基本包裝類型黄虱。
Object類型
創(chuàng)建對象的常用兩種方法
- new Object(),借用原生構(gòu)造函數(shù)庸诱;
- 通過對象字面量
推薦使用對象字面量方式創(chuàng)建對象捻浦,字面量初始化直接賦值,效率更高桥爽;代碼量少朱灿,給人一種封裝數(shù)據(jù)的感覺。
訪問對象屬性和方法的兩種常用方法
- 點表示法 .
- 方括號表示法 []
對比
點表示法使代碼更嚴謹钠四,方便盗扒,少寫好幾個字符跪楞。是主流的寫法。
方括號表示法主要優(yōu)點屬性可以是變量侣灶,關(guān)鍵字甸祭,保留字,錯誤的字符褥影。
Array類型
創(chuàng)建數(shù)組的兩種常見方式
- 調(diào)用原生構(gòu)造函數(shù)(Array())
- 使用數(shù)組字面量
優(yōu)缺點對比
和對象的兩種方式一樣
創(chuàng)建一個包含只含數(shù)字20的數(shù)組
- new Array(20)的解決方案
new Array(20)創(chuàng)建的是一個長度為20的數(shù)組
var arr = new Array("20");
get20 = parseInt(arr[0]);
- var get20 = [20];
檢測數(shù)組方式的對比(選講)
- isArray()
- 其他
數(shù)組各種方法
轉(zhuǎn)換方法
tolacaleString() // 轉(zhuǎn)換為本地字符串池户,時間類型比較常用
toString() // 轉(zhuǎn)為傳統(tǒng)字符串,常用
value of() // 輸出本身的值
join() // 以不同的分隔符來分割數(shù)組
棧方法
分析棧的特性凡怎,后進先出push() // 添加到數(shù)組末尾校焦,返回數(shù)組長度
pop() // 刪除并返回數(shù)組最后一項
隊列方法
與棧方法相反,先進先出shift() // 刪除并返回數(shù)組第一項
unshift() // 在數(shù)組前端添加任意項并返回新數(shù)組的長度
重排序方法
reverse() // 反轉(zhuǎn)
sort() // 按照字符編碼的順序從小到大排序统倒,想按照數(shù)字順序方法可以借比較函數(shù)
把比較函數(shù)的例子列幾個出來
操作方法
concat() // 創(chuàng)建一個數(shù)組的副本寨典,并把參數(shù)加到副本最后
slice() // 返回指定位置到數(shù)組末尾的所有項,不會影響原數(shù)組
splice() // 最強大的方法房匆,刪除耸成,插入,替換
位置方法
indexOf()
lastIndexOf()
迭代方法
解釋迭代是什么意思坛缕? 按順序訪問列表(數(shù)組)中每一項every()
filter()
forEach()
map()
some()
歸并方法
reduce()
-
reduceRight()
- 兩個方法都接受兩個參數(shù)墓猎,第一個參數(shù)為回調(diào)函數(shù),回掉函數(shù)接受四個參數(shù):
前一個值赚楚,當前值,當前項的索引骗卜,目前數(shù)組對象宠页。 - 有兼容性
- 兩個方法都接受兩個參數(shù)墓猎,第一個參數(shù)為回調(diào)函數(shù),回掉函數(shù)接受四個參數(shù):
Date類型
直接寫一個獲取時間的例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="time"></div>
<script type="text/javascript">
(function time() {
var oTime = document.getElementById('time');
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth() + 1;
var day = now.getDate();
var hour = now.getHours();
var minute = now.getMinutes();
var second = now.getSeconds();
var timer = null;
oTime.innerHTML = year+"年"+month+"月"+day+"日"+hour+"點"+minute+"分"+second+"秒";
timer = setInterval(time,1000);
function check(t) {
if(t < 10) {
return "0"+t;
}
}
})();
</script>
</body>
</html>
RegExp類型
創(chuàng)建正則表達式的兩種方式
- var reg1 = new RegExp("pattern","flags") // 借用原生正則構(gòu)造函數(shù)
- var reg2 = / pattern / flags; // 正則字面量
優(yōu)先使用字面量,使用正則字面量的時候需要對特殊字符進行轉(zhuǎn)義(\)寇仓,
function類型
函數(shù)的內(nèi)部屬性 this
函數(shù)運行時举户,會自動生成一個內(nèi)部屬性(this指針),代表調(diào)用當前函數(shù)的對象遍烦;
function getThis(){
console.log(this);
}
getThis();