JavaScript和Java在概念和設計方面都是徹底不一樣的語言。JavaScript由Brendan Eich於1995年發明,並於1997年成爲ECMA標準。ECMA-262是官方名稱。ECMAScript 6(2015年6月發佈)是JavaScript的最新官方版本。html
在HTML中,必須在<script>和</ script>標記之間插入JavaScript代碼。能夠放在HTML頁面的<body>和<head>部分。數組
JavaScript能夠以不一樣的方式「顯示」數據:瀏覽器
var person = "John Doe", carName = "Volvo", price = 200;
注意:聲明沒有值的變量將具備 undefined值。若是從新聲明JavaScript變量,它將不會丟失其值。ide
執行這些語句後,變量person仍將具備值「John Doe」:函數
var person = 'John Doe'; var person; console.log(person);
若是向字符串添加數字,那麼將該數字視爲字符串並鏈接。+=用於字符串拼接;測試
console.log(1 + 5 + '10' + 15); // 61015
若是一個變量的值是字符串的數字,執行++操做會轉成數字並計算 ; ++ 是操做變量的,不能是 ++1 或 1++ui
var number = '5' console.log(typeof number) // string console.log(number += 1); // 51 console.log(++ number); // 52 console.log(typeof number) //number
將字符串與數字進行比較時,JavaScript會在進行比較時將字符串轉換爲數字:空字符串轉換爲0。非數字字符串轉換爲NaN; 和NaN比較始終爲false,即便是和NaN本身。能夠用isNaN()判斷是不是非數字,再進行比較,鏈接,運算等操做。比較兩個字符串時,「2」將大於「12」,由於(按字母順序)1小於2。所以比較的時候最好轉成Number類型。this
function print(log){ console.log(log); }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script src="base.js"></script> <script> print('5' > 4); //true print('' > -1); // true print('' < 1); // true print('n' > 0) // false print(0 === NaN) //false print(0 == NaN) //false print(NaN === NaN); // false print(NaN == NaN); // false </script> </body> </html>
number,string,object, boolean,undefinedspa
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script src="base.js"></script> <script> print(typeof "John" ); // Returns string print(typeof 3.14) // Returns number print(typeof false) // Returns boolean print(typeof [1,2,3,4]) // Returns object print(typeof {name:'John', age:34}) // Returns object print(typeof a) // Returns undefined </script> </body> </html>
JavaScript具備動態類型。這意味着同一個變量能夠用做不一樣的類型:設計
var x; // Now x is undefined var x = 5; // Now x is a Number var x = "John"; // Now x is a String
在JavaScript中,null的數據類型是一個對象。
var person = null; // Value is null, but type is still an object
undefined和null之間的區別:
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
undefined比null更消極,null表示變量該是一個對象,undefined表示不知道要保存什麼類型;
返回值:數組轉換爲(逗號分隔的)數組值的字符串。
注意:將對象轉成字符串時,用String()轉,由於String(null)不出錯, undefined.toString()或null.toString()會出錯
返回值:用給定的分隔符將各數組元素組成字符串,相似於toString()
分別在尾巴上彈出和推入元素;
返回值:分別返回彈出的元素和新數組的長度;shift()和unshift()相似,只是在前面彈出和推入元素
將數組統一用給定參數填充;
返回值: 更改後的數組
處理函數: func(currentValue[,index,arr]) 【下同】
返回值:傳入一個函數,根據函數的返回結果判斷是保留,並將保留結果做爲數組返回
返回值:傳入一個函數,根據函數的返回結果返回第一個符合條件的數組元素值
和find(func)相似,只是返回符合func()條件的數組元素的index值
返回值: 若是數組中的任何元素經過測試,則返回數組元素索引,不然返回undefined
爲每一個元素調用處理函數func; thisValue是處理函數this的值,若是此參數爲空,則是Windows對象
返回值: undefined
返回值: 將指定部分的數組元素做爲新數組返回
在index位置開始刪除howmany各元素,並插入item...
返回值: 返回刪除的值(若是有)
Javascript沒有對象:
因而模擬了一個對象:相似於hashmap的key:value保存結構
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script src="base.js"></script> <script> var stu = new Object(); // 可以保存key value的值 stu.name = "王有財"; stu.age = 21; stu.showInfo = function(){ print(this); print('name = '+ this.name + ';age = ' + this.age); } stu.showInfo(); </script> </body> </html>
結果:
{name: "王有財", age: 21, showInfo: ƒ}
name = 王有財;age = 21