1.正则相关函数
// 正则对象的相关方法
# test
# 功能:判断目标字符串是否满足正则对象
# 参数:test(目标字符串)
# 返回值:布尔值
// var str = "bbbbc";
// console.log(reg.test(str));
# exec
# 功能:返回值目标字符串满足正则对象的子串
# 参数:exec(目标字符串)
# 返回值:满足条件的子串,存储的数据放在长度为一的数组中
# 修饰符:g
# glabal全局,会记录每次运行的位置,下一次作为起始位置
// var reg = /\d+/g;
// var str = "a111b2222c333d4444";
// console.log(reg.exec(str)[0]); //111
// console.log(reg.exec(str)[0]); //2222
// console.log(reg.exec(str)[0]); //333
# search方法 返回与正则表达式查找内容匹配的第一个子字符串的位置
# 用法:str.search(reg)
# 修饰符:i
# 忽略大小写
// var str = "Hello Cai Xu Kun";
// var reg = /cai/i;
// console.log(str.search(reg));
# replace 批量替换内容
// var str = "wangtongjian de ge bi shi wangtongjian";
// str = str.replace(/wangtongjian/g,"caixukun");
// console.log(str);
# match:返回满足正则对象的子串(exec的强化版)
// var reg = /\d+/g;
// var str = "a111b2222c333d4444";
// console.log(str.match(reg));
2.let
let标识符;功能和var一样,都是用来定义变量的关键字
var具备变量声明提升
# 1.必须先定义后使用
// console.log(a);
// let a = 123;
# 2.不能定义重复变量
// var a = 123;
// var a = 456;
// let a = 123;
// let a = 456;
# 3.块级作用域:在块级作用域下->该变量不被丢失,也不能被外界使用
// let oLis = document.getElementsByTagName("li");
// for(let i=0; i<oLis.length; i++){
// oLis[i].onclick = function(){
// console.log(i);
// }
// }
# 4.暂时性死区:当内部变量与外部变量同名时,内部变量屏蔽外部变量
// let a = 123;
// {
// let a = 456;
// console.log(a);
// }
3.const
# const标识符;修饰只读变量的关键字
# 1.只读变量
// const a = 123;
// a = 666;
// console.log(a);
# 2.被const修饰的常量,必须初始化
// const a;
// a = 123;
# 3.块级作用域
# 4.暂时性死区
# 5.不能重复定义
# 6.必须先定义后使用
# 面试题?
# var,let,const的异同?
# 1.都是用来定义变量的关键字
# 2.var拥有声明提升
# 3.const修饰只读变量,且必须被初始化
# 4.let和const都具备
# a.块级作用域
# b.暂时性死区
# c.不能重复定义
# d.必须先定义后使用
const arr = [5,4,6,3,7,8];
arr[1] = 0;
console.log(arr[1]);
arr = [111];
# 注意事项:const修饰栈空间
4.this指向
# this:函数体内的内置对象->作用域为各种函数体
# 1.当this与事件体连用,代表触发该事件的元素本身
// document.onclick = function(){
// console.log(this);
// }
// var oInput = document.querySelector("input");
// oInput.onblur = function(){
// console.log(this.value);
// }
# 2.当this与普通函数(除了事件体和构造函数)连用,代表调用该函数的对象本身
// function fun(){
// console.log(this);
// }
// window.fun();
// let data = {
// "name":"李玟",
// "f":function(){
// console.log(this);
// }
// }
// data.f();
# 3.当this与箭头函数连用时,代表其父元素的前缀
# 4.与构造方法连用,代表new出来的对象
5.bind
# 需求:改变this的指向
# bind改变this的指向
# bind是函数对象的函数
# 函数对象.bind(被修改的this指向)
// let fun = function(){
// }
// fun == function(){}
// fun.bind() == function(){}.bind();
6.JSON.parse_JSON.stringify
# json对象和字符串的相互转换
let data = {
"name":"ikun",
"age":23
}
# 注意事项:无论是对象还是字符串,key都必须添加双引号
# 对象转json字符串
let str = JSON.stringify(data);
console.log(typeof str);
# json字符串转对象
let str1 = `{
"name":"ikun",
"age":23
}`
console.log(JSON.parse(str1));
//------------------------------------------
# ES6模板字符串添加变量
# 1.支持换行
# 2.ES6模板字符串添加变量:${变量}
# 字符串 "" '' ``
var oUl = document.querySelector("ul");
var test = "hahah"
oUl.innerHTML = `
<li class='heihei'>
<span id='${test}'>iKun</span>
</li>
<li>11</li>
<li>11</li>
<li>11</li>
`
for(var i=0; i<10; i++){
oUl.innerHTML += `<li>${i}</li>`;
}
7.for...in和for...of
# for...in:遍历容器的下标,通常只用于遍历json
# for...of:遍历容器的内容(不能遍历json),主要遍历没有下表的容器(set和map)
var arr = [6,4,7,3,8];
for(let item of arr){
console.log(item);
}
8.ES6新增查询字符串API
// 判断字符串是否包含在另一个字符串中
// 在ES5 中使用的是 indexOf() 方法,在ES6中可以使用includes()、startsWith()、endsWith()三个方法。
// str.includes(参数): 返回布尔值,表示是否找到了参数字符串。
// str.startsWith(参数):返回布尔值,参数是否在源字符串的头部。
// str.endsWith(参数): 返回布尔值,参数是否在源字符串的尾部。
// var str = "cai xun kun yingyingying.js";
// console.log(str.includes("c111ai"));
// console.log(str.startsWith("cai123"));
// console.log(str.endsWith("123.js"));
//-----------------------------
// 中文生僻字
let str = "𡱖"; //21c56
console.log(str.charAt(0));
console.log("\u{21c56}");
9.箭头函数
# 箭头函数是匿名函数的另一种写法
# this的第三用法:当this与箭头函数连用时,代表其父元素的前缀
// document.onclick = ()=>{
// console.log(this);
// }
// function fun(){
// if(){
// this
// }
// }
// xxx.fun();
// let data = {
// "name":"李玟",
// "f":()=>{
// console.log(this);
// }
// }
// data.f();
//-------------------------
# 1.当箭头函数只有一个参数时,可以省略参数的小括号
// let fun = a=>{
// return a + 10;
// }
// console.log(fun(56));
# 2.当箭头函数只有一条语句,可以省略花括号
// let fun = a=>console.log(a+10);
// fun(5);
# 3.当箭头函数只有一条语句,自带return
let fun = a=>a+10;
// function(a){
// return a + 10;
// }
console.log(fun(8));
标签: