Brendan(布蘭登) Eichjavascript
輕量級的編程語言(ECMAscript5或6),
是一種解釋性腳本語言(代碼不進行預編譯),
主要用來向HTML頁面添加交互行爲,
目前是互聯網上最流行的腳本語言,
支持面向對象、命令式和聲明式(如函數式編程)風格,html
JavaScript,他和Python同樣是一門編程語言,而瀏覽器內置了JavaScript語言的解釋器,因此JavaScript代碼在瀏覽器上就能夠運行,
DOM,(Document Object Model)是指文檔對象模型,經過它,能夠操做HTML文檔的相關功能,例如:對標籤內容進行刪除和替換等(非重點),
BOM,(Browser Object Model)是指瀏覽器對象模型,經過他,能夠操做瀏覽器相關的功能,例如:瀏覽器設置定時器,瀏覽器定時刷新頁面。java
1 head標籤的script標籤裏面(alert('xx'), confirm('xx'))python
2 body標籤的script標籤裏面 (建議底部)ajax
3 外部文件引入的方式來使用
建立一個.js結尾的文件,寫上js代碼
好比:編程
alert('are you ok?');
在想使用這個js代碼的html文件中,body標籤底部導入json
<script src="test.js"></script>
alert("daoyou"); confirm("daoyou?");
變量定義 var a = 100;數組
var 變量名,,瀏覽器
變量聲明,但沒有賦值的時候,變量的值爲undefined網絡
var n = 11; var n2 = 11.11;
var a = 'abcdef'; var a = new String('ss');
字符串操做
var s = 'hello'; 索引取值: s[1] -- 'e' s.charAt(4); -- 'o' : s.substring(1,3); -- "el" 獲取長度:s.length; 移除兩端空格: s.trim(); s.trimLeft(); s.trimRight();
var a = true;
var b = false;
undefined 變量聲明瞭,可是沒有賦值,此時這個變量是undefined類型
null : 變量不用了,就能夠給變量賦值爲null,--- object類型
var names = [11,22,33];
names[0] // 索引,索引也是從0開始的 names.push(ele) // 尾部追加元素 示例:a.push('xx'); -- [11, 22, 33, "xx"] names.pop() // 尾部移除一個元素 示例:a.pop(); -- [11, 22, 33] names.unshift(ele) // 頭部插入元素 示例:a.unshift('ssss'); -- ["ssss", 11, 22, 33] var ele = obj.shift() // 頭部移除一個元素 示例:a.shift(); -- [11, 22, 33] names.splice(index,0,ele) // 在指定索引位置插入元素 names.splice(從哪刪(索引),刪幾個(個數),刪除位置替換的新元素(可不寫,可寫多個)) names.splice(index,1,ele) // 指定索引位置替換元素 names.splice(index,1) // 指定位置刪除元素 var names = [11,22,33]; names.splice(1,1,'xx','oo','asdf'); -- [11, "xx", "oo", "asdf", 33] names.slice(start,end) // 切片 示例:a.slice(1,3); names.reverse() // 原數組反轉 示例:a.reverse(); names.join(sep) // 將數組元素鏈接起來以構建一個字符串 示例: var a = ['ni','hao','ma',18] a.join('+'); -- "ni+hao+ma+18" names.concat(val,..) // 鏈接數組 示例: var a = [11,22]; var b = ['aa','bb'] var c = a.concat(b); c -- [11, 22, "aa", "bb"] names.sort() (辣雞) // 對原數組進行排序 a.sort(compare); 升序排列
a = [2,3,5,2,22,4,2,3,234,1] function com(a,b){return a-b}; // 自定義排序規則 a.sort(com); 當a-b大於0時,會交換數組中的這兩個元素 一直交換直到返回值沒有大於0的
自定義對象Object
JavaScript中其實沒有字典類型,字典是經過對象object構造出來的
info = { name:'迪麗熱巴', "age":18 1:123 } var a = {username:'xx',password:'123'}; //鍵能夠不加引號 // 鍵能夠是數字,但取值時必須是info["1"] var a = info['name']/a = info.name // 經過鍵取值必須加引號(info.name) info['age'] = 20 // 修改 info['gender'] = 'male' // 新增 delete info['age'] // 刪除
typeof 變量名; typeof n;
單行//
多行 /**/
if (a == 1){ //判斷條件寫在小括號裏面,大括號裏面寫條件判斷成功後的代碼內容 console.log('1111'); (相似print) } else{ console.log('222'); }
if(a > 1){ // console.log('1111'); // var hhhh = document.getElementById('d1'); // hhhh.innerText = '彭于晏'; }else if(a<1){ console.log('2222'); }else { console.log('3333'); }
> < == != >= <= === !== var a = 2; var b = '2'; a == b; true 弱等於 a === b; false 強等於 a != b; false a !== b; true
+ - * / % ++ -- ++ 自增 1 -- 自減 1 var a = 2; a++ 先執行邏輯 +1 ++a 先+1 再執行邏輯 簡單示例: if (++a === 4){ //(a++ === 3) console.log('xxx');} else{ console.log('ooo');};
用於判斷等於某些值(只能放數字)
var num = 200; switch(num++){ case 10: console.log('未成年'); break; case 18: console.log('成年'); break; case 35: console.log('老年'); break; case 100: console.log('....'); break; default: console.log('太大了');};
try{ console.log(xx); } catch(e){ console.log(e); } finally{ console.log('sssss'); }
var names = ['老男孩', '肖峯', '吳超'] for(var i=0;i<names.lenght;i++){ js裏for變例的i爲索引 console.log(i, names[i]) } 循環自定義對象--python字典 for (var i in d){ console.log(i,d[i]); #不要用d.i來取值,沒有 i 屬性 }
function f1(a,b){ return a+b; } // 執行: f1(1,2) -- 3 function f1(a,b){ return a,b; }; f1(1,2); //不能返回多個值: 2
通常用於當作參數使用 function (arg){ return arg + 1; } —————————————————————————————— var a = function (a,b){ console.log('xxx'); } var d = {'xx':'oo','f':function (a,b){ console.log('xxx'); }}; 執行:d.f(1,2); -------'xxx'
通常用於作數據隔離使用,由於JS中是以函數爲做用域,因此當js代碼比較多時,經過自執行函數作數據隔離
(function () { alert('自執行函數!') })()
var info = {name:'alex',age:19,girls:['鋼彈','鐵錘']} var infoStr = JSON.stringify(info) console.log(infoStr) # '{"name":"alex","age":19,"girls":["鋼彈","鐵錘"]}'
//反序列化時鍵不能是數字且必須有雙引號 var infoStr = '{"name":"alex","age":19,"girls":["鋼彈","鐵錘"]}' var info = JSON.parse(infoStr) console.log(info) 應用場景: 網絡中數據傳輸本質上是基於字符串進行,若是想要把一個js的對象經過網絡發送到某個網站, 就須要對對象進行序列化而後發送。(ajax會常常使用) 各語言之間數據類型不必定互通,須要一箇中間人(json) python->json->...->json->java