二十分鐘學會Javascript初級語法,圖片來自網絡
Javascript基本用法
-
Javascript代碼寫在
<script>
標簽內<script> //Javascript代碼寫在這里 </script>
-
Javascript代碼可以寫在
body
標簽內<body> <script> //Javascript代碼寫在這里 </script> </body>
-
Javascript代碼可以寫在
<head>
標簽內<head> <script> //Javascript代碼寫在這里 </script> </head>
-
Javascript代碼可以寫在外部的獨立js文件內
<head> <script src="xxx.js"></script> </head>
在
<body>
和<head>
標簽內的Javascript代碼是不同的,在<head>
標簽內的JS代碼在頁面加載的時候就會運行,而在<body>
內的JS代碼只有在需要的時候才會執行。一般會把多個頁面都是用到的JS代碼放到獨立的js文件中。
Javascript顯示數據的方法
- 使用彈出框
window.alert()
或者alert()
方法。其中,window
是Javascript的一個內置對象,可省略不寫。 - 使用
document.write()
方法直接寫入html源碼。 - 使用
console.log()
方法將調試信息打印到瀏覽器控制臺。
Javascript字面量
//數字字面量(Number)
var a = 3.14; //浮點數
var b = 1; //整數
var c = 13e5; //科學計數法
//字符串字面量(String)
var d = 'string'; //字符串
var e = "string"; //字符串
//數組和對象字面量(Array & Object)
var f = [1,2,3]; //數組
var g = {a:"a",b:"b"} //對象
//函數字面量(Function)
var h = function(){}; //函數
Javascript變量
<script>
var a = 1; //這是一個全局變量
b = 2; //這是一個全局變量
function f(){
var c = 3; //這是一個局部變量
d = 4; //這是一個全局變量
}
</script>
注意,沒有使用
var
關鍵字標識的字段都是全局變量,使用了var
關鍵字標識的變量如果在方法內聲明,則為局部變量,否則也為全局變量,主要觀測其所在的作用域。
Javascript語句標識符
在Javascript中,也有類似于Java和C#等高級面向對象語法的語句標識符,主要有break/try...catch/continue/do...while/for/for..in/function/if...else/return/switch/throw/while/var
Javascript代碼折行
使用\\
可以對JS代碼進行折行處理:
document.write('hello \
world');
Javascript注釋語法
- 使用
//
進行單行注釋 - 使用
/* ... */
進行多行注釋
Javascript數據類型
- 字符串(String)類型
- 數字(Number)類型
- 布爾(Boolean)類型
- 數組(Array)類型
- 對象(Object)類型
- 空(Null)類型
- 未定義(Undefined)類型
Javascript對象
var obj = { //創建對象
a:"a",
b:"b",
c:2,
method:function(){}
}
var d = obj.a; //訪問對象屬性
var e = obj.b;
var f = obj.method; //訪問對象方法
Javascript函數
function a(){ //無返回值函數
//...
}
function b(){ //有返回值的函數
return 1;
}
var c = b(); //調用函數
Javascript作用域
- 在Javascript中,對象和函數也是一種變量。
- 作用域是可訪問變量、對象和函數的集合。
- 函數作用域:作用域在函數內修改。
- 變量在函數內聲明,則其作用域為局部作用域。
- 全局變量有全局作用域,網頁中所有的腳本和網頁都可以使用。
Javascript事件
<some-HTML-element some-event='some JavaScript'>
<some-HTML-element some-event="some JavaScript">
常用的HTML事件有:onchange/onclick/onmouseover/onmouseout/onkeydown/onload
絕對等于和絕對不等于
-
===
表示絕對等于(值和類型都相等) -
!==
表示絕對不等于(值或類型不相等)
遍歷對象的屬性
var person = {name:"Anderson",age:25}
for(x in person){
txt = txt + person[x];
}
Javascript typeof操作符
typeof "Anderson" //返回string
typeof 3.14 //返回number
typeof false //返回boolean
typeof [1,2,3,4] //返回object
var a;
typeof a //返回undefined
a = null;
typeof a //返回null
typeof undefined // undefined
typeof null // object
Javascript 構造器屬性
"John".constructor // 返回函數 String() { [native code] }
(3.14).constructor // 返回函數 Number() { [native code] }
false.constructor // 返回函數 Boolean() { [native code] }
[1,2,3,4].constructor // 返回函數 Array() { [native code] }
{name:'John', age:34}.constructor // 返回函數 Object() { [native code] }
new Date().constructor // 返回函數 Date() { [native code] }
function () {}.constructor // 返回函數 Function(){ [native code] }
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
}
JavaScript 變量提升
- JavaScript 中,函數及變量的聲明都將被提升到函數的最頂部。變量可以在使用后聲明,也就是變量可以先使用再聲明
- JavaScript 初始化不會提升
函數提升(Hoisting)
- 提升(Hoisting)是 JavaScript 默認將當前作用域提升到前面去的的行為。
- 提升(Hoisting)應用在變量的聲明與函數的聲明。
JavaScript 嚴格模式(use strict)
- "use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增
- 它不是一條語句,但是是一個字面量表達式,在 JavaScript 舊版本中會被忽略
- "use strict" 的目的是指定代碼在嚴格條件下執行。嚴格模式下你不能使用未聲明的變量。
href="#"與href="javascript:void(0)"的區別
-
#
包含了一個位置信息,默認的錨是#top
也就是網頁的上端。 - 而
javascript:void(0)
, 僅僅表示一個死鏈接。 - 在頁面很長的時候會使用
#
來定位頁面的具體位置,格式為:# + id
。 - 如果你要定義一個死鏈接請使用
javascript:void(0)
。
附錄 文章更新日志
2016-06-03 初稿
2016-06-06 修正文章中的錯別字
2016-06-22 修正文章中的一處筆誤