### 正则中的相关方法及属性
1:test
功能:判断字符串是否满足正则对象的格式,返回布尔值
参数:test(目标字符串)
返回值:布尔值
2:exec
功能:返回满足正则对象的字串,存放至长度为一的数组中
参数:exec(目标字符串)
返回值:符合正则的字串,储存在长度为1的数组
修饰符
g: 全局
var reg = /\d+/g;
--------------------------------------------------
正则对象作为字符串函数的参数
search
功能:查找字串
参数:search(正则对象)
返回值:下标
i:忽略大小写
replace
var str = "sda dsfs g wew"
str = str.replace("sda","a")
console.log(str)
match
功能:返回满足正则对象的字串,存放至数组中
参数:match(目标字符串);
返回值:符合正则的字串,存放在数组中
var reg = /\d+/g;
var str = "123a456b789";
console.log(str.match(reg))
### let
let:定义变量的关键字
特点:1:先定义后使用
2:变量不能重复定义
3:块级作用域,变量使用范围只能是该作用域,且不会在该作用域消失
4:暂时性死区,当内部作用域与外部作用域变量同名时,内部变量屏蔽外部变量
### const
只读变量:是一个变量,但是只能读不能写
1:被const修饰的变量就是只读变量
2:被const修饰的变量必须初始化 let PI = 3.1415926;
3:必须先定义后使用
4:不能重复定义
5:块级作用域
6:暂时性死区
被const修饰的变量名大写
var,let,const的异同?
1:都是用来声明变量的关键字
2:var 具有声明提升
3:let和const必须先定义后使用 ,不能重复定义,块级作用域,暂时性死区
4:const修饰的变量是只读变量,必须初始化,习惯性变量名大写
### .json对象和字符串的相互转化
前提:必须是严格的JSON对象
字符串转json
let str = '{"name":"fanfan","age":18}';
let json = JSON.parse(str)
json转字符串
let json = {"name":"fanfan","age":18};
let str = JSON.stringify(json);
### this
this:函数体内的内置对象,作用域是函数的{}
1:与事件体连用,触发该事件的元素
2:与普通函数连用(除了事件体和构造方法),调用该函数的对象
### bind
bind:函数对象的函数
功能:改变函数的this指向
### .for..in...和for...of
1:for...in... 遍历下标,常用于遍历json
2:for...of... 遍历元素内容
for(let item of 容器){
循环体
}
### 字符串扩展方法
在ES5 中使用的是 indexOf() 方法,在ES6中可以使用includes()、startsWith()
endsWith()三个方法。
str.includes(参数): 返回布尔值,表示是否找到了参数字符串。
str.startsWith(参数):返回布尔值,参数是否在源字符串的头部。
str.endsWith(参数): 返回布尔值,参数是否在源字符串的尾部。
### 箭头函数
箭头函数:匿名函数的另一种写法
特点:
1.如果一个函数只有一个参数,则可以省略小括号
let fun = (a)=>{
console.log(a+5);
}
let fun = a=>{
console.log(a+5);
}
fun(10);
2.如果函数体只有一条语句,则可以省略{}
let fun = a=>{
console.log(a+5);
}
let fun = a=>console.log(a+5);
fun(5);
3.如果函数体只有一条语句,自带return
let fun = a=>{
return a + 5;
}
let fun = a=>a + 5;
console.log(fun(8));
### 解构赋值
1.解析结构进行赋值
2.交换两个变量的值
### set
set:没有下标,自动去重
set集合的方法
1.add(参数) 向集合中添加一个元素
2.delete(值) 删除集合中某个数
3.has(值) 判断集合中是否含有某个值
4.clear() 清空集合
因为没有下标,所以用for...of for(let item of set)
数组去重 先通过let set = new Set(arr);然后将set转换为数组arr = Array.from(set) Array.from()方法 然后输出arr
let arr = [1,2,3,4,1,2,3,5,6,7];
let set = new Set(arr);
将set转换为数组
arr = Array.from(set);
console.log(arr);
五星好评
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
div {
width: 135px;
height: 27px;
display: flex;
}
p {
display: inline-block;
width: 27px;
height: 27px;
background: url(img/star.gif) 0px 0px;
}
</style>
</head>
<body>
<div>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</div>
</body>
</html>
<script>
// for (let i = 0; i < ops.length; i++) {
// ops[i].index =i;
// console.log(i)
// ops[i].onmouseover = function () {
// ops[i].previousElementSibling.style.backgroundPositionY = "27px";
// ops[i].onclick = function () {
// ops[i].previousElementSibling.style.backgroundPositionY = "27px";
// }
// }
// ops[i].onmouseleave = function () {
// ops[i].style.backgroundPositionY = "0px";
// }
// }
let ops = document.getElementsByTagName("p")
// 封装一个函数
function olisclc(){
// 第一次循环
for(let i = 0;i<ops.length;i++){
// 鼠标移动的事件
ops[i].onmousemove = function(){
// 鼠标所在位置前面的全亮 因为i保存的是当前鼠标所在的星星 所以再循环一遍以遍历鼠标所在星星前面的星星
for(let j = 0;i<ops.length;j++){
// 如果再次循环的j<=i 让所有的j变色
if(j<=i){
ops[j].style.backgroundPositionY = "27px"
}else{
ops[j].style.backgroundPositionY = "0px"
}
}
//
}
ops[i].onclick = function(){
// 循环遍历 当点击的时候取消所有的move事件和click事件
for(let k =0;k<ops.length;k++){
ops[k].onmousemove = null;
ops[k].onclick = null;
}
}
}
}
olisclc()
// var,let,const的异同?
/*
1:都是用来声明变量的关键字
2:var 具有声明提升
3:let和const必须先定义后使用 ,不能重复定义,块级作用域,暂时性死区
4:const修饰的变量是只读变量,必须初始化,习惯性变量名大写
*/
</script>