javascript
JavaScript Notes
JavaScript Notes
了解
常量/變量
var a = 3.1415926;
var b = "hello";
- 以字母、下劃線或美元符開頭
- 余下字符可以是下劃線、美元符或任何字母數字
- 最長255字符
- 不能有空格、大小寫敏感
- 不能使用JavaScript的關鍵字或保留字命名
數據類型
- undefined-未定義類型
- Null-空類型
- boolean-布爾類型(true/false)True/False是錯誤的
- Number-數字類型:整型(十進制、八進制、十六進制)、浮點型(必須包含小數點)
var box = 4.12e9; //即4120000000
var box = 0.00000000412 //即4.12e-9 - String-字符串類型:表示由零或多個16位Unicode字符組成的字符序列
var box = 'Lee';
var box = "Lee";
對象起始就是一組數據和功能的集合
使用new操作符,后跟要創建的對象類型的名稱來創建對象
Object()里可以任意傳參,可以穿數值、字符串、布爾值等
還可以進行相應的計算
使用new Object()來表示一個對象,也可以使用這種new這種操作符來創建其他類型的對象
var box = new Number(5);//new String('Lee')、new Boolean(true)
alert(typeof box);
用于表示一個本來要換回數值的操作數未返回數值的情況(這樣就不會拋出錯誤了)
\n 換行
\t 制表
\b 空格
\r 回車
\f 進紙
\\ 斜杠
\' 單引號
\" 雙引號
\xnn 以十六進制代碼nn表示一個字符(0~F)。eg:\x41
\unnn 以十六進制代碼nnn表示的一個Unicode字符(0~F)。eg:\u03a3
JavaScript是弱類型語言,變量的類型對應于其值的類型
可以對不同類型的變量執行運算,解釋器強制裝換數據類型,然后進行處理
- 字符串->數值:
- parseInt(var)
- parseFloat(var)
- Number(var)
- 值->字符串
- toString()
- Number()函數:轉型函數,可以用于任何數據類型
運算符
status = (age >= 18) ? "adult" : "minor"
流程控制
函數
JavaScript的函數屬于Function對象,因此可以使用Function對象的構造函數來創建函數;
可以使用function關鍵字以普通的形式來定義一個函數;
···javascript
function 函數名 ([參數1,[參數2,[參數N]]])
{
[語句組];
[return [表達式]];
}
···
var 變量名 = new Function([參數1,[參數2,[參數N]]],[函數體]);
arguments對象代表正在執行的函數和調用它的參數
函數對象的length屬性說明函數定義時指定的參數個數
arguments對象的length屬性說明調用函數時實際傳遞的參數個數
作用:驗證所傳遞的參數是否符合函數要求
引用傳遞的優點是速度快,但系統會為維護數據而付出額外的開銷
<a href="javascript: 函數">
...
</a>
數組
JavaScript數組元素的數據類型可以不相同,可以是任意有效的JavaScript數據類型
var Obj = new Array();
var Obj = new Array(Size);
var Obj = new Array(元素1, 元素2, ... , 元素N);
var Obj = [元素1, 元素2, 元素3, ... , 元素N];
- push()-將新元素添加到數組的尾部
- unshift()-將指定個數的新元素插入數組的開始位置,形成新的數組
var students = new Array();
students.push("Lily"); - 如果指定的下標超過數組的長度,數組將擴展為新下標指定的長度;
- delete 數組名[下標];
- 如果需要刪除全部元素只需要刪除數組對象即可
var names = Array("李莉", "楊洋");
delete names[0];
var Obj = new Array(1, 2, 3);
var count = Obj.length;
- toString-返回Array中的元素轉為由逗號分隔的字符串
- join-數組所有元素連接,間隔符由參數指定(省略參數則由逗號分隔)
- concat-數組組合
- pop-移除最后一個元素并返回該元素
- push-增加新元素,并返回新長度
- shift-移除第一個元素并返回該元素
- slice-返回一個新數組,為原數組中的一段
- reverse-返回一個新數組,由原數組反轉而成
- sort-返回一個排序后的數組
JavaScript對象
對象:一種類型(引用類型——一種數據結構,用于將數據和功能組織在一起),而對象的值就是引用類型的實例。
var box = new Object(); //使用new運算符創建Object
box.name = '張三';
box.age = 28;
var box = Object(); //省略new關鍵字
var box = { name : '張三', age : 28 };
var box = {'name': '張三', 'age': 28};
alert(box.age);
alert(box['age']);
var box = {
run : function(){
return '運行';
}
}
alert(box.run());
delete box.name;
- 在with語句體內,任何對變量的引用都被認為是這個對象的屬性
var box = {'name':'tom','age':28,'height':178};
var n = box.name;
var a = box.age;
var h = box.height;
以上改寫成:
with(box){
var n = name;
var a = age;
var h = height;
}
- 不必專門銷毀對象來釋放內存
- 當沒有針對該對象的引用時,自動廢除
- 把對象的引用設置為null也可以廢除
- Array
- Global
- Date
- toGMTString-使用格林威治標準時間數據格式將Date對象轉成字符串
- toLocaleString-使用當地時間格式將Date轉成字符串
- Date.parse(datestring)-用日期字符串表示自1970年1月1日以來的毫秒數
- Date.UTC(year,month,day,hours,min,secs)-Date對象中自1970年1月1日以來的毫秒數
- Math
- abs(x)
- ceil(x):大于等于x的最小整數
- exp(x)
- floor(x):小于等于x的最大整數
- round(x):四舍五入
- sqrt(x)
- random(x)
- String
- charAt(i):返回指定索引位置處的字符
- charCodeAt(i):
- concat(str):連接字符串
- indexOf(str)
- lastIndexOf(str)
- replace(str1, str2):返回將str1替換為str2后的字符串
- slice(start,end):返回字符串中起始位置為start結束位置為end的子字符串
- split(separator,limit):以separator為分隔符以數組返回limit個元素
- substr(start,length)
- substring(start,end):不包括end
- toLowerCase
- toUpperCase
- Number
- MAX_VALUE
- MIN_VALUE
- Boolean
- toString()
- valueOf()
正則表達式
正則表達式(regular expression)是一個描述字符模式的對象
String和RegExp都定義了使用正則表達式進行模式匹配和文本檢索與替換的函數
正則表達式主要用來驗證客戶端的輸入數據
var box = new RegExp('box');
var box = new RegExp('box','ig'); //para1:字符串,para2:可選模式修飾符
var box = /box/; //直接用兩個反斜杠
var box = /box/ig; //反斜杠后加上模式修飾符
- test:在字符串中測試模式匹配,返回true或false
- exec:在字符串中執行匹配搜索,返回第一個匹配值
- input
- lastMatch
- lastParen
- leftContext
- multiline
- rightContext
- global
- ignoreCase
- lastIndex
- multiline
- Source
- match(pattern)
- replace(pattern,replacement)
- search(pattern)
- split(pattern)
包含特殊含義的字符,可以控制匹配模式的方式
- . 匹配除換行符外的任意字符
- [a-z0-9] 匹配括號中的字符集中的任意字符
- [^a-z0-9] 匹配不在括號中的任意字符
- \d 匹配數字
- \D 匹配非數字
- \w 匹配字母和數字及_
- \W 匹配非字母和數字及_
- \0 匹配null字符
- \b 匹配空格字符
- \f 匹配進紙字符
- \n 匹配換行符
- \r 匹配回車字符
- \t 匹配制表符
- \s 匹配空白字符、空格、制表和換行符
- \S 匹配非空白字符
- x? 0或1個x
- x* 0個或任意多個x
- x+ 至少一個x
- (xyz)+ 至少一個xyz
- x{m,n} m-n個x
- this|where|logo 匹配this或where或logo中任意一個
- ^ 行首匹配
- $ 行尾匹配
- \A 只匹配字符串開始處
- \b 匹配單詞便捷,詞在[]內時無效
- \B 匹配非單詞邊界
- \G 匹配當前搜索的開始位置
- \Z 匹配字符串結束處或行尾
- \z 只匹配字符串結束處
- (string) 用于反向引用的分組
- \1或$1 匹配第一個分組中的內容
- \2或$2 匹配第二個分組中的內容
- \3或$3 匹配第三個分組中的內容
- 檢查郵政編碼:
var pattern = /[1-9][0-9]{5}/; //共6位數字,第1位不能為0
- 檢查文件壓縮包:
var pattern = /[\w]+.zip|rar|gz/; //\w表示所有數字和字母加下劃線
- 刪除多余空格:
var pattern = /\s/g; //g必須全局,才能全部匹配
- 刪除首尾空格:
var pattern = /^\s+/; //強制首
var str = ' goo gle ';
var result = str.replace(pattern,'');
var pattern = /\s+$/; //強制尾
result = result.replace(pattern,'');
alert('|'+result+'|');var pattern = /^\s*(.+?)\s*$/; //使用了非貪婪捕獲
var str = ' google ';
alert('|'+pattern.exec(str)[1]+'|');var pattern = /^\s*(.+?)\s*$/;
var str = ' google ';
alert('|'+str.replace(pattern,'$1')+'|'); - 簡單的電子郵件驗證:
var pattern = /^([a-zA-Z0-9_.-]+)@([a-zA-Z0-9_.-]+).([a-zA-Z]{2-4})$/;
var pattern = /^([\w.-]+)@([\w.-]+).([\w]{2-4})$/;
轉載于:https://www.cnblogs.com/mzyan/p/10295218.html
總結
以上是生活随笔為你收集整理的JavaScript Notes的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android知识点
- 下一篇: u盘中的io错误是怎么回事 U盘出现IO