洛谷 [NOIP2011 提高組] 聰明的質監員(字首和,二分)
JavaScript
概述
JavaScript是一門世界上最流行的指令碼語言
一個合格的後端人員,必須要精通JavaScript
歷史
https://blog.csdn.net/kese7952/article/details/79357868
快速入門
引入JavaScript
- 內部標籤
<script>
</script>
- 外部引入
<script src="">
</script>
基本語法入門
<meta charset="UTF-8"> <title>第一個javaScript</title> <!-- <script>--> <!-- alert('hello,world');--> <!-- </script>--> <script src="js/lc.js"> </script>
var score=82;
if(score>72){
alert(71);
}else{
alert(other);}
在瀏覽器的控制檯列印變數:
console.log(var);
資料型別
變數:var(定義全域性變數)
'use strict ';為嚴格檢查模式,預防JavaScript的隨意性導致產生的一些問題
區域性變數建議都使用let去定義,必頸寫在Javascript的第一行!
number型別:
NaN:not a number
Infinity:表示無限大
字串
邏輯運算
&& || !
比較運算子
=:賦值
==:等於(型別不一樣,值一樣,返回True)
===:絕對等於
注意:
NaN===NaN,這個與所有的數值都不相等,包括自己
只能通過isNaN(NaN)來判斷這個數是否是NaN
浮點數問題:
console.1og((1/3) === (1-2/3))
返回false
儘量避免使用浮點數進行運算,存在精度問題!
Math.abs(1/3-(1-2/3))<0.00000001
null和undefined
-
null 表示空
-
undefined 表示未定義
陣列:
Java的陣列必須是相同型別的物件~,JS中不需要這樣!
var arr = [1,2,3,4,5 , 'he11o',null,true]
物件:
JavaScript中的所有的鍵都是字串,值是任意物件!
var person = {
name : "qinjiang",
age: 3,
tags: [ 'js' , 'java ' , " web' ,'...']
}
person.name
物件是大括號,陣列是中括號~~
每個屬性之間使用逗號隔開,最後一個不需要新增
流程控制
Map和Set
iterator
函式
定義函式
定義方式一:
如果沒有執行return,函式執行完也會返回結果,結果就是undefined
定義方式二:
function(x) ....}.這是一個匿名函式。但是可以把結果賦值給abs,通過abs 就可以呼叫函式!
arguments:
問題: arguments包含所有的引數,我們有時候想使用多餘的引數來進行附加操作。需要排除已有引數~
rest:
ES6引入的新特性,獲取除了已經定義的引數之外的所有引數~,
變數的作用域
方法
內部物件
Date
JSON
面向物件程式設計
什麼是面向物件
Class繼承
class關鍵字,是ES6引入的
-
繼承
原型和原型鏈
操作BOM物件(重點)
操作DOM物件(重點)
1.這是原生程式碼,之後我們儘量都是用jQuery
注意:刪除多個節點的時候,children是在時刻變化的,刪除節點的時候一定要注意。
操作表單(驗證)
獲得提交的資訊
jQuery
jQuery庫,裡面存在大量的JavaScript函式