js面向?qū)ο?/b>
創(chuàng)建對象的舊語法
方式1: 字面量的方式創(chuàng)建對象
{}大括號中就是一個對象,將這個對象賦值給變量person1
語法: 變量名 = {
? ? 屬性1:屬性值,
? ? 屬性2:屬性值,
? ? ...
? ? 屬性n:屬性值
}
方式2:使用構(gòu)造函數(shù)創(chuàng)建對象,語法如下:
function 函數(shù)名(參數(shù)1.參數(shù)2...){
? this.參數(shù)1 = 參數(shù)1;
? this.參數(shù)2 = 參數(shù)2;
...
}
var person2 = new 構(gòu)造函數(shù)(參數(shù)列表);
函數(shù)名一般建議首字母大寫
方式3(新語法): 使用關(guān)鍵字class來創(chuàng)建對象
步驟一:先創(chuàng)建類,類中包含構(gòu)造函數(shù)
class Star{
? //構(gòu)造函數(shù)
? constructor(name,age) {
? ? this.name = name;//this不能省略
? ? this.age = age;
? }
}
步驟二:利用第一步的類實例化對象(口語:new一個對象)
var ldh =new Star("劉德華",49);
var zxy =new Star("張學(xué)友",49);
類中添加方法
//定義明星類Star
class Star{
? ? //構(gòu)造函數(shù)
? ? constructor(name, age) {
? ? ? ? this.name = name;
? ? ? ? this.age = age;
? ? }
? ? //添加方法,直接寫方法名,前面不能加上function
? ? sing(song) {//方法名(參數(shù)1,參數(shù)2,參數(shù)3...)
? ? ? ? console.log(this.name +"唱" + song);
? ? }
? ? marry(someone) {
? ? ? ? console.log(this.name +"和" + someone +"結(jié)婚了");
? ? }
}
利用上面定義的Star類,創(chuàng)建對象
var ldh =new Star("劉德華", 49);
var zxy =new Star("張學(xué)友", 50);
調(diào)用成員方法: 使用對象名.方法名(參數(shù)1,參數(shù)2...)
ldh.sing("笨小孩");
zxy.sing("吻別");
ldh.marry("朱麗倩");
特別提醒: 1.直接寫方法名,前面不能加上function
特別提醒: 2.多個方法之間不要加逗號
類的繼承
//類的繼承
class Father{
? constructor(money) {
? ? this.money = money;
? }
? print(){
? ? console.log(this.money);
? }
}
//extends: 類Son繼承Father類,繼承父類的成員變量和成員方法
class Son extends Father{
? ? constructor(money) {//不寫也可以,默認(rèn)會調(diào)用父類的構(gòu)造函數(shù)
? ? ? ? super(money);//調(diào)用父類的構(gòu)造函數(shù)
? ? }
}
var son =new Son(19999);
console.log(son);//Son{money: 19999}
son.print();//19999
子類調(diào)用父類的普通方法
class Father{
? say(){
? ? //console.log("我是豬爸爸");
? ? return "我是豬爸爸";
? }
}
class Sonextends Father{
? //重寫父類中的say方法
? say() {
? ? //super.say();//調(diào)用父類的say()方法
? ? console.log(super.say() +"的女兒佩奇")
}
}
//創(chuàng)建子類對象
var son =new Son();
son.say();
var和let
var和let
在ES6中,我們推薦使用let和const關(guān)鍵字
var關(guān)鍵字聲明的作用域不是塊級的,會擴(kuò)大變量的作用域
let聲明的變量作用域更加精確,離開作用域就銷毀
const用來定義常量
javascript語法不像java那么嚴(yán)格,比較寬松
遍歷數(shù)組
let arr =['aa','bb','cc','dd'];
方式1:普通for循環(huán)遍歷
for(let i = 0;i < arr.length ; i++)
? console.log(arr[i]);
}
console.log("----------");
方式二: for of 循環(huán)
for(let value of arr){
? console.log(value);
}
console.log("----------");
方式三: for in循環(huán)
for(let key in arr){
? console.log(key,arr[key]);
}
正則表達(dá)式
正則表達(dá)式入門
js中正則表達(dá)式對象有兩種
方式1:使用正則對象RegExp來創(chuàng)建對象
let reg =new RegExp(/abc/);//傳入的參數(shù)不是字符串,兩個正斜杠中間寫上正則模式
方式2: 使用字面量的方式創(chuàng)建正則表達(dá)式對象
正則表達(dá)式對象.test("要檢查的字符串"),檢查字符串是否符合正則模式
邊界符
^表示匹配行首的文本
$表示匹配行尾的文本
如果^和$在一起,表示必須是精確匹配
字符類方括號
方括號[],表示只要匹配一個就可以
/^[a-zA-Z0-9_]$/? ? ??單個,表示大小寫字母,數(shù)字和下劃線
取反 方括號內(nèi)部加上 ^ 表示取反,只要包含方括號內(nèi)的字符,都返回false
量詞
*重復(fù)0次或多次
+重復(fù)1次或多次
?重復(fù)0次或1次
{n}重復(fù)n次
{n,}重復(fù)n次或更多
{n,m}重復(fù)n次到m次
三種括號
1.大括號{} 量詞符,里面表示重復(fù)的次數(shù)
2.中括號[] 字符集合,匹配方括號中的任意字符
3.小括號()表示優(yōu)先級
/^[abc]$/? ??或a 或b 或c a|b|c
/^abc{3}/? ? 讓c重復(fù)3次
/^(abc){3}/? ? 優(yōu)先計算()小括號里面中的內(nèi)容,讓(abc)重復(fù)三次
替換敏感詞? g表示全局搜索 i表示忽略大小寫 ,用在正則表達(dá)式的最后面