一.字符串
- 创建方式
- 方法一
var str = "hello" //数据类型为String
- 方法二
var str = new String("hello")//数据类型为object
- 字符串的长度和角标
- 字符串和数组一样,有角标和长度
for(var i = 0;i < str.length;i++){
document.write(str[i]);
}
- 字符串的角标和长度只能读取,不能改写。通过字符串的拼接在尾部增加值
var str = "hello"
str += "w"
console.log(str);
- 字符串的方法
- includes() 判断字符串中是否存在某个值
- indexOf() 判断字符串中是否存在某个值,存在就返回第一次出现的角标,不存在就返回-1
- lastIndexOf() 从后往前遍历字符串,判断字符串中是否存在某个值,存在就返回角标
- concat() 字符串拼接
- slice() 字符串的截取
- charAt() 访问角标对应的值
- charCodeAt() 访问角标对应的值的ASCII值
- String.fromCharCode() 把ASCII值转成对应的字符,参数是一个ASCII值
- substring(i , i) 向后截取 i为角标
- substr(i , 数量) 向后截取几个
- trim() 去掉首尾的空格
- split() 把字符串切割成数组
- replace(old , new) 替换(默认只会替换第一个) 参数 old 替换前的字符串 new替换后的字符串
- toUpperCase() 小写转大写
- toLowerCase() 大写转小写 页面验证中实现不区分大小写,可以都转为大写或者小写再做比较
二、日期对象
- 日期对象基础
- 日期对象是用来记录时间
- 在js里时间是从1970.1.1 0:0:0 开始计时
- 日期对象的创建
- 无参创建
var date = new Date();
console.log(date);
- 数字单参数创建
var date2 = new Date(0);
console.log(date2);
- 数字多参数创建
var date3 = new Date(2020,0,1,1,1,1);
console.log(date3);
- 字符串单参数创建
var date4 = new Date("2021-1-1 1:1:1")
console.log(date4);
- 日期对象的获取
- 封装一个获取日期的函数
function formatDate(){
var date = new Date()
var year = date.getFullYear();
var month = date.getMonth()
var day = date.getDate()
var week = date.getDay();
var hour = date.getHours()
var minute = date.getMinutes()
var second = date.getSeconds()
var arr = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]
console.log(arr[week])
return year + "-" + month + "-" + day + "-" + hour + ":" + minute + ":" + second + " " + arr[week]
}
x = formatDate()
document.write(x)
- 设置日期对象
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);
- 获取上个月的天数和下个月的天数
var date = new Date() ;
date.setDate(0) ;
console.log(date);
var date2 = new Date()
date2.setDate(33);
date2.setDate(0);
console.log(date2)
三、定时器
- 定时器基础
- 定时器相当于一个重复的闹钟。每隔一段时间后就做一件事。
- 方法 setInterval(fn,time)
var t = setInterval(function(){
console.log(999);
},2000)
- 用变量存储定时器的时候,变量存储的是当前页面中的第几个定时器
- 定时器是异步的!(等所有的同步执行结束在执行)
- 同步和异步
- 异步:一边敲代码,一边听歌(同时干很多事情)
- 同步:先烧水,在泡泡面(先干...再干...再干...排队)
- 单线程:一次干一件事
- 多线程:一次干很多事情
- js是一种单线程的语言 因为js是进行标签操作的(无法一边修改标签,一边删除标签)
- 所以js代码以同步为主(从上往下一个一个执行代码) js代码中也存在一些异步程序,比如事件处理函数,定时器
- js代码的执行顺序 1 先执行同步代码,遇到异步,就放在任务队列中 2 所有的同步执行完毕以后,如果任务队列中有已经到时间了,可以执行了,(这个任务就可以在主线程上执行)