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
-