目錄
簡介
核心
函數
字符串對象
事件
運算符和控制語句
DOM
正則表達式
BOM
JSON
簡介
JavaScript由JavaScript語法,DOM和BOM組成
JS中提供了一些輸入輸出語句:
? ? ? ? alert(); //瀏覽器彈出警示框
? ? ? ? console.log(); //控制臺打印
? ? ? ? prompt(); //瀏覽器彈出輸入框
? ? ? ? var 變量名 = 值; //可以賦任何值,弱類型語言
? ? ? ? 只聲明,不賦值:默認賦值 undefined
? ? ? ? 不聲明,不賦值:報錯
? ? ? ? 不聲明,只賦值:可以用
typeof運算的語法格式:
? ? ? ? typeof 變量名
typeof運算符的運算結果是以下六個字符串之一:
? ? ? ? undefined string boolean object number function
全局變量:瀏覽器打開時聲明,瀏覽器關閉時銷毀
注意:
? ? ? ? 省略var聲明的變量,無論是在函數體內還是函數體外定義的都是全局變量
? ? ? ? 聲明局部變量,一定要用var語句
轉換為字符串
? ? ? ? num.toString();
? ? ? ? String(num);
? ? ? ? num + "字符串"
轉換為數字
? ? ? ? parseInt(str);
? ? ? ? parseFloat(str);
? ? ? ? Number(str);
null NaN undefined 這三個值有什么區別?
null:object
NaN:number
undefined:undefined
但是null和undefined可以等同
核心
函數的定義方式:
? ? ? ? function 函數名(形參){
? ? ? ? ? ? ? ? 函數體;
????????}
? ? ? ? 函數名 = function(形參){
? ? ? ? ? ? ? ? 函數體;
????????}
? ? ? ? JS中的函數不需要指定返回值類型,返回什么類型都行
? ? ? ? 可以作為屬性值調用,οnclick="函數"
JS定義類的語法:
? ? ? ? function 類名(形參){
? ? ? ? ? ? ? ? this.屬性 = 屬性值,
? ? ? ? ? ? ? ? this.方法 = function(){}
????????}
? ? ? ? var 類名 = function(形參){}
? ? ? ? var 類名 = {}
? ? ? ? 可以通過prototype這個屬性來給類動態擴展屬性以及函數
? ? ? ? 類名.prototype.方法 = function(){}
創建數組的兩種方式:
? ? ? ? var 數組名 = new Array();
? ? ? ? var 數組名 = [];
函數
obj.getFullYear();
obj.getMonth();
obj.getDate();
obj.getDay();
obj.getHours();
obj.getMinutes();
obj.getSeconds();
字符串對象
concat(str1,str2,str3)
substr(start,length)
slice(start,end)
substring(start,end)
toUpperCase()
toLowerCase()
事件
任何一個事件都會對應一個事件句柄,事件句柄是在事件前添加on。
onXXX這個事件句柄出現在一個標簽的屬性位置上。
注冊事件的兩種方式:
? ? ? ? 1、直接在標簽中使用事件句柄
? ? ? ? 2、先獲取這個按鈕對象,給按鈕對象的onclick屬性賦值
運算符和控制語句
void運算符:
? ? ? ? 語法:void(表達式)
? ? ? ? 運算原理:執行表達式,但不返回任何結果
? ? ? ? ? ? ? ? javascript:void(0)
即保留超鏈接的樣式,同時用戶點擊該超鏈接的時候執行一段JS代碼,但頁面還不能跳轉
<a href="javascript:void(0)"> </a>
數組定義語法:
? ? ? ? var 數組名 = [];
? ? ? ? for..in
? ? ? ? for(var i in array){
? ? ? ? ? ? ? ? alert(i);
????????}
? ? ? ? with
? ? ? ? with(對象名){
? ? ? ? ? ? ? ? alert(屬性);
????????}
DOM
根據id名獲取:document.getElementById("id名");
根據標簽名獲取:document.getElementsByTagName("標簽名");
根據類名獲取:document.getElementsByClassName("類名");
根據選擇器獲取:document.querySelector("選擇器");
根據選擇器獲取:document.querySelectorAll("選擇器");
獲取body元素:document.body
獲取html元素:document.documentElement;
innerText和innerHTML屬性有什么區別?
相同點:都是設置元素內部的內容
不同點:innerText不識別html標簽;innerHTML識別html標簽
關于dom操作,主要針對于元素的操作。主要有創建、增、刪、改、查、屬性操作、事件操作。
創建:
? ? ? ? 1、document.write
? ? ? ? 2、innerHTML
? ? ? ? 3、createElement
增加:
? ? ? ? 1、appendChild
? ? ? ? 2、insertBefore
刪除:
? ? ? ? 1、removeChild
修改:
? ? ? ? 1、修改元素屬性:src、href、title
? ? ? ? 2、修改普通元素內容:innerHTML、innerText
? ? ? ? 3、修改表單元素:value、type、disabled
? ? ? ? 4、修改元素樣式:style、className
查詢:
? ? ? ? 1、DOM提供的API方法:getElementById、getElementsByTagName
? ? ? ? 2、querySelector、querySelectorAll
? ? ? ? 3、利用節點操作獲取元素:parentNode、children、previousElementSibling、nextElementSibling
屬性操作:
? ? ? ? 1、setAttribute
? ? ? ? 2、getAttribute
? ? ? ? 3、removeAttribute
正則表達式
什么是正則表達式,有什么用?
? ? ? ? Regular Expression
? ? ? ? 正則表達式主要用在字符串格式匹配方面
BOM
BOM編程中,window對象是頂級對象,代表瀏覽器窗口
window.open()
window.close()
window.alert()
window.confirm()
window.history.back()
window.history.go(-1)
window.history.go(1)
以上相當于網頁左上角的前進和后退箭頭
window.localtion.href //當前頁面的地址
document.location //也是地址
總結:有哪些方法可以通過瀏覽器往服務器發請求?
? ? ? ? 1、表單form的提交
? ? ? ? 2、超鏈接
? ? ? ? 3、document.location
? ? ? ? 4、window.location
? ? ? ? 5、window.open("url")
? ? ? ? 6、直接在瀏覽器地址欄上輸入url
以上所有的請求方式都可以攜帶數據給服務器,只有通過表單提交的數據才是動態的。
JSON
什么是JSON,有什么用?
? ? ? ? JavaScript Object Notation
? ? ? ? 主要的作用是:一種標準的數據交換格式,目前非常流行
JSON是一種標準的輕量級的數據交換格式。特點是:體積小,易解析
在實際的開發中有兩種數據交換格式,使用最多,其一是JSON,另一個是XML。
? ? ? ? XML體積較大,解析麻煩,語法嚴謹
? ? ? ? 通常銀行相關的系統站之間進行數據交換的話使用XML
HTML的XML有一個父親:SGML
HTML主要做頁面展示:語法松散
XML主要做數據存儲和數據描述的:語法相當嚴格
//創建JSON對象
var student = {no : '01',name : '張三',age : 20,sex : '男'
}
//遍歷JSON對象
for(var s in student){alert(student[s]);
}//一個復雜的json對象
var jsonData = {name : '張三', age : 20,address : {city : '北京',street : '朝陽區'},interest : ['smoke', 'drink']
}
Java連接數據庫,查詢數據之后,將數據在java程序中拼接成JSON格式的字符串,將json格式的字符串響應到瀏覽器也就是說java響應到瀏覽器上的僅僅是一個JSON格式的字符串,還不是一個json對象,可以使用eval函數,將json格式的字符串拼接成json對象。
eval函數的作用是:將字符當作一段JS代碼解析并執行
var str = "{name : 'jack', age : 22}";window.eval("var json2 = " + str);
alert(json2.name);
在JS當中: []和{}有什么區別?
? ? ? ? []是數組
? ? ? ? {}是JSON