方式一: var reg=new RegExp('正則表達式');//注意,寫在字符串中全部帶\的元字符都會被轉義,應該寫做\\ reg.test('待檢測的字符串') //若是字符串中含有符合表達式規則的內容就返回true,不然返回false 方式二: var reg=new RegExp(/正則表達式/); //內部的元字符就不會轉義了 reg.test('待檢測的字符串') //若是字符串中含有符合表達式規則的內容就返回true,不然返回false
//match()方法: 匹配字符串 var emp='abcd1234'; var emp2='Day day up'; emp.match(/\d/); //只匹配一個數字 emp.match(/\d/g); //g 表明匹配全部符合規則的,返回一個數組 emp2.match(/d/); //只匹配小寫的a emp2.match(/D/i); //i 表示不區分大小寫,匹配一個 emp2.match(/d/gi); // 匹配全部的符合d的全部字符,不區分大小寫,返回一個數組 //search()方法:匹配索引第一個位置的索引 emp2.search(/正則表達式/i); //不區分大小寫.從emp中找出符合子串第一個位置的索引位置 emp2.search(/a/); // 1 第一個a字符的索引位置 //split()方法 :根據正則切割,n是切出來幾個 emp2.split(/正則表達式/i,n); //不區分大小寫,根據正則切割,返回前n個結果 emp2.split(/''/i,2); // ["Day", "day"] emp2.split(/a/i,); // ["D", "y d", "y up"] //replac()方法 :替換正則匹配出來的位置 emp2.replac(/正則表達式/gi,'新的值');//i表示不區分大小寫,g表示替換全部,將符合正則條件的內容替換成新的值
//問題1 var reg=/\d/g; //正則匹配多個數值 reg.test('a1b2');//屢次匹配會進入輪循,第一次true,第二次true,第三次false,第四次true.... //問題2 var reg=/\w{5,10}/; //匹配字符或數字:5-10個 reg.test(); //若是爲空,默認值是undefined,恰好也符合.
// 建立 日期對象 var dt=new Date(); // 1. 獲取當前時間 console.log(dt); // Tue Aug 13 2019 19:45:25 GMT+0800 (中國標準時間) // 2.獲取年月日,星期 dt.getFullYear(); //年 dt.getMonth(); //月,從0開始,範圍 0-11 dt.getDate(); // 獲取日 dt.getDay(); //星期幾, // 3.獲取時分秒 dt.getHours(); //獲取小時 dt.getMinutes(); // 獲取分鐘 dt.getSeconds(); //秒 // 4. 自定義時間 var dt2=new Date('2018/12/12 12:12:12'); var dt3=new Date(2018,1,1) ; //瀏覽器不一樣顯示天不一樣,可是月份始終少一個
// 基礎方法,可能會用到 Math.abs(x); //返回x的絕對值 Math.pow(x,y); //返回x的y次冪 Math.round(x); //四捨五入 Math.sqrt(x); //返回平方根 Math.exp(x); //返回e的指數, e約等於2.7 Math.log(x); //返回數的天然對數(底數e) Math.sin(x); //返回正弦 Math.cos(x); //返回餘弦 Math.tan(x); //返回正切
// 向下取整 var x=1.234 console.log(Math.ceil(x)); //2 // 向上取整 var x=1.234 console.log(Math.floor(x)); //1 // min/max 最小值/最大值 console.log(Math.min(1,2,3,4,5)); //1 console.log(Math.max(1,2,3,4,5)); //5
// 隨機數 區間(0,1] var ran=Math.random(); //取100-200之間的隨機數, //公式:min - max之間的隨機數 //min+Math.random()*(max-min) 100+Math.random()*(200-100)
建立對象的幾種經常使用方式:javascript
// 生成一個對象 var student= new Object(); // 封裝兩個屬性 student.name='easy'; student.age='20';
// 工廠模式 function createStudent(name,age){ // 實例化一個對象 var obj=new Object(); //給這個對象封裝屬性 obj.name=name; obj.age=age; //將這個對象返回 return obj; } var s1=new createStudent('easy1',20); //方式一,new var s2=createStudent('easy2',22); // 方式二,直接使用類建立對象
1.實際上並不存在建立構造函數的特殊語法,其與普通函數惟一的區別在於調用方法。對於任意函數,使用new操做符調用,那麼它就是構造函數;不使用new操做符調用,那麼它就是普通函數前端
2.按照慣例,咱們約定構造函數名以大寫字母開頭,普通函數以小寫字母開頭,這樣有利於顯性區分兩者。例如上面的new Array(),new Object()。java
3.使用new操做符調用構造函數時,會經歷(1)建立一個新對象;(2)將構造函數做用域賦給新對象(使this指向該新對象);(3)執行構造函數代碼;(4)返回新對象;4個階段面試
// 建立一個js類 function Student(name,age){ this.name=name; this.age=age; this.alertName=function(){ alert(this.name); }; } //實例化對象 var s1=new Student('d',18); var s2=new Student('l',20); //instanceof操做符來檢測對象類型 var a1=new Array(20);//實例化一個數組對象 var s1=new Student('年年',20); alert(s1 instanceof Student); // true alert(s1 instanceof Array); //false alert(a1 instanceof Student); // false alert(a1 instanceof Array); // true alert(a1 instanceof Object); //true 一切對象都來自Object alert(s1 instanceof Object); //true
番外篇:是將對象方法移到構造函數外部👇正則表達式
// 通常把公有的方法移到建立的類以外,減小內存消耗 function Student(name,age){ this.name=name; this.age=age; this.alertName=alertName; } function alertName(){ alert(this.name); } //實例化對象 var s1=new Student('easy1',20); s1.alertName(); // easy1
原型鏈甚至原型繼承,是整個JS中最難的一部分也是最很差理解的一部分,在這裏因爲咱們課程定位的緣由,若是對js有興趣的同窗,能夠去查閱一下相關JS原型的一些知識點。更加有助於你之後前端JS的面試。數組
// 給 Student 類添加一個方法 function Student(){ this.stu_name=name; this.stu_age=age; } // 給 js 的Student類添加一個方法 Student.prototype.alertName=function(){ alert(this.name); } var s1= new Student('a',123); s1.alertName(); //a // 給 Object類 添加一個方法 Object.prototype.alertName=function(){ alert('Hello'); }