<!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>表单事件</title></head><body><style>html {font-size: 100px;}* {padding: 0;margin: 0;border: none;box-sizing: border-box;}body {font-size: 16px;background-color: rgb(51, 169, 204);}#login {width: 3.5rem;margin: 2rem auto;padding: 0.15rem 0.25rem;background-color: rgb(128, 206, 227);display: grid;grid-template-columns: 0.6rem 1fr;gap: 0.15rem 0;}h3 {margin-bottom: 0.2rem;text-align: center;grid-area: auto / span 2;}button {padding: 0.05rem;color: white;background-color: rgb(62, 141, 186);margin-bottom: 0.2rem;grid-area: auto / 2 / auto;}button:hover {cursor: pointer;background-color: rgb(38, 105, 138);}</style><form id="login"><h3>用户登录</h3><label for="email">邮箱:</label><input type="email" name="email" id="email" onblur="checkEmail(this)" /><label for="pass">密码:</label><input type="password" name="pass" id="pass" onblur="checkPass()" /><button onclick="login()">登录</button></form><script>let checkEmailState = false;let checkPassState = false;// 邮箱输入框失去焦点时检查输入function checkEmail(ev) {// 阻止冒泡event.stopPropagation();let email = ev.form.email.value;if (email.length === 0) {alert("邮箱名不能为空!");checkEmailState = false;} else {checkEmailState = true;}}// 密码失去焦点时检查输入function checkPass() {event.stopPropagation();let pass = event.target;if (pass.value.length === 0) {alert("密码不能为空!");checkPassState = false;} else {checkPassState = true;}}function login() {if (checkEmailState && checkPassState) {alert("验证通过!");} else {alert("验证错误,请重新输入!");}}</script></body></html>

<!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>字符常用api</title></head><body><script>let msg = "php中文网:公益在线php培训,帮助PHP学习者快速成长!";// 1. length:字符串长度console.log(msg.length);// 2. charAt:索引,第几个字符console.log(msg.charAt(8));// 字符串可当作数组console.log(msg[8]);// 3. indexOf:字符索引,返回是第几个字符console.log(msg.indexOf("学"));// 4. search:同上,支持正则表达console.log(msg.search("学"));// 5. replace:替换console.log(msg.replace("中文网", ".cn中文网"));// 6. slice:取子串,开始,结束console.log(msg.slice(3, 6));// 7. substr:取子串,开始,长度console.log(msg.substr(3, 6));// 负数为从倒数第几个开始console.log(msg.substr(-6, 3));// 8. split:转为数组,每个字符为一个值let msgArr = msg.split("");console.log(msgArr);console.log(msgArr[3]);// 指定转换数量,例:把6个字符转为数组console.log(msg.split("", 6));// 9. toLowerCase,toUpperCase:大小写转换console.log(msg.toLowerCase());console.log(msg.toUpperCase());// 10. 与html相关console.log(`<a href="https://php.cn">${msg}</a>`);// link实现上面连接console.log(msg.link("https://php.cn"));// 添加加粗元素console.log(msg.bold());// 创建锚点console.log(msg.anchor("url"));</script></body></html>
<!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>数组常用api</title></head><body><script>// 一、创建数组的方式// 1. 用字面量,数组里支持任何类型数据let arr = [1,3,6,"中文网",true,{ i: 55, j: 88, aa() {} },() => "这是函数。",];console.log(arr);// 2. 用...rest创建let arrOne = [...arr];console.log(arrOne);// 扩展数组let arrTwo = [56, 78, "ok", ...arrOne];console.log(arrTwo);// 3. Array.of创建let arrThree = Array.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);console.log(arrThree);arrThree = [1, 3, 5, 7, 9];let arrFour = Array.of(...arrThree);console.log(arrFour);// 4. Array.from 创建类数组// 定义类const weather = {0: "暴风雨",1: "晴",2: "小雨",length: 3,};// weather为类console.log(weather);// 转为数组console.log(Array.from(weather));// 二、数组增删let arrEr = [5, 8, 10];// 从尾部增加arrEr.push(15);arrEr.push(25, 28);console.log(arrEr);// 从尾部删除arrEr.pop();arrEr.pop();arrEr.pop();console.log(arrEr);// 从头部增加arrEr.unshift(4);arrEr.unshift(1, 2);console.log(arrEr);// 从头删除arrEr.shift();arrEr.shift();arrEr.shift();console.log(arrEr);// 按索引删除,只能删除值,长度不变delete arrEr[1];console.log(arrEr);console.log(arrEr.length);// 通过修改数组长度,增加空值arrEr.length = 5;console.log(arrEr);// 三、迭代方法和遍历元素// 1.forEachlet arrFor = [10, 20, 30, 40, 50, 60, 70, 80, 90];// forEach的参数是回调函数// 回调函数的参数:// 第一个:从数组中取的值// 第二个:数组的索引// 第三个:要遍历的数组// 没有返回值,不能赋值给变量arrFor.forEach(function (value, index, arrFor) {console.log(value, index);document.body.append(`数组值${value}--`);});// 2. map:参数功能与forEach一样,有返回值let value = arrFor.map((value) => value);console.log(value);// 3. every,some:断言函数,返回true,false// every:判断数组成员是否全部满足条件console.log(value.every((i) => i > 55));console.log(value.every((i) => i < 500));// some:数组成员中只要有1个满足条件就为trueconsole.log(value.some((i) => i > 55));console.log(value.some((i) => i < 80));// 4. filter:返回数组中满足条件的值,组成新数组let min = value.filter((i) => i < 80);console.log(min);// 5. reduce:归并,参数a为累加器,结果放到a,a可设初始值value = arrFor.reduce(function (a, b, c, d) {console.log(`${a}--${b}--${c}--${d}`);return a + b;}, 100);// 四、// 1. sort:排序,arr = [5, 15, 35, 85];// 默认按字母表顺序console.log(arr.sort());// 按大到小排,要用参数console.log(arr.sort((a, b) => a - b));// 从小到大排;console.log(arr.sort((a, b) => b - a));// 2. join:连接数组arr = ["大号", "中号", "小号"];console.log(arr.join());console.log(arr.join("--"));// 3. slice:取子元素arr = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19];// 第2个到第5个console.log(arr.slice(2, 5));// 第2个开始到最后console.log(arr.slice(2));// 倒数第6个到倒数第2个console.log(arr.slice(-6, -2));// 4. splice:删除、新增、替换// 从索引1开始删除3个元素console.log(arr.splice(1, 3));console.log(arr);// 替换:从索引1开始替换3个元素console.log(arr.splice(1, 3, "a", "b", "c"));console.log(arr);// 插入:从索引1开始插入3个元素console.log(arr.splice(1, 0, "红", "黄", "蓝"));console.log(arr);let data = ["太阳", "月亮"];console.log(arr.splice(5, 0, ...data));console.log(arr);</script></body></html>
相关推荐
© 2020 asciim码
人生就是一场修行