1、延时器
格式: setTimeout(函数,要传的毫秒数)
setTimeout(()=>{ //使用箭头函数
console.log(1);
},2000)
延时器的作用就是延迟输出,2000指的是毫秒数,意味着console.log(1)会延迟两秒进行输出
let a = 5 // 定义一个变量 赋值是5
console.log(a); // 输出这个变量
setTimeout(() => { // 延时器
a=10 //修改定义的变量a
console.log(a); // 5s 输出这个变量
}, 5000);
刚开始变量a的值为5,5秒后修改成10
5秒后:
2、定时器
格式: setInterval(()=>{ })
let num = 1 // 定义一个变量num 赋值为 1
setInterval(()=>{ // 定时器
num += 1 // 每过1s 执行一次 函数的内容
console.log(num);
},1000)
这段代码指的是每过去一秒,num变量会加1,一直输出
3、延时器和定时器的区别
延时器是等毫秒数倒计时结束后 执行这个函数 ,但是永远只执行一次!!而定时器是每过去设定毫秒就会执行函数
4、字符串的截取
使用的是slice()函数,它是一个内置函数,不需要重新定义,可以直接使用
案例1:
let str = '涛哥爱学习' //该字符串的索引为0 1 2 3 4
let name = str.slice(0,2) //0指的就是当前项,2指的是前一项
console.log(name);
如果想要截取出str字符串中的 '涛哥' ,那么就可以使用slice()函数,函数中的第一个参数0指的是字符串的索引值(包括当前项),第二个参数2指的是想要截取出的某个字的索引的前一项(不包括当前项)
结果为:
注: 如果只传第一个参数 默认截取从索引(包括当前索引)截取之后的所有字符串
案例2:
let text = '哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦强哥'
console.log(text.slice(-2)); // 如果传入负数那就从末尾开始截取
如果传入的是负数,那么就从字符串末尾开始截取
5、数组的截取
案例1:
let arr = [1,2,3,4,5]
let arr2 = arr.slice(0,2); // slice 不会改变原数组
let arr3 = arr.slice(2)
console.log('数组arr2' + arr2);
console.log('数组arr3' + arr3); //产生了新的数组
console.log('原数组' + arr); //并未改变原数组的长度
数组的截取跟字符串的截取是一样的,,都是使用了slice()函数,slice()中的参数的含义也是一样的,第一个参数是索引(包括当前索引), 第二个参数是索引之前的(不包括当前索引)
如果只传第一个参数 默认截取从索引(包括当前索引)截取之后的所有
输出结果为:
案例2:
let arr = [1,2,3,4,5];
arr.splice(1,2); //splice 第一个参数是索引,第二个参数是删除几个
console.log(arr);
使用splice()函数,与slice()不同的是,splice 第一个参数为索引,第二个参数为删除几个
输出结果为:
删除了数组中的2,3,改变了原数组
splice()函数也可以在指定位置添加元素
// splice 也可以在指定位置上添加
let arr2 = [1,2,4,5]
arr2.splice(2,0,3) //2指的是索引,0指的是至少添加一个新的元素,3要添加的元素
console.log(arr2);
splice()中的2指的是索引,0指的是至少添加一个新的元素,3要添加的元素
splice()函数还可以删除元素
let arr3 = [1,2,3,4,5]
let res = arr3.splice(1,2) //1代表索引,从index=1处开始 2代表要删除元素的个数
console.log(res,'最后的删除');
1代表索引,从index=1处开始 2代表要删除元素的个数
最后输出的是所删除的元素
6、使用new创建对象
格式: let obj = new Object();
如果想给对象中添加元素,则使用obj.属性名 = 属性值 进行添加
7、使用构造函数创建对象
格式:
function Person(name,age,hobby) {
this.name = name
this.age = age
this.hobby = hobby
}
为了区分构造函数和普通函数的区别,构造函数的首字母大写
构造函数的好处是可以实现逻辑复用
我们可以调用函数,进行创建对象
let taoge = new Person('涛哥',22,'爱学习')
let qiangge = new Person('强哥',22,'爱学习')
console.log(taoge,qiangge);
输出taoge,qiangge
8、时间补0
要实现上图显示的时间,必须进行时间补0
var date = new Date() //new一个时间函数
var y = date.getFullYear() //年
var m = zero(date.getMonth() + 1) //月
var d = zero(date.getDate()) //日
var time = y + '-' + m + '-' + d //字符串的拼接
console.log(time);
function zero(num) {
return num<10? '0'+num : num
}
补0,得创建一个zero()函数,如果输出的月份小于10,则需要往月份前面补0
9、this指针
this指针默认指向的是全局window,函数中的this,谁调用它,它就指向谁。箭头函数 如果是在对象 ,他指向的是上层作用域 的this
10、字符串与数组的相互转换
(1)数组转字符串
数组转成字符串,使用 arr.join('拼接符'),如果不想有拼接符传空字符串
let arr = [1,2,3,4,5]
console.log(arr.join('-'));
输出结果:
(2)字符串转数组
let str1 = '12345'
let str = '12-345'
console.log(str.split('-')); // [12,345]
console.log(str1.split('')); // [1,2,3,4,5]
输出结果:
11、数组过滤
(1)案例: 把 > 50 的数过滤出来 ,还是返回一个数组
let arr = [1,2,3,4,6,99,5,4,38,77]
let arr1 = [] //新数组arr2
arr.forEach(item=>{ //对数组的每个元素执行一次给定的函数。
if(item>50){
arr1.push(item) //满足条件的元素放到新的数组中
}
})
console.log(arr1);
输出结果:
(2)使用过滤器filter()
过滤器 就是把满足条件的放到一个 新数组里面
let arr2 = arr.filter((item,index)=>{ //item代表每一项 index代表索引
return item > 50
})
简写形式:
let arr2 = arr.filter(item=> item > 50);