JS--上课第三天!

一.一元运算符

优点;代码简洁 ,好看

缺点:可读性差

let num =1
 num + +1  //等同于num = num+1  //一元运算符:只用了一个运算
 num = num +1

//num -=1
console.log(num);

二.三元运算符

let num = 1
let num2 = 88
//for循环  
if (num2>num) {
     console.log('今天的天气真好');
} else{
    console.log('1233')
}
//三元运算符
num2 >num ?console.log('今天的天气真好'): console.log('1233')

三.定时器

  概念:实现定时调用的韩式,可按照指定的周期(以毫秒计算)来调用函数或计算表达式

   它会不停的调用函数,知道cleaeInterval被调用或窗口被关闭

   格式:tInterval(函数,执行的毫秒数) 每倒计时执行这个毫秒数  再去执行函数的

let num=1  //定义一个变量 赋值为1
   setInterval() => {  //定时器
        num +=1     //每过1s 执行1次 函数的内容
     console.log(num);
},1000) //毫秒数

四.延时器

概念:setTimeout用来指定某个函数或者某段代码,在多少秒之后执行,它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。

  console.log('1');

          setTimeout('console.log("今天天气不错哈")',6000)

          console.log('2')

注意:输出结果会先输出1和2,等5000毫秒后,就会出出现‘今天天气不错’

 格式:setTimeout (函数,执行的毫秒数)  等毫秒数倒计时结束后 执行这个函数,永远只执行一次

setTimeout(()=> {
     console,log(1);
},2000)     //延迟2毫秒,就会出现1


let a=5  //定义一个变量赋值5
  console.log(a);  //输出这个变量
  setTimeout( () =>{
     a=10      //修改这个变量a
   console.log(a) //2s数车这个变量
},2000);




//简洁的写法
  functiom fn (){
      console.log('我要执行了')
  }
  setTimeout (fn,20000);

五.字符串截取的方法

     slice:截取的时候,开始下标和结束下标都可以用负数表示

   格式  :字符串.slice(开始下标,结束下标)

   注意:结束下标不包含本身。开始和结束下标如果截取的一样,截取到的是空字符。

          如果第二个参数省略了,默认截取到字符串的末尾

          结束标签   -1:末尾

                           -2:倒数第二个

let str = '今天的天气不好'
 let name = str.silce(0,2)   //0:从索引0开始  2:从索引第二个开始,不包活 
                                  第二个 
 let toady =str.silce(3,7)  
 console.log(name,toady); 

如果只传第一个参数 默认截取从索引(包括当前索引)截取之后的所有字符串

如果传两个 第二参数(索引之前的/不包括当前索引)

第一个参数索引(包括当前的索引)  第二个参数(索引之前的/不包括当前索引)

//截取最后两位
   let text = '啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊'
//如果传入负数那就从负数开始截取
   console.log(text.silce(-2); 

六.数组的截取方式

  格式:  数组.slice(开始的索引,结束的索引)      注意:包前不包后

          不改变原始数组

    返回值: 以数组的形式返回截取的内容

let arr = [1,2,3,4,5]
let arr2 = arr.slice(0,2)  //0,是索引  3是数组的第三个
  console.log(arr2)

七.数组的splice

格式:数组.splice(开始的索引, 截取多少个)

直接改变原始数组

返回值: 以数组的形式返回截取出来的内容 (不管截取多少个内容,都是以数组的形式返回)

改变原数组就是 对 数组进行操作后 之前的数组也会发生变化

   不改变原数组就是不会对 原数组进行改变

let arr[1,2,3,4,5]
arr.splice(1,2)  //第一个参数是索引 第二参数是删除几个
console.log(arr);



//splice也可以在指定的位置上添加
  let arr2 =[1,2,4,5]
   arr.splice(2,0,3)
   console.log(arr2);


  // 补充 删除方法 的返回值就是删除的元素
        let arr3 = [1,2,3,4,5]
        let res =  arr3.splice(1,2)
        console.log(res,'最后的删除');

八.用new创建对象

function Person (name,age,hobby){
       this.name =name
       this.age = age
       this.hobby = hobby
}
let a1 = new Person ('zz',22,'看书')
   console.log(a1);

九.构造函数

   也是函数, 实现复用

    好处:逻辑复用

为了区分构造函数和普通函数的区别  构造函数的首字母大写

 function Person(name,age,hobby) {

            this.name = name

            this.age = age

            this.hobby = hobby

        }

        let zz = new Person('氷氷',22,'爱学习')

         console.log(zz);

十.时间对象

  let date = new Date()
        let year = date.getFullYear()
        let mounth = date.getMonth()+1
        let day = date.getDate()
        console.log(year,mounth,day); 
        console.dir(date); // 以对象的形式输出

时间练习:

  var date = new Date()

        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

        }

十一.this

this:指向意思 ,默认指向window

     函数里面 默认谁指向谁

总结:默认情况下 函数的指向 指向this  一般情况下 谁调用这个函数 this就指向谁

         箭头函数 如果是在对象 他指向上层作用域 的this

function fn() {
      console.log (this);  //默认的
}
 

//a:1 fn:f  函数谁用它就只指向谁
let obj = {
    a:1
 fn:function () {
      console.log (this) ; 
 }
 obj.fn()     //指向obj这个对象  

十一:数组转字符串

格式:数组.join(以什么字符链接)   

参数可以不写,不写是以 , 链接 不改变原始数组

返回值: 就是用指定字符链接好的字符串(💢注:是字符串)

let arr = [1,2,3,4]

   console.log(arr.join(' '));

//如果不想转拼接符

十二.字符串转数组

  let str = '12345'
   let str = '123-45'

   console.log(str.split(' ') );
   console.log(str.split('-') );

//默认不传,每个分割 , 如果传了,就从传入的开始分割

十三.数组的过滤

    过滤器 就是把满足条件的放到一个 新数组里面

  

 let arr = [1,2,3,4,6,99,5,4,38,77]

        let arr1 = []

         arr.forEach(item=>{

            if(item>50){

               arr1.push(item)  

             }

         })

         console.log(arr1);

        let arr2 = arr.filter((item,index)=>{

             return item > 50

         })

        // 简写

         let arr2 = arr.filter(item=> item > 50)

         console.log(arr2);

转载:数组的常用方法总结(一)_@码上行动的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值