Javascript介紹正則表達式
能處理邏輯數組
能夠和瀏覽器交互瀏覽器
不夠嚴謹dom
ECMAscript : js的一種標準化規範,標出了一些基礎的js語法函數
DOM -- document object model 文本對象模型,主要操做文檔中的標籤this
BOM -- browser object model 瀏覽器對象模型,主要用來操做瀏覽器spa
方式一: <script> alert('XXX') // 頁面彈出警告框 </script> 方式二: <script src="連接"></script> 結束符: 分號 -- ; 單行註釋: // 多行註釋: /* 內容 */
變量名: 數字\字母\下劃線$prototype
建立變量的關鍵字 : var a=1code
建立變量能夠不指定數據類型對象
建立變量但不賦值: var a; a建立出來就是一個underfind類型
彈出框:alert 彈出輸入框:var inp=prompt('問句') 彈出輸入孔,輸入的內容會被返回給inp 控制檯輸出: console.log(變量或值)
查看數據類型: typeof 變量; / typeof(變量);
數值類型
整數 \ 小數 : number
保留小數位: b.toFixed(2)
字符串: String
'單引號' ; var s1 = '字符串1'
"雙引號" ; var s2 = "字符串2"
屬性 : length 方法: s.strm() 去兩端空白,獲得一個新值 a.concat('abc') a拼接'abc' .charAt(索引) 給索引求字符 .indexOf(字符) 給字符求索引 .slice(start,end) 顧頭不顧尾,能夠用負數,取子串 .toLowerCase() 所有變小寫 .toUpperCase() 所有變大寫 .split(',',2) 根據(第一個參數)分隔符切割,取前多少個結果
Boolean() true : [] {} false : undefined null NaN 0 ''
null 表示空 boolean值爲false undefined 沒有定義 建立變量可是不賦值 boolean值爲false
建立: var arr = ['a','b','c']; var arr2 = new Array(); 索引操做: arr[0] 查看 arr2[0] = 'alex' 賦值操做
Array經常使用的屬性和方法
屬性或方法 | 解釋 |
---|---|
.length | 數組長度 |
.push() | 尾部追加元素 |
.pop() | 獲取尾部的元素 |
.unshift() | 頭部插入元素 |
.shift() | 頭部移除元素 |
.slice(start, end) | 切片 |
.reverse() | 反轉原數組 |
.join(seq) | seq是鏈接符 將數組元素鏈接成字符串 |
.concat(val, ...) | 數組合並,獲得一個新數組,原數組不變 |
.splice(a,b,c) | 參數:1.從哪刪(索引), 2.刪幾個 3.刪除位置替換的新元素(可多個元素) |
.sort() | 排序 |
var str1 = '{"name": "chao", "age": 18}'; var obj1 = {"name": "chao", "age": 18}; // JSON字符串轉換成對象 var obj = JSON.parse(str1); // 對象轉換成JSON字符串 var str = JSON.stringify(obj1);
遍歷對象中的內容:
var a = {"name": "Alex", "age": 18}; for (var i in a){ console.log(i, a[i]); }
string --> int parseInt('123') // 123 parseInt('123abc') // 123 parseInt('abc') // NaN not a number string --> float parseFloat('1.233') float/int --> String var num = 123 String(num) // "123" var str = num.toString() 任意類型 --> Boolean Boolean(數據) 字符串和數字相加 --> 字符串 字符串和數字相減 --> 數字
= += -= *= /= %=
> < >= <= 比較值,不比較類型 == 等於 != 不等於 比較類型和值(經常使用) === 等同於 !== 不等同於
+ - * / % ** ++ / -- 自增 / 自減 var a = 1 undefined var b = a++ // a=2 b=1 var c = ++a // a=3 c=3
&& 邏輯與 ||邏輯或 !邏輯非 true && true //true true || false //true !true //false
特色:
全部的代碼塊都是用{}標識的
全部的條件都是用()標識的
if (條件) { 執行操做 }else if(條件)){ 知足條件執行 }else if(條件)){ 知足條件執行 }else{ 知足條件執行 }
var err_type = 'info' // case表示一個條件,知足這個條件就會走進來,遇到break跳出。若是某個條件中不寫break,那麼直到該程序遇到下一個break中止,case條件是根據switch中定義條件的進行判斷 switch(err_type) { case 'warining': console.log('警告'); break; case 'error': console.log('錯誤'); break; default: console.log('沒錯') }
var i = 1; //初始化循環變量 while(i<=9){ //判斷循環條件 console.log(i); i = i+1; //更新循環條件 } //方式一: for(var i = 1;i<=10;i++){ console.log(i) } //方式二: var arr = [1,2,3,4,5] for (n in arr){ console.log(n) // n是索引,取值arr[n] }
var 結果 = boolean表達式 ? 爲true返回的值:爲false返回的值 var a = 1 var b =2 var c = a>b ? a:b //若是a>b成立返回a,不然返回b console.log(c)
function 函數名(參數){ 函數體 return 返回值 } 函數名(參數) //注意 : 傳遞的參數能夠和定義的個數不同,可是不要這麼寫 // 返回值只能有一個,若是有多個,默認返回最後一個 //arguments僞數組,傳遞多少個值,接收多少個 function add(){ console.log(arguments); } add(1,2,3,4) function add(a,b){ console.log(arguments); console.log(add.length); //獲取形參的個數 console.log(arguments.length); //獲取實參的個數 arguments[0] = 99; //將實參的第一個數改成99 } add(1,2,3,4)
var add = function(){ console.log('hello,world'); } //add()調用
(function(a,b){ console.log(a,b) })(1,2)
建立一個正則: var reg = new RegExp('正則表達式') //寫在字符串中全部帶\的元字符都會被轉移,應該寫 \\ var reg = / 正則表達式 / //內部不須要寫成字符串 reg.text('待檢測的字符串') // 字符串中有符合表達式規則的內容就返回true不然返回false 在字符串中應用正則 var exp = 'Agoni4017' exp.match(/\d/) //只匹配符合規則的第一個 exp.match(/\d/) //匹配全部符合規則的,返回一個數組 var exp = 'my heart beat with you' exp.match(/a/) //只匹配小寫a exp.match(/a/i) //i表示不區分大小寫 exp.match(/a/gi) //不區分大小寫匹配全部 exp.search(/正則表達式/i) // 不區分大小寫,找到符合條件的第一個索引位置 exp.split(/正則表達式/i,n) //不區分大小是,根據正則切割,返回前n個結果 exp.replace(/正則/gi,'新值') //將符合條件的全部內容替換成新的值 reg.lastIndex() //查看索引的位置 小問題1 var reg = /\d/g //表示匹配多個值 reg.test('a1b2c3') //屢次test會的到true true true false 繼續test會循環以前的結果 小問題2 var reg = /\w{5,10}/ //5-10位字母數字下劃線 reg.test() //若是什麼都不寫,那麼默認test中傳遞undefined參數,9位字符串符合正則條件
建立對象 var dt = new Date() // 獲取當前的時間 dt.toLocalString() // 轉換成'2019/8/13 10:18:12 dt.getFullYear() // 年 dt.getMonth() // 月,從0來時 dt.getday() // 週中天,從0開始,週日爲0 dt.getDate() //月中天,1號是1 dt.getHours() // 時,從0開始 dt.getMinutes() // 分,從0開始 dt.getSeconds() // 秒,從0開始 自定義時間 var dt = new Date('2018/1/1 12:12:12') 1月1日 var dt = new Date(2018,1,1); 2月1日
Math.floor() //向下取整 Math.ceil() //向上取整 Math.max() //求最大值 Math.min() //求最小值 Math.random() //隨機數,默認0-1之間. Math.abs() //絕對值 Math.round() //四捨五入取整 求min-max之間的隨機數: min+Math.random()*(max-min)
function Student(name,age){ this.stu_name = name //綁定屬性 this.stu_age = age } Student.prototype.show = function(){ // 綁定方法 console.log(this.stu_name,this.stu_age) } var stu = Student('Agoni',24) // 實例化 stu.stu_name // 查看屬性 stu.stu_age stu.show() // 調用方法