JS是面向對象的語言
- 封裝
- 繼承
- 多態
- 聚集(對象中具有引用其他對象的能力)
JS使用中絕大多數情況不需要進行面向對象的設計,很多情況是使用已經設計好,準備好的對象,基于對象的語言.
JS的使用(引入)
- jsp、html中直接在script標簽中書寫
- 在script標簽中引入
注意:?
- script 標簽位置任意. 但是位置越靠前,執行越早.(重要)
- js 外部文件推薦擴展名是.js.但是其實任何后綴名都可以.
- 使用script標簽引入外部文件,那么該script標簽中就不要書寫js代碼了.
JS的基本語法
- 變量聲明
變量聲明使用var,變量區分大小寫 str 和 STR 不是同一個變量. 字符串使用雙引號("")或單引號('')包裹都可以.變量的類型可以隨時改變.命名規則是匈牙利標記法.
var str = 1; var str?= "Hello"; //兩者之間沒有任何區別
- 行尾使用 ";" 作為一行的結束符號.(可以沒有";", 以折行符(回車)作為一行的結尾.)(不推薦) ?
- js 中的注釋有兩種單行,多行
單行注釋"//" 多行注釋 "/* */"
- 封裝代碼塊與 java 一樣,使用{}.
-
變量聲明時, 前綴 var 也不是必須的.
加var 和 不加 var 有什么區別? 如果不使用var,那么該變量是全局變量
JS的類型
js中類型分為兩種
- 原始數據類型
- 對象數據類型
java中 基本數據類型有 byte short int long float double boolean char
js中 原始數據類型有 ? ? number(數字,浮點型,整型)
string(js語言的突破,沒有char類型.)
boolean
null (用來標示引用數據類型的占位符.通常都是人為賦值.)var person = null;
undefined (由null衍生出來的值,是當我們聲明一個變量,)
1.沒有給該變量初始化值,那么系統會默認賦值為undefined
2.函數中沒有返回值,那么默認返回undefined
原始數據類型 判斷符:
typeof ?用來判斷一個變量是哪種原始類型的.
null會返回object,?是js中的一個bug,這個bug 被認為很貼切.所以保留了該bug.
JS中的語句
java中有循環: for while-do do-while
有判斷: if switch
js中語句 與java中一模一樣!
特殊: java中的增強for循環在js中沒有.
js中有for(var xx in xx) 語句. ?用的很少,用來遍歷對象的屬性.
JS中運算符
一元運算符
一元加法,減法
var a = +1;
var b = -1;
在js中的高級應用.
var c = +"1"; //進行類型轉換
var d = +"abc"; ? // 轉換失敗,返回number中的特殊值 NaN.
Boolean 運算符 ! && ||
js中自動類型轉換.?轉換規律 (重點)
string ?==> "" 轉換為false 其他都為true;
number ==> 除了NaN,+0和-0.其他都轉換為true.
null ==> false
undefined ==> false
NaN特性:
NaN參與的任何boolean運算返回值都是false. 除了!=,因為undefined是null衍生出的,所以?alert(undefined == null);// true
比較運算符
alert(11>3); //true
當運算符兩端 , 一端是數字,一端是其他類型時, 其他類型會自動向數字類型轉換
alert("11">3); // true
alert(11>"3"); //true
字符串在進行比較時 ,規律是: 比較首字符asc碼. 如果一樣,比較第2位...
alert("11">"3"); // false
alert("11">"1"); // true
alert("abc">11); //false
等性運算符 == != ===
全等于: === 比較時包括類型.
ECMAScript中的對象
- Object ?是所有對象的超類. Function對象以及Function的創建
- var fun1 = new Function("a","b","alert(a+b);");
- var fun2 = function (a,b){alert(a+b);}
- function fun3(a,b){alert(a+b)} ? ?
- Function的調用
- js中函數的調用只看函數名稱. 調用時內置對象arguments,?arguments代表函數運行期間實際參數列表.
arguments.length ?實際參數個數
arguments[0] ? 第一個參數.
應用: arguments 實現函數的重載. - ?函數的返回
1. 如果函數沒有顯示指定返回值,那么函數返回值為undefined.
2. 使用return關鍵字,返回內容
3. return 關鍵字,在js中也可以作為結束方法運行的功能.
4. void運算符的應用.
ECMAScript中對對象的分類
- 本地對象
內建對象 ? 不需要創建實例.直接使用 Global Math
主機對象 ? DOM BOM 兩部分.
ECMAScript中3個包裝對象.
String Number Boolean
偽對象: string number boolean 這3個原始類型可以看作是偽對象, 能直接調用包裝對象的方法和屬性.
String對象屬性length
重要的方法
indexOf
lastIndexOf
charAt
alert(str1.charAt(0)); //a
charCodeAt 返回所在字符的asc碼
alert(str1.charCodeAt(0)); //97
subString
alert(str1.substring(0, 1)); //a
slice 支持負數. 從右往左.
alert(str1.slice(0, -1)); //a
與正則結合的方法
split
replace
match
search
Global對象
?