---恢復內容開始---javascript
HTML 定義了網頁的內容 CSS 描述了網頁的佈局 JavaScript 網頁的行爲
一種輕量級編程語言html
能夠將javascript(先包含在<script></script>)放置在head或者body當中,也能夠經過外邊引入<script src="url"></script>java
輸出能夠經過彈窗alert()或者寫入文檔document.write(); document.innerHTML = web
註釋://單行註釋或者/**/多行註釋正則表達式
utf8當中的實體https://www.runoob.com/charsets/ref-html-utf8.html編程
代碼塊以左花括號開始,以右花括號結束。json
代碼塊的做用是一併地執行語句序列。數組
在 JavaScript 中,用分號來結束語句是可選的。編程語言
代碼折行輸出ide
document.write("你好 \
世界!");
變量名稱:
必須以字母開頭或者可使用$和_ 並且大小寫敏感
常常會聲明無值的變量。未使用值來聲明的變量,其值其實是 undefined。
var test;//實際上此時test爲undefined 在C++當中此時test應該爲其當前指向空間之前所保留的值
若是從新聲明 JavaScript 變量,該變量的值不會丟失:
var x; // x 爲 undefined var x = 5; // 如今 x 爲數字 var x = "John"; // 如今 x 爲字符串
在定義對象的時候,裏邊的屬性名能夠添加引號業能夠不加,但其實是當作字符串的
var obj = { 'username':"webcyh" } console.log(obj.username); console.log(obj['username']);
Undefined 這個值表示變量不含有值。
能夠經過將變量的值設置爲 null 來清空變量。
建立對象方法
func:function(){}
func(){}
函數返回 返回值是可選的
局部變量:
只在函數內部能夠訪問
而且生存期在函數執行完就銷燬
全局變量:
在網頁中的任何地方能夠訪問
並且至於關閉網頁纔會銷燬
非嚴格模式下:
未生命的變量能夠經過delete刪除
沒有生命的變量默認屬於全局變量window
事件
字符串:
能夠跟數組同樣使用下標的方式訪問
能夠得到長度str.length
字符串也能夠是一個對象
var x = "John"; var y = new String("John"); typeof x // 返回 String typeof y // 返回 Object 儘可能不要使用字符串對象 ,這樣會拖慢執行速度
字符串方法
=== 徹底等於 值和類型
typeof [1,2]返回object 數組爲特殊的對象
typeof null 返回object 空對象引用
typeof 一個沒有值的變量會返回 undefined。
null 和 undefined 的值相等,但類型不等:
變量置空使用undefined 對象置空使用null
typeof "John" // 返回 string typeof 3.14 // 返回 number typeof NaN // 返回 number typeof false // 返回 boolean typeof [1,2,3,4] // 返回 object typeof {name:'John', age:34} // 返回 object typeof new Date() // 返回 object typeof function () {} // 返回 function typeof myCar // 返回 undefined (若是 myCar 沒有聲明) typeof null // 返回 object
constructor 屬性返回全部 JavaScript 變量的構造函數。
使用constructor判斷是否爲數組myArray.constructor.toString().indexOf("Array") > -1;
window.String()和Number.toString()均可以轉換爲字符串
轉換爲字符串
console.log(typeof String(12+2)); console.log(typeof (12+3).toString());
console.log(typeof 12);
Number("12")將字符串轉爲數字 parseInt parseFloat
正則表達式的使用
/正則表達式主體/修飾符(可選)
正則表達式一般應用在在如下兩個方法當中
search() 方法 用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串,並返回子串的起始位置。var n = str.search("Runoob");
replace() 方法 用於在字符串中用一些字符替換另外一些字符,或替換一個與正則表達式匹配的子串。 var txt = str.replace(/microsoft/i,"Runoob");
上面的函數說明可使用正則表達式替代上面的字符串參數
修飾符:i不區分大小寫 g全局匹配 返回全部匹配到的字符串 m多行匹配
正則表達式模式
括號表達式
元字符
量詞
var str = "he2ll|o"; console.log(typeof str); console.log(str.constructor);//建立字符串的構造方法 console.log(str.charAt(1)); console.log(typeof String(12+2)); console.log(typeof (12+3).toString()); console.log(typeof 12); console.log(Boolean(1)); console.log(str.search(/[ho]/im));// console.log(str.search(/(l|o)/im)); console.log(str.search(/^\d/i));//查找數字開頭的 //在這裏使用全局搜索仍是會返回第一次找到的位置 /* [asn]這裏邊任何一個字符 [1-9] 1到9中的任何數字 (x|y)以分割|分開的字符 相似於在[xy]上找 元字符 \d查找數字 \s查找空白字符 \b匹配單詞邊界 \uxxxx查找十六進制 量詞 n+ 匹配至少包含一個 n*匹配零個或者多個n的字符 n?匹配零個或者一個n字符
\w 爲爲字母下劃線和數字 */
RegExpt對象
test()方法也是用於匹配某個正則表達式 若是匹配成功返回true
var patt = /e/; patt.test("The best things in life are free!");
使用exec()
返回匹配的結果
例子
/*是否帶有小數*/ function isDecimal(strValue ) { var objRegExp= /^\d+\.\d+$/; return objRegExp.test(strValue); } /*校驗是否中文名稱組成 */ function ischina(str) { var reg=/^[\u4E00-\u9FA5]{2,4}$/; /*定義驗證表達式*/ return reg.test(str); /*進行驗證*/ } /*校驗是否全由8位數字組成 */ function isStudentNo(str) { var reg=/^[0-9]{8}$/; /*定義驗證表達式*/ return reg.test(str); /*進行驗證*/ } /*校驗電話碼格式 */ function isTelCode(str) { var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/; return reg.test(str); } /*校驗郵件地址是否合法 */ function IsEmail(str) { var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/; return reg.test(str); }
異常處理
自定義異常
//實現匹配一個字符串當中的全部網址 try{ if(1){ throw "出現異常"; } }catch(e){ console.log("自定義異常"+e); }finally{ console.log("我就是要執行"); }
斷點
debugger;
變量提高
JavaScript 中,函數及變量的聲明都將被提高到函數的最頂部。
JavaScript 中,變量能夠在使用後聲明,也就是變量能夠先使用再聲明。
JavaScript 只有聲明的變量會提高,初始化的不會。
嚴格模式下不會變量提高
""use strict
var a = 2; var b =4; var c; eval("c=a+b"); console.log(c);
json 輕量級數據交換語言
全稱:JavaScript Object notation
寫法:
"sites":[ {"name":"Runoob", "url":"www.runoob.com"}, {"name":"Google", "url":"www.google.com"}, {"name":"Taobao", "url":"www.taobao.com"} ]
JSON.parse(text)將其轉換爲js對象
JSON.stringify();將字符串轉換爲json數據
void 指定要計算一個表達式但沒有返回值
該操做符指定要計算一個表達式可是不返回值
寫法:
void(func) void:func(()) javascript:void(func()) javascript:void func()
href="#"和href="javascript:void(0)"的區別
前者爲錨默認爲href="#top" 這個是會跳轉的
後者爲死連接
javascript代碼規則
變量名爲駝峯命名法className
全局變量爲大寫 常量也是大寫
運算符要有空格
代碼tab縮進
定義對象的時候須要注意換行
html的後綴名字能夠爲html 和htm
函數:
函數不是執行語句因此不須要加分號
在JavaScript當中函數能夠做爲表達式 將函數賦值給一個變量 這樣這個 變量能夠當中函數來使用 注意這裏的函數式匿名函數 並且這個函數式執行表達式 須要使用分號結尾
自調用的函數表達式
(function(){
})()
函數是一個對象 經過funcName.toString()將函數轉換爲字符串
函數參數
在JavaScript當中 參數默認值爲undefined 或者能夠以下面寫法
function get(x,y){ console.log(x); x = x||1; y = y||2; return x+y; }//在未傳遞值得時候 值爲undefined 在上面的x = x||1;意思是當x爲undefined(false)的時候取後邊的值1 console.log(get());
在傳遞的參數爲對象的時候變化是雙向傳遞的 也就是裏邊的修改 在外邊也會發生變化