1、Math对象
Math 对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值, 取整、最大值等)可以使用 Math 中的成员。
属性、方法名 | 功能 |
Math.PI | 圆周率 |
Math.max()/Math.min() | 求最大和最小值 |
Math.foor() | 向下取整 |
Math.ceil() | 向上取整 |
Math.round() | 四舍五入 就近取整 注意 -3.5 结果是 -3 |
Math.abs() | 绝对值 |
Math.random() | 获取范围在[0,1)内的随机值 |
注意:上面的方法使用时必须带括号 |
获取指定范围内的随机整数:
// Math.floor(Math.random() 可能值的总数 + 第一个可能的值) 1~10
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// 猜数字游戏
// 随机产生一个1-10之间的任意整数
var random=Math.floor(Math.random()*10+1)
// 输入一个值
var num=parseInt(prompt("请输入一个1-10之间的整数:"))
for (var i = 0; i < 5; i++) {
if(num>random){
alert("你输入的数字太大了,请重新输入")
num=parseInt(prompt("请输入一个1-10之间的整数:"))
}else if(num<random){
alert("你输入的数字太小了,请重新输入")
num=parseInt(prompt("请输入一个1-10之间的整数:"))
}else{
alert("恭喜你你猜对了")
break;
}
}
2、Data/日期对象
Date 对象和 Math 对象不一样,Date是一个构造函数,所以使用时需要实例化后才能使用其中具 体方法和属性。Date 实例用来处理日期和时间
使用Date实例化日期对象
获取当前时间必须实例化:
var now = new Date();
获取指定时间的日期对象:
var future = new Date('2022/08/02');
注意:如果创建实例时并未传入参数,则得到的日期对象是当前时间对应的日期对象
使用Date实例的方法和属性
方法名 | 说明 | 代码 |
getFullYear() | 获取当年 | dobj.getFullYear() |
getMonth() | 获取当月 (0-11) | dobj.getMonth()+1 |
getDate() | 获取当天日期 | dobj.getDate() |
getDay() | 获取星期几(周日0到周六6) | dobj.getDay() |
getHours() | 获取当前小时 | dobj.getHours() |
getMinutes() | 获取当前分钟 | dobj.getMinutes() |
getSeconds() | 获取当前秒钟 | dobj-getSeconds() |
var time=now-fbtime console.log("时间差毫秒",time) 毫秒/1000=秒 |
获取总毫秒:
// 实例化Date对象 var now = new Date();
// 1. 用于获取对象的原始值
console.log(date.valueOf())
console.log(date.getTime()) //
2. 简单写可以这么做
var now = + new Date();
// 3. HTML5中提供的方法,有兼容性问题
var now = Date.now();
3、String/字符串对象
基本包装类型
为了方便操作基本数据类型,JavaScript 还提供了三个特殊的引用类型:String、Number和 Boolean。
基本包装类型就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。
方法 | 描述 |
substring() | 从开始位置截取,到指定位置结束,但取不到结束位置的字符 |
substr() | 从开始位置截取,截取指定长度的字符串 |
concat() | 返回字符串值,表示两个或多个字符串的拼接 |
slice(start,end) | 返回start到end-1之间的字符串,索引从0开始 |
indexOf() | 返回的是一个字符的第一个索引值,还可以用于判断某个字符是否存在于某字符串中 |
replace(a,b) | 字符串b替换了a |
charAt() | 返回指定索引的位置的字符 |
match() | 返回正则表达式模式对字符串 |
// 1.将str="Hello World"中的"l"全部替换成"*"
var str="Hello World"
// for...
for(var i=0;i<str.length;i++){
str=str.replace("l","*")
}
console.log(str)
// 2.查找一个字符串中某个字符所有出现的位置
var str="Hello World"
// 简单的方法
for(var i=0;i<str.length;i++){
// console.log(str[i])
if(str[i]=="l"){
console.log(i)
}
}
// for(var i in str){
// // console.log(i,str[i])
// }
4、 Array/数组对象
JS 中创建数组有两种方式:
- 利用 new 创建数组
var 数组名 = new Array() ; //注意 Array () ,A 要大写
var arr = new Array(); // 创建一个新的空数组
var arr_1= new Array('刘','张','侯')
console.log(arr_1.length)
// 获取数组中的元素:数组名[下标]
console.log(arr_1[1])
// 数组的下标是从0开始,最大值可以取到数组的长度减一
- 利用数组字面量创建数组
- 数组的字面量是方括号 [ ]
- 声明数组并赋值称为数组的初始化
//1. 使用数组字面量方式创建空的数组
var 数组名 = [];
//2. 使用数组字面量方式创建带初始值的数组
var 数组名 = ['刘','侯','张']
var arr_3=[12,45,36,59]
console.log(arr_3.length)
数组名.length:数组的长度
var arr_3=[12,45,36,59]
// 打印出数组中的所有元素
// 第一种
for(var i=0;i<arr_3.length;i++){
console.log(arr_3[i])
}// 第二种方式:for...in...
for(var i in arr_3){
console.log(i,arr_3[i])
}
案例:
// 请输出学生成绩中及格的成绩>59
var scores=[90,56,78,23,9,59,65]
for(var i=0;i<scores.length;i++){
if(scores[i]>59){
console.log(i,scores[i])
}
}
// 打印出一个数组中的所有奇数之和
var sum=0
for(var i=0;i<scores.length;i++){
// console.log(i,scores[i])
if (scores[i]%2!=0) {
console.log(i,scores[i])
sum += scores[i]
}
}
console.log(sum)
数组中常用的一些函数
方法 | 描述 |
push() | 向数组的末尾添加一个元素 |
unshift() | 向数组的前面添加一个元素 |
pop() | 删除数组中的最后一个元素并返回 |
sort() | 进行升序,先将数组中的元素转换成字符串之后再进行升序 |
数组名.reverse() | 将字符串类型的数组进行降序排列:先试用sort(),然后再使用reverse()进行倒序 |
join( "," ) | 将一个数组中的所有元素拼接成一个字符串,用逗号隔开 |
splice() | 从指定位置删除指定长度的元素 |
slice() | 复制从指定位置到结束位置的元素 |
indexOf() | 获取指定元素的索引 |
冒泡排序
是一种简单并且基本的排序算法,应聘中会遇到类似的考试题
原理:重复的对要排序的数进行比较,一次比较两个数。如果第一个数比第二个数大,则交换顺 序,把第二个小的数放在前面,不断比较,直到形成一串由小到大排列的数字为止。
var arr_10=[30,20,10,50,40]
// 比较了几轮
for(var i=0;i<arr_10.length-1;i++){
for(var j=0;j<arr_10.length-i-1;j++){
//
if(arr_10[j]>arr_10[j+1]){
var temp=arr_10[j]
arr_10[j]= arr_10[j+1]
arr_10[j+1]=temp
}
}
}
console.log(arr_10)