在上一篇文章《JS基礎知識點(一)》中我們學習了什麼是js、js寫法、js數據類型、js的函數。在本篇文章中我們將學習重要的部分:面向對象以及常用對象(math、date、string等)的方法
- 面向對象
面向對象特性:封裝,繼承,多態----抽象性
對象:對象應該有特徵(屬性)和行為(方法),特指的某個事物
- 創建對象的3種方式
1. 通過調用系統的Object構造函數創建對象
var 對象名字=new Object();
Object實際上就是一個函數,函數名首字母是大寫的
第一種方式,添加屬性和方法,非常簡單,沒有什麼,直接.(點)就可以了
添加屬性:
對象.屬性名字=值;---->設置屬性的值
例子:
obj.name="小三";
添加方法:
對象.方法名字=匿名函數;
例子:
obj.eat=function(){};
2. 自定義構造函數創建對象
function 大寫字母的一個名字(){}
1.在內存開闢一塊空間的空間(向內存申請一塊空間的空閒)
2.把this設置為當前的對象(舉例子)
3.設置該對象的屬性和方法的值
4.把this作為當前對象返回
function Person(name,age){
this.name=name;
this.age=age;
this.sayHi=匿名函數;
}
var per=new Person("小白",23);
3.字面量的方式創建對象
var obj = {
name: "小明",
age: 10,
sayHi: function () {
console.log("我叫:" + this.name);
}
};
obj.sayHi();
var obj={
屬性名字:值,
屬性名字:值,
方法名字:匿名函數
};
- 對象中屬性或方法的調用
對象中的屬性或者是方法,不僅可以通過點語法的方式獲取或者設置,同時可以使 用鍵值對的方式進行設置或者是獲取
- 對象的遍歷
對象一般通過for-in循環遍歷
for(var 變量名字 in 對象名字){
console.log(變量名字);
//變量名字中存儲的是該對象中屬性的名字
}
- JSON格式數據
var json={
鍵:值,
鍵:值,
};
擴展:JSON數據:格式化的一種數據(指定格式的一種數據,都是鍵值對的方式)
JSON格式的數據:成對的,一般都是用雙引號括起來的
var obj2={
"name":"雛田",
"age":"20",
"sex":"男"
};
//JSON格式的數據,一般在js中都是通過for-in循環遍歷的
for(var key in obj2){
console.log(
key+"===="+obj2[key]);}
- JS對象分類
js中的對象分為:內置對象(系統自帶的對象),自定義對象,瀏覽器對象window
Object/Math/Date/Array.....
- (內置對象)Math對象
Math--->是內置對象,不是函數
Math.abs()---->絕對值
Math.max()---->一坨數字中的最大值
Math.min()---->一坨數字中的最小值
Math.ceil()--->向上取整
Math.floor()--->向下取整
Math.PI---->π的值
Math.random()--->獲取隨機數---->偽隨機數,0-1之間,沒有1,有0
- (內置對象)Date對象
Date--->是內置對象,是函數
var dt=new Date();
dt.getFullYear()--->年份
dt.getMonth()--->月份
dt.getDate()--->幾號
dt.getHours()--->小時
dt.getMinutes()--->分鐘
dt.getSeconds()--->秒
new Date().toLocaleDateString();//日期
new Date().toDateString();//日期
new Date().toLocaleTimeString();//時間
new Date().toTimeString();//時間
- String對象下的方法
.charAt(索引);--->返回的是指定索引位置的字符串
.charCodeAt(索引);--->返回的是指定索引位置的字符串的ASCII值
.concat("字符串1","字符串2",...)--->字符串拼接.返回新的字符串
.indexOf("要查找的字符串",開始的位置的索引);索引可以省略,返回的是查找後字符串的索引值,找不到則返回-1
.slice(開始的位置,結束的位置);----返回的是截取後的字符串
.lastIndexOf("要查找的字符串",開始的位置)--->從後向前找字符串,找到了就是索引,找不到就是-1
.replace("要替換的字符串","替換後的字符串");----替換後新的字符串
.subStr(開始的索引,截取字符串的長度);返回的是截取後的字符串
.subString(開始的索引,結束的索引);返回的是截取後的字符串
.trim()去掉字符串兩端的空格,中間的空格不能去掉
.split("要切掉的字符串",想要幾個字符串);返回的是一個字符串的數組
.toLocaleLowerCase();轉小寫
.toLocaleUpperCase();轉大寫
.charAt(索引);返回的是索引對應的字符串
.charCodeAt(索引);返回的是索引對應的字符串的ASCII碼值(十進制)
.concat("新的字符串","其他字符串",...);
.slice(開始索引,結束索引);從指定位置開始提取字符串,到指定位置的前面
.substring(開始位置,結束位置);從指定位置開始提取字符串,到指定位置的前面
.substr(開始位置,字符串的截取個數);從指定位置開始截取,截取多少個字符串
.indexOf(字符串);獲取的是該字符串的索引位置,如果找不到則返回-1
.lastIndexOf(字符串);從後向前找字符串,索引依然是從前向後
.trim()幹掉字符串前後的空格
.toLocaleUpperCase()把字符串從小寫轉大寫的
.toLocaleLowerCase();把字符串從大寫轉小寫
.replace(原來的字符串,"新的字符串");替換字符串的
.split("要幹掉的字符串");返回的是一個新的數組
- 創建數字的方式
1. 通過調用系統的構造函數 Array
var arr1=new Array(); //空數組
2.通過字面量的方式
var arr2=[]; //空數組
3.通過調用系統的構造函數,設置初始的數組的長度
var arr3=new Array(3); //undefined
.isArray(變量);返回的是布爾類型,如果是true則是數組,否則就不是數組
- Array中的方法
.push(數據);向數組中追加一個數組,如果接收這個方法了,結果是追加數據後的數組的長度
.shift();刪除數組中的第一個數據,返回值是刪除後的那個數據值
.pop();刪除數組中的最後一個數據,返回值是刪除後的那個數據值
.unshift();向數組中第一個元素前面插入一個數據,返回值是插入數據後數組的新的長度
.reverse();反轉數據數據
.sort();排序,但是不穩定
.slice(開始索引,結束索引);截取原數組中的數據,然後組成一個新的數組
.splice(開始的位置,刪除的個數);返回值是刪除後的數據組成的新數組,原來的數據的數據改變了
.splice(開始的位置,刪除的個數,參數1,參數2...);是把數組中刪除的位置用新的參數替換了
.indexof(要查找的數據);找到了就是索引,找不到就是-1
.join("字符串");返回值還是字符串,是把數組元素中間加上一個字符串,最終產生一個新的字符串
當一個函數參數的時候,這個函數就叫回調函數
.filter(回調函數);返回的是符合條件的篩選後的數據,組成的新數組
閱讀更多 凱哥java 的文章