JS.DAY10.笔记

152 阅读4分钟

一.字符串

- 创建方式

  1. 方法一 var str = "hello" //数据类型为String
  2. 方法二 var str = new String("hello")//数据类型为object

- 字符串的长度和角标

  1. 字符串和数组一样,有角标和长度

        // 字符串的角标和长度
        for(var i = 0;i < str.length;i++){
            document.write(str[i]);//hello
        }
  1. 字符串的角标和长度只能读取,不能改写。通过字符串的拼接在尾部增加值
        var str = "hello"
        str += "w"
        console.log(str);//hellow

- 字符串的方法

  1. includes() 判断字符串中是否存在某个值
  2. indexOf() 判断字符串中是否存在某个值,存在就返回第一次出现的角标,不存在就返回-1
  3. lastIndexOf() 从后往前遍历字符串,判断字符串中是否存在某个值,存在就返回角标
  4. concat() 字符串拼接
  5. slice() 字符串的截取
  6. charAt() 访问角标对应的值
  7. charCodeAt() 访问角标对应的值的ASCII值
  8. String.fromCharCode() 把ASCII值转成对应的字符,参数是一个ASCII值
  9. substring(i , i) 向后截取 i为角标
  10. substr(i , 数量) 向后截取几个
  11. trim() 去掉首尾的空格
  12. split() 把字符串切割成数组
  13. replace(old , new) 替换(默认只会替换第一个) 参数 old 替换前的字符串 new替换后的字符串
  14. toUpperCase() 小写转大写
  15. toLowerCase() 大写转小写 页面验证中实现不区分大小写,可以都转为大写或者小写再做比较

二、日期对象

- 日期对象基础

  1. 日期对象是用来记录时间
  2. 在js里时间是从1970.1.1 0:0:0 开始计时

- 日期对象的创建

  1. 无参创建
        var date = new Date();
        // 得到的是电脑当前的时间
        console.log(date);//Fri Dec 17 2021 19:39:16 GMT+0800 (中国标准时间)
  1. 数字单参数创建
        // 数字表示毫秒数,正值后推,负值前推 
        var date2 = new Date(0);
        console.log(date2);//hu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
  1. 数字多参数创建
        //多参数也可以少写几个 月份是从0开始,时间可以自动计算
        var date3 = new Date(2020,0,1,1,1,1);
        console.log(date3);//Wed Jan 01 2020 01:01:01 GMT+0800 (中国标准时间)
  1. 字符串单参数创建
        //字符串单参数创建 时间是正常的,但是不能自动计算
        var date4 = new Date("2021-1-1 1:1:1")
        console.log(date4);//Fri Jan 01 2021 01:01:01 GMT+0800 (中国标准时间)

- 日期对象的获取

  1. 封装一个获取日期的函数
        function formatDate(){
            // 获取时间
            var date = new Date()

            // 获取年
            var year = date.getFullYear();
            // document.write(year)
            // 获取月
            var month = date.getMonth()
            // document.write(month)
            //获取日
            var day = date.getDate()
            // document.write(day)
            // 获取星期
            var week = date.getDay();
            // console.log(week)

            //获取时
            var hour = date.getHours()
            // document.write(hour);
            // 分
            var minute = date.getMinutes()
            // document.write(minute);
            // 获取秒
            var second = date.getSeconds()
            // document.write(second);

            var arr = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]
            console.log(arr[week])

            return year + "-" + month + "-" + day + "-" + hour + ":" + minute + ":" + second + " " + arr[week] 

        }

        x = formatDate()
        document.write(x)//2021-11-17-19:46:19 星期五

- 设置日期对象

        var date = new Date();
        //设置年
        date.setFullYear(2121);
        //设置月
        date.setMonth(9);
        // 设置日期
        date.setDate(26);
        // 设置小时
        date.setHours(10);
        // 设置分
        date.setMinutes(10);
        // 设置秒
        date.setSeconds(10);
        // 星期不能设置

        console.log(date);//Sun Oct 26 2121 10:10:10 GMT+0800 (中国标准时间)

- 获取上个月的天数和下个月的天数

        var date = new Date() ;
        // 本月的第0天也就是上个月的最后一天.把日期推到第0天,也就得到上个月的最后一天
        date.setDate(0) ;
        console.log(date);//Tue Nov 30 2021 19:51:09 GMT+0800 (中国标准时间)
        
        // 把日期推到下个月
        var date2 = new Date()
        date2.setDate(33);
        date2.setDate(0);
        console.log(date2)//Fri Dec 31 2021 19:54:49 GMT+0800 (中国标准时间)

三、定时器

- 定时器基础

  1. 定时器相当于一个重复的闹钟。每隔一段时间后就做一件事。
  2. 方法 setInterval(fn,time)
        var t = setInterval(function(){
            //每隔2秒打印一次999
            console.log(999);
        },2000)
  1. 用变量存储定时器的时候,变量存储的是当前页面中的第几个定时器
  2. 定时器是异步的!(等所有的同步执行结束在执行)

- 同步和异步

  1. 异步:一边敲代码,一边听歌(同时干很多事情)
  2. 同步:先烧水,在泡泡面(先干...再干...再干...排队)
  3. 单线程:一次干一件事
  4. 多线程:一次干很多事情
  5. js是一种单线程的语言 因为js是进行标签操作的(无法一边修改标签,一边删除标签)
  6. 所以js代码以同步为主(从上往下一个一个执行代码) js代码中也存在一些异步程序,比如事件处理函数,定时器
  7. js代码的执行顺序 1 先执行同步代码,遇到异步,就放在任务队列中 2 所有的同步执行完毕以后,如果任务队列中有已经到时间了,可以执行了,(这个任务就可以在主线程上执行)