JavaScript--學習2

博客轉移到個人站點:http://www.wangchengmeng.club/2018/02/01/JavaScript–%E5%AD%A6%E4%B9%A02/

歡迎來吐槽

/============對象的創建================== ========/
//建立一個空對象

var mObj = { };

//添加屬性 對象訪問屬性 兩種方式

mObj.name = "mike";
mObj["age"] = 20;
//給對象添加方法
mObj.say = function () {
  alert("對象的方法");
};

//刪除屬性

delete mObj.name;
delete mObj["age"];

//建立帶屬性的對象

var myObj = {
  "name":"wangchengmeng",
  "age":18
};

//使用new關鍵字

var obj = new 類名();

//訪問對象的屬性

alert(myObj.name+"==="+myObj.age);

//使用for in循環遍歷對象中的屬性

for(var attr in mObj) {
  console.log(mObj[attr]);
}

/==============Date對象==================/

var date = new Date();
alert(date.toLocaleDateString()); //獲取到本地的時間
alert(date.getFullYear());  //獲取整個年份  2016
alert(date.getYear()); //獲取的 2016 - 1900

/===================函數對象=============/

//一切皆對象 在JS中 函數也是對象 還可以自己給函數對象添加屬性和方法
//使用構造方式創建函數

var add = new Function("a","b","return a + b");
add(1, 2);

/**
* 函數中的屬性:
* 1、 length(形式參數個數)
* 2、name(名稱)注意只有聲明式纔有,而且有的瀏覽器不支持(IE)
* 3、prototype:對象的原型對象
*/
//prototype

Programer.prototype.getName = function () {
  return this.name;
}
function Programer(name) {
  this.name = name;
}
var p1 = new Programer("Android");
var p2 = new Programer("IOS");
p1.getName();
p2.getName(); //p1  p2本身沒有定義getName方法,但是都可以訪問,說明這兩個對象共享 prototype

/**
* 注意:
* 當前對象、構造函數、構造函數的prototype對象上有同名的函數時,使用當前對象調用該函數,使用該函數的查找順序爲:
當前對象 > 構造函數 > 構造函數的prototype對象
*/

//函數對象中的方法

function conect(a,b){
  console.log(a+"=="+b);
}

//常規調用

window.conect("first","second");
//1、call
conect.call(window,"first","second");//window是調用者對象 後面是參數
//2、apply
conect.apply(window, ['first', 'second']);

//eg 1
var age = 20;  //全局變量
var user = {
   age : 11, //局部變量 首先訪問
  info:function(name,gender){
    alert("name:" + name + "gender:" + gender + "age:" + age);
  }
};

//常規調用

user.info("Joson","girl")
user.info.call(user, "mike", "man");
user.info.apply(user, ['mike', 'man']);

//函數的閉包
/**
* 閉包 就是爲了防止內部變量被修改
*/

function closePackage() {
  var i = 0;
  return function () {
    i++;
    return i;
  }
}
var result = closePackage();
alert(result()); //1
alert(result()); //2
alert(result()); //3
alert(result()); //4

/======================類====================/
//JavaScript定義一個類必須採用一個函數定義。該函數是被稱爲構造函數,該函數的名字被稱爲類名。
//空類

function User() {
}

//創建類的對象

var user = new User();
user.name = "holly";
user.getName = function () {
  return this.name;
};

//帶參數的類

function getName() {
  return this.name;
}
function Car(name,size) {
  this.name = name;
  this.size = size;
  this.getName = getName;
}

//創建對象

var car = new Car("BMW","200*400");
car.getName();

/===================正則表達式=====================/

/**
* 正則表達式 的匹配規則
* . 表示任意字符
* \d 表示數字字符
* \D 表示非數字字符
* \w 表示任意數字 字母字符
* \W 表示任意非字母 數字字符
* [a-z] 表示從a - z 任意一個字符
* () 括號中的分爲一組
* {n} 某個字符出現n次 [a-z]{n} 表示 a-z之間的任意一字符出現n次
* {n.} 至少出現n次
* {n,m} 出現n-m次
* * 出現0或者多次
* +出現一次或者多次
* ?出現0或者一次
*
*/

//創建一個正則對象

 var reg = /\d/ig;
 var regExp = new RegExp(reg);

//解釋:

 var reg = new RegExp(pattern,flag);
 pattern----匹配的規則
 flag-----匹配的模式   i(忽略大小寫)  m(多行查找)  g(全文查找)
 pattern一定在 \ \之間

//方法用途(重點)

RegExp對象
RegExp.test(str);
RegExp.exec(str);
String對象
String.search(reg)
String.match(reg)
String.replace(reg,str2)
String.split(reg)


var url = "http://www.baidu.com";
var regExp = /http:\/\/\w+\.(.*)/;
var results = regExp.exec(url);
alert(results[1]);

//字符串中的match方法 和search方法

var email = "[email protected]"
var reg = /\.com/;  //判斷郵箱是否包含.com
var matchRes = email.match(reg);
alert(matchRes[0]);  //匹配到了 第一個值就是.com  沒有匹配到 返回 null

var searchRes = email.search(reg);  //返回的是匹配到了的第一個位置  沒有匹配到返回-1
alert(searchRes);

/===============操作符====================/
//1、 in
// 創建一個帶屬性的對象

var myObject = {
  start : "yellow",
  age : 18
};
function isAttributeOfObj() {
  if("start" in  myObject){   //表示 start在myObject對象中屬性存在
    alert("start is a attribute of myObject");
  }
}
isAttributeOfObj();

//2、instanceof

var time = new Date();
if(time instanceof Date) {
  //  do something
}

//3、delete 刪除某個對象的屬性 或者數組的索引

var deleteArray = ["javascript_1","javascript_2","javascript_3"];
delete  deleteArray[0];  //刪除第一個索引的值

//刪除某個對象的屬性

//3、typeof 判斷屬於那種類型

var star = {};
var numType = typeof(3);//返回number類型
var stringType = typeof("aaa");//返回string類型
var objType = typeof(star); //返回 "object"類型

//4、void

void(window.open()); //彈出一個新的窗口
//比較運算符  == 比較內容   === b比較內容和類型
發佈了49 篇原創文章 · 獲贊 38 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章