<!-- 方式一 -->
<script type"text/javascript" src="JS文件"></script>
<!-- 方式二 -->
<script type"text/javascript">
Js代碼內容
</script>
因爲Html代碼是從上到下執行,若是Head中的js代碼耗時嚴重,就會致使用戶長時間沒法看到頁面,若是放置在body代碼塊底部,那麼即便js代碼耗時嚴重,也不會影響用戶看到頁面效果,只是js實現特效慢而已。javascript
JavaScript中變量的聲明是一個很是容易出錯的點,局部變量必須一個 var 開頭,若是未使用var,則默認表示聲明的是全局變量。java
<script type="text/javascript"> // 全局變量 name = 'seven'; function func(){ // 局部變量 var age = 18; // 全局變量 gender = "男" } </script>
JavaScript 中的數據類型分爲原始類型和對象類型:編程
JavaScript中不區分整數值和浮點數值,JavaScript中全部數字均用浮點數值表示。數組
轉換:瀏覽器
特殊值:dom
1 常量 2 3 Math.E 4 常量e,天然對數的底數。 5 6 Math.LN10 7 10的天然對數。 8 9 Math.LN2 10 2的天然對數。 11 12 Math.LOG10E 13 以10爲底的e的對數。 14 15 Math.LOG2E 16 以2爲底的e的對數。 17 18 Math.PI 19 常量figs/U03C0.gif。 20 21 Math.SQRT1_2 22 2的平方根除以1。 23 24 Math.SQRT2 25 2的平方根。 26 27 靜態函數 28 29 Math.abs( ) 30 計算絕對值。 31 32 Math.acos( ) 33 計算反餘弦值。 34 35 Math.asin( ) 36 計算反正弦值。 37 38 Math.atan( ) 39 計算反正切值。 40 41 Math.atan2( ) 42 計算從X軸到一個點的角度。 43 44 Math.ceil( ) 45 對一個數上舍入。 46 47 Math.cos( ) 48 計算餘弦值。 49 50 Math.exp( ) 51 計算e的指數。 52 53 Math.floor( ) 54 對一個數下舍人。 55 56 Math.log( ) 57 計算天然對數。 58 59 Math.max( ) 60 返回兩個數中較大的一個。 61 62 Math.min( ) 63 返回兩個數中較小的一個。 64 65 Math.pow( ) 66 計算xy。 67 68 Math.random( ) 69 計算一個隨機數。 70 71 Math.round( ) 72 舍入爲最接近的整數。 73 74 Math.sin( ) 75 計算正弦值。 76 77 Math.sqrt( ) 78 計算平方根。 79 80 Math.tan( ) 81 計算正切值。 82 83 Math
obj.length 長度 obj.trim() 移除空白 obj.trimLeft() obj.trimRight) obj.charAt(n) 返回字符串中的第n個字符 obj.concat(value, ...) 拼接 obj.indexOf(substring,start) 子序列位置 obj.lastIndexOf(substring,start) 子序列位置 obj.substring(from, to) 根據索引獲取子序列 obj.slice(start, end) 切片 obj.toLowerCase() 大寫 obj.toUpperCase() 小寫 obj.split(delimiter, limit) 分割 obj.search(regexp) 從頭開始匹配,返回匹配成功的第一個位置(g無效) obj.match(regexp) 全局搜索,若是正則中有g表示找到所有,不然只找到第一個。 obj.replace(regexp, replacement) 替換,正則中有g則替換全部,不然只替換第一個匹配項, $數字:匹配的第n個組內容; $&:當前匹配的內容; $`:位於匹配子串左側的文本; $':位於匹配子串右側的文本 $$:直接量$符號
布爾類型僅包含真假,與Python不一樣的是其首字母小寫。編程語言
obj.length 數組的大小 obj.push(ele) 尾部追加元素 obj.pop() 尾部獲取一個元素 obj.unshift(ele) 頭部插入元素 obj.shift() 頭部移除元素 obj.splice(start, deleteCount, value, ...) 插入、刪除或替換數組的元素 obj.splice(n,0,val) 指定位置插入元素 obj.splice(n,1,val) 指定位置替換元素 obj.splice(n,1) 指定位置刪除元素 obj.slice( ) 切片 obj.reverse( ) 反轉 obj.join(sep) 將數組元素鏈接起來以構建一個字符串 obj.concat(val,..) 鏈接數組 obj.sort( ) 對數組元素進行排序
JavaScript中的eval是Python中eval和exec的合集,既能夠編譯代碼也能夠獲取返回值。ide
var d = new Date(); d.getHours() d.setHours(18); d # Sat Jul 29 2017 18:26:09 GMT+0800 (中國標準時間)
if(條件){ }else if(條件){ }else{ }
switch函數
switch(name){ case '1': age = 123; break; case '2': age = 456; break; default : age = 777; }
var names = ["alex", "tony", "rain"]; for(var i=0;i<names.length;i++){ console.log(i); console.log(names[i]); }
var names = ["alex", "tony", "rain"]; for(var index in names){ console.log(index); console.log(names[index]); }
第三種:this
while(條件){ // break; // continue; }
try { //這段代碼從上往下運行,其中任何一個語句拋出異常該代碼塊就結束運行 } catch (e) { // 若是try代碼塊中拋出了異常,catch代碼塊中的代碼就會被執行。 //e是一個局部變量,用來指向Error對象或者其餘拋出的對象 } finally { //不管try中代碼是否有異常拋出(甚至是try代碼塊中有return語句),finally代碼塊中始終會被執行。 }
ps:主動拋出異常 throw Error('xxxx')
// 普通函數 function func(arg){ return true; } // 匿名函數 var func = function(arg){ return "tony"; } // 自執行函數 (function(arg){ console.log(arg); })('123')
ps:對於JavaScript中函數參數,實際參數的個數可能小於形式參數的個數,函數內的特殊值arguments中封裝了全部實際參數。
function func(){ if(1==1){ var name = 'alex'; } console.log(name); } func() # 打印alex name # 打印""
b.函數的做用域在函數未被調用以前,已經建立
function func(){ if(1==1){ var name = 'alex'; } console.log(name); }
xo = "alex"; function func(){ var xo = 'eric'; function inner(){ var xo = 'tony'; console.log(xo); } inner() } func() # 打印tony
示例二:
xo = "alex"; function func(){ var xo = 'eric'; function inner(){ console.log(xo); } return inner; } var ret = func() ret() # 打印eric
示例三:
xo = "alex"; function func(){ var xo = 'eric'; function inner(){ console.log(xo); } var xo = 'tony'; return inner; } var ret = func() ret() # 打印tony
d.函數內局部變量 聲明提早
function func(){ console.log(xxoo); } func(); // 程序直接報錯 function func(){ console.log(xxoo); var xxoo = 'alex'; } 解釋過程當中:var xxoo; func(); // undefined
function Foo (name,age) { this.Name = name; this.Age = age; this.Func = function(arg){ return this.Name + arg; } } var obj = new Foo('alex', 18); var ret = obj.Func("nb"); console.log(ret);
對於上述代碼須要注意:
function Foo (name,age) { this.Name = name; this.Age = age; } Foo.prototype = { GetInfo: function(){ return this.Name + this.Age }, Func : function(arg){ return this.Name + arg; } }
function t1(age){ console.log(age); // function age() var age = 27; console.log(age); // 27 function age(){} console.log(age); // 27 } t1(3);