'w3cschool javascript基礎教程筆記(1)'
注:本文是w3cschool javascript基礎教程筆記(1),目的是用精簡的語言記錄JavaScript核心基礎知識,用於今後的複習提示,所以內容不會特別詳盡,也沒有示例,不推薦完全沒有接觸過javascript的同學閱讀。筆記範圍《js教程》~《js數組迭代》。
1. 用途
改變html內容;改變html屬性;改變html樣式
2. 使用
行內引用;html內引用;外部引用
3. 語句
由 值(字面量<數值或者字符串>/變量)、運算符(+-/)、表達式(ab)、關鍵詞(var)、註釋(單行註釋/多行註釋)構成,以“;”結尾
4. 標識符
用於命名變量/關鍵詞/函數/標籤;
首字母必須是字母/下劃線/美元符號;
不能帶有-(-在javascript中是減法符號);
大小寫敏感
5. 註釋
單行註釋(以“//”開頭);
多行註釋(以“/”開頭,“/”結尾,處於這中間的一律視為註釋內容)
6. 變量
存儲數值的容器(以var/let/const為關鍵詞,let/const為es6新增關鍵詞);
變量先聲明再使用,否則變量值為undefined(使用let/const為關鍵詞時報錯)
7. 運算符
比較運算符(>/</三元運算符等等);
邏輯運算符(或/與/非);
算術運算符;
類型運算符(typeof/instanceof);
位運算符;
賦值運算符(+=/>>>=)
8. 數據類型
數值;字符串;布爾值;數組;對象
9. 函數
執行特定任務的代碼塊;
語法function name(參數 1, 參數 2, 參數 3) {要執行的代碼}
10. 對象
含有屬性和方法;
使用new Object()創建
11. 事件
發生在元素上的“事情”;
添加事件可以使元素再發生該事件時執行特定的操作;
常見事件有onchange,onclick,onmouseover,onmouseout,onkeydown,onload
12. 轉義字符
\\b退格, \\f換頁, \\n換行, \\r回車, \\t水平製表符, \\v垂直製表符
13. 字符串屬性與方法
length屬性;
indexOf() (指定文本首次出現的索引,從頭到尾檢索,可設置開始檢索的位置 );
lastIndexOf() (指定文本最後一次出現的索引,從尾到頭檢索,可設置開始檢索的位置);
search() (與indexOf()作用相同,但是search()無法設置開始檢索的位置,indexOf() 無法設置更強大的搜索值);
slice(start,end) (提取字符串某一部分並咋新字符串中返回被提取的值,可接受負數索引);
substring(start,end) (與slice功能相同,但是不能接受負數的索引);
substr(start,end) (與slice功能相同,但是其第二個參數表示被提取的長度,而不是索引值);
replace("old","new")(使用新值替換字符串中的某個舊值,然後返回一個新的字符串,不改變原有的字符串);
toUpperCase() (大寫轉換);
toLowerCase() (小寫轉換);
concat() (text1.concat("連接字符",text2) 使用連接字符將text1和text2連接成一個新的字符串並返回該字符串);
trim() (刪除字符串兩端的空白符,不支持ie8);
charAt() (返回指定索引位置的字符);
charCodeAt() (返回指定索引位置的字符unicode 編碼);
split("分隔符") (將字符串分割轉換成數組)
注意:
- 字符串“0123456789”從左到右的索引值是0到9,從右到左的索引值是-1到-10
- 取字符串片段時,從start位字符開始,取到end-1位字符,end位字符不取
- replace對大小寫敏感
14. 數字
JavaScript數值始終是一個62位浮點數;
與字符串相加會變成字符串
15. 變量類型轉換
- 轉換成字符串類型
- toString() (將變量轉換成字符串類型);
- toExponential() (將數值型變量轉換成使用指數計數法的字符串類型,該方法可添加參數,參數表示保留的小數點的位數);
- toFixed()(將數值型變量轉換成字符串類型,該方法可添加參數,參數表示保留的小數點的位數);
- toPrecision()(將數值型變量轉換成字符串類型,該方法可添加參數,參數表示數字指定的長度);
- 轉換成數值類型
- Number()/parseFloat()/parseInt() 以上三種方法可以將數值型字符串轉化成number類型
15. 數組
聲明方式(兩種,第二種不推薦使用)
var cars = ["ttt", "mmm", "nnn"]
var cars = new Array("ttt", "mmm", "nnn");
可以使用下角標獲取該位置參數,如cars[0] (序號從0開始)
1. 增
push() (在最後添加元素,返回的是新數組長度)
unshift() (在首位添加元素,返回的是新數組長度)
cars[cars.length] = "kkk“ 與push()效果相同
cars.splice(2,0,"lll","qqq") (第一個參數[2]表示添加元素的位置,第二個元素[0]表示需要刪除後面幾個元素)
concat() (合併數組 arr1.concat(arr2,arr3,...))
2. 刪
pop() (刪除最後一個元素,返回的是刪除的元素)
shift() (刪除第一個元素,返回的是刪除的元素)
delete.cars[2] (精確刪除某個位置的元素值,但是該位置保留,元素值位undefined)
cars.splice(1,1) (後面不添加新元素即可看成是在減元素)
slice(start,end) (剪裁數組,剪裁後的數組作為新值返回,原數組不變)
3. 改
cars[2] = "kkk"
cars.splice(2,1,”kkk“) (增加的元素個數等於減少的元素個數即可看成是在修改元素)
4. 查
遍歷——for循環 / foreach() 函數
5. 轉換
toString() (把數組轉換為數組值(逗號分隔)的字符串)
join() (把數組轉換為數組值(以方法內參數分隔)的字符串)
判斷是否是數組——Array.isArray(cars); (es5以上)
6. 排序
升序——sort() (以字母順序對數組進行排序)
降序——sort()+reverse() (reverse()方法反轉數組元素)
注意:sort()方法只能對字母排序,當元素為數值時會出現錯誤,例如使用sort(),25會大於100。
數值數組升序——sort(function(a, b){return a - b})
數值數組降序——sort(function(a, b){return b - a})
隨機排序——sort(function(a, b){return 0.5 - Math.random()})
7. 迭代
forEach()——接受三個參數(項目只,項目索引,數組本身)
map() ——與forEach()用法完全相同,只不過map()是返回一個新的數組,而forEach()不返回
filter() ——篩選數組內容,留下符合要求的元素,生成一個新數組並返回
every() ——判斷是否數組內所有元素都滿足某一要求,返回布爾值
some() ——判斷是否數組內有元素滿足某一要求,返回布爾值
find() ——返回通過測試函數的第一個數組元素的值
findIndex() ——返回通過測試函數的第一個數組元素的索引