05-javaScript基礎
核心知識點
- 數組
- 操作字符串方式
- 獲取系統時間
- Math相關方法
今日目標
- 能夠完成數組相關案例
- 能后獲取系統時間
- 能夠操作隨機數
- 能夠完成小娜案例**[最終的目標]**
數組
思考如果我們希望同時保存多條數據該怎么辦?【例如:如何將班上所有學生姓名保存起來】
學習數組的意義?
? 數組: 可以一次保存多條數據, 數組也是一個用來保存數據的容器。
學習數組
創建數組
var 自定義數組名稱 = new Array();
var 自定義數組名稱 = [] ;
數組賦值
? 構造函數方式var ary = new Array (1,2,3,5,6);? 字面量方式賦值var ary = [1,2,3,4,6];
var ary = [];ary[0]=1;ary[1]=2;總結:1. 數組中索引值是從 0 開始的2. 通過索引的方式給數組賦值,要按照順序個數設置3. 通過 數組名.length 可以獲取到當前數組的長度
獲取數組中的值
? 通過索引的方式獲取數組中的值,數組的索引從0開始? 語法:數組名[索引號]例如:var ary = [1,2,3,4,5];ary[0];ary[1];
數組課堂案例
- 練習1:統計班級學生就業薪資,計算總薪資 和 平均薪資。- 練習2:統計班級學生就業薪資,計算薪資超過15000的人的個數。- 練習3:給一個不重復的數字數組,求最大值和最大值的在數組中的位置- 練習4:給一個字符串數組,將數組中的每一個數據拼接在一起,每個數據之間用 | 符合拼接。 如: ‘張三|李四|王五’- 練習5:給一個數字數組,該數組中有很多數字0,將不為0的數據存入到一個新的數組中
冒泡排序[算法]
<script>var ary = [1, 2, 3, 4, 5];//將數組中的值按照降序排列: 從大到小//核心:// 1. 找相鄰的兩個值 ary[i] ary[i+1]// 2. 交換位置, 找一個中間變量// 步驟:// 1. 要明確比較多少趟(循環多少次 數組總長度 - 1)for(var i = 0 ; i < ary.length - 1; i++) {// 2. 在每一趟中,進行相鄰的兩個值比較大小(遍歷數組)for(var j = 0; j < ary.length; j++) {//相鄰的兩個值if(ary[j] < ary[j+1]) {//交換位置var c = ary[j];ary[j] = ary[j+1];ary[j+1] = c;}}}console.log(ary);// 冒泡排序核心:// 1. 兩兩比較大小// 2. 交換位置// 升序: 如果后一個值小于前一個值,就交換位置// 降序: 如果后一個值大于前一個值,就交換位置// for(var i = 0; i < ary.length; i++) {// // ary[i] ary[i+1]// }</script>
操作字符串方式
- 分割字符串
split() // 以一個分割符,將一個字符串串分割成一個數組
- 課堂案例
1. https://www.test.com/login?uname=zs&&pwd=123; 獲取用戶名和密碼
獲取系統日期
- 獲取系統時間
var 日期變量 = new Date()
- 獲取日期其他部分
日期變量.getSeconds() //獲取秒 日期變量.getMinutes() //獲取分鐘 日期變量.getHours() //獲取小時 日期變量.getDay() //返回周幾 (0表示周日) 日期變量.getDate() //返回當前月的第幾天 日期變量.getMonth() //返回月份 (從0開始) 日期變量.getFullYear() //返回年份
- 課堂案例
1. 將當前系統時間以 yyyy-mm-dd HH:mm:ss 輸出到控制臺中。
// 獲取當前系統時間的,年月日,時分秒var date = new Date();var year = date.getFullYear();rvar month = date.getMonth() + 1;var month = month >= 10 ? month: '0' + month;var r = date.getDate();var r = r >= 10 ? r: '0' + r;var day = date.getDay(); //星期var hour = date.getHours();var hour = hour >= 10 ? hour: '0' + hour;var minutes = date.getMinutes();var minutes = minutes >= 10 ? minutes: '0' + minutes;var ss = date.getSeconds();var ss = ss >= 10 ? ss: '0' + ss;console.log(year);console.log(month);console.log(r);console.log(day);console.log(hour);console.log(minutes);console.log(ss);console.log(date);
與數學相關的操作
- 獲取隨機數
Math.random()
- 對數字取整
1.Math.floor(x) 2.Math.ceil(x)
- 課堂案例
1. 求 1 到 10之間的隨機整數【包括邊界值】2. 求 20 到 50 之間的隨機整數【包括邊界值】3. 求m到n之間的隨機整數(公式)Math.floor(Math.random()*(n-m+1)+m);備注:m 代表開始值n 代表結束的值
// var num = Math.random(); //隨機數// var a = 3.2415926;// a = Math.floor(a); //返回的結果是一個小于或等于當前數字的最近的一個整數(向下取整)// a = Math.ceil(a); //返回的結果是一個大于或等于當前數字的最近的一個整數(向上取整)// 備注: 當該值就是一個整數的時候,就算他本身// console.log(a);// 產生一個隨機整數:// 1.先獲取隨機數[0,1)// var num = Math.random();// num = Math.random() * 10;// num = Math.random() * 10 + 1;// num = Math.floor(Math.random() * 10 + 1);// console.log(num);//求20~50之間的數[包括邊境值]// [0,1)*30 [0,30)+ 20 [20,50)// [0,1)*31 [0,31)+ 20 [20,51)// num = Math.floor(Math.random() * 31 + 20);// num = Math.floor(Math.random() * (50 -20 + 1) + 20);// console.log(num);//總結規律:求你m~n的隨機數取值 最大值為n 最小值為m// num = Math.floor(Math.random() * ( n-m + 1) + m);// 1。隨機產生一個索引值// var xh = [1,23,4,86,123,123,152]// num = Math.floor(Math.random() * ( 6 - 0 + 1) + 0);// console.log(xh[num]);
傳智小娜案例
- 實現求和功能
- 實現獲取當前系統日期功能
- 實現小娜講笑話功能
函數function
-
為什么要學函數?
-
什么是函數
函數: 可以封裝一段特定功能代碼,然后通過函數名調用,實現對該段代碼重復使用
-
函數的作用
實現代碼的重復使用。 ? 對分散代碼整合(封裝) ? 重復使用
-
定義函數
-
function 方式定義函數
-
函數表達式方式定義函數
-
課堂練習
1. 將比較數字大小封裝到一個函數中 2. 寫一個函數,求1-100之間所有數的和 3. 通過函數方式實現:判斷一個數字是基數還是偶數 4. 通過函數的方式實現: 在頁面中打印一個10行直角三角形 5. 格式化日期的封裝 yyyy-mm-dd hh:mm:ss
-