批改状态:合格
老师批语:
| STT | 事件 | 说明 |
|---|---|---|
| 1 | submit: |
提交时触发 |
| 2 | focus: |
获取焦点时触发 |
| 3 | blur: |
失去焦点时触发 |
| 4 | change: |
值发生改变且失去焦点时触发 |
| 5 | input: |
值发生改变就会触发,不必等失去焦点,与 change 不同 |
<div class="login-input"><span class="iconfont icon-yonghuming"></span><inputclass="text"type="text"name="username"placeholder="Username"required=""onblur="dologin(this)"/></div><div class="login-input"><span class="iconfont icon-mima"></span><inputclass="text"type="password"name="password"placeholder="Password"required=""onblur="dologin(this)"/></div><script>function dologin(ele) {// 1. 防止默认的提交行为, 用户自定义event.preventDefault();// 2. 防止冒泡event.stopPropagation();// 3. 非空验证// 每一个控件input,button 都有一个属性form ,和当前表单绑定console.log(ele.form);let username = ele.form.username;let password = ele.form.password;if (username.value.length === 0) {alert("邮箱不能为空");username.focus();return false;}if (password.value.length === 0) {alert("密码不能为空");password.focus();return false;}alert("验证通过");}</script>
let str = "Help_10086";// 1. length 长度console.log(str.length);// 2. charAt: 索引->元素console.log(str.charAt(3));// 一般直接用[]读取console.log(str[3]);// 3. indexOf: 根据字符获取索引console.log(str.indexOf("中"));// 4. search: indexOf一样,但支持正则等console.log(str.search("文"));// 5. concat: 字符串拼装console.log(str.concat("(", "一路帮", ")"));// 直接用"+", 或者`模板字面量` 更方便// 6. replace: 替换console.log(str.replace("Help", "一路帮"));// str = "php";console.log(str);// 7. slice: 子串, 忽略结束索引的值console.log(str.slice(0, 3));// 8. substr: 子串, 只需要知道取多少个console.log(str.substr(0, 3));console.log(str.substr(3, 3));// -1最后一个, -2向前一个console.log(str.substr(-3, 3)); // 中文网// 9. split: str->arrayconsole.log(str.split(""));console.log(str.split("", 3));// 10. toLowerCase, toUpperCase 大小写转换console.log(str.toLowerCase());console.log(str.toUpperCase());// 11. 与html相关console.log(`<a href="https://help10086.cn">${str}</a>`);console.log(str.link("https://help10086.cn"));console.log(str.bold());console.log(str.big());console.log(str.anchor("url"));
// 字面量let arr = [12, 22, "a", "b", true, { x: 10, y: 20 }, [11, 21, 31], function () {}];console.log(arr);// ...rest 展开数组arr = [42, 52, 62];let arr1 = [...arr];console.log(arr1);arr = [1, 2, 3, ...arr, 7, 8, 9];console.log(arr);// Array.of// 原始数据有可能来自一个外部请求api或文件,而这个原始数据就是数组let a = [1, 2, 3, 4, 5, 6];// 经过一些其它操作,例如过滤,再重新生成arr = Array.of(...a);console.log(arr);// Array.from 类数组转数组const likeArr = {0: "thinkbook",1: "macbookpro",2: "thinkpad",length: 3,};console.log(likeArr);console.log(Array.from(likeArr));
// push,pop, unshift,shift,deletelet arr = [];// 1. 尾部增删,返回数组长度console.log(arr.push('help'));// 从左到右进入console.log(arr.push(10086, '.cn'));console.log(arr);// 尾部删除,返回被删除元素console.log(arr.pop());console.log(arr);console.log(arr.pop());console.log(arr.pop());// 2. 头部增删console.log(arr.unshift('一路帮'));// 从右到左进入console.log(arr.unshift('help', '10086'));console.log(arr);console.log(arr.shift());console.log(arr.shift());console.log(arr.shift());console.log(arr);// 删除任意元素arr = [1, 2, 3, 4, 5];delete arr[1];console.log(arr);console.log(arr.length);arr.length = 4;console.log(arr);
// 迭代方法, 遍历元素// 1. forEach,map// 2. every, some// 3. filter, find, findIndex// 4. reduce// 1. forEach((item,index,arr)=>{...}), 每个元素逐个调用回调处理let arr = ['help', '10086', '.cn'];let res = arr.forEach(function (item, index, arr) {// 三个参数中, 只有第一个 item是必须的console.log(item, index, arr);// 常用于dom操作console.log(item)});// 没有返回值console.log(res);// 2. map: 参数与功能 与forEach一样,只不过有返回值res = arr.map(item => item + ' - zgb');console.log(res);// 3. every, some: 断言函数,返回true,false// every: 数组成员全部满足条件,则返回 true , 否则 false 与console.log(arr.every(item => item >= 0));console.log(arr.every(item => item >= 3));// some: 数组成员中只要有一个满足条件,就返回 true, 否则 false, 或console.log(arr.some(item => item >= 3));console.log(arr.some(item => item >= 10));// 4. filter: 返回数组中的满足条件的元素组成的新数组console.log(arr.filter(item => item >= 3)); // [3,4,5]// arr.filter(item => item >= 3)[0] -> findconsole.log(arr.find(item => item >= 3));console.log(arr.findIndex(item => item >= 3));// 5. reduce: 归并res = arr.reduce(function (acc, cur, index, arr) {// 查看reduce的执行过程console.log("acc=", acc, "cur=", cur, "index=", index, "arr=", arr);// 最终结果用 acc 返回, acc累加器return acc + cur;}, 5);console.log(res);
// 1. sortlet arr = ['help', '10086', '.cn'];console.log(arr.sort());// ascconsole.log(arr.sort((a, b) => a - b));// descconsole.log(arr.sort((a, b) => b - a));// 2. join: array -> string// string.split string -> arrayarr = ["thinkbook", "macbookpro", "thinkpad"]console.log(arr.join());console.log(arr.join("-"));// 3. slice: 子元素arr = ['help', '10086', '.cn',"thinkbook", "macbookpro", "thinkpad"]console.log(arr.slice(2, 5));console.log(arr.slice(2));console.log(arr.slice(-6, -3));// 4. splce: 删除, 新增, 替换// deleteconsole.log(arr);console.log(arr.splice(1, 2));console.log(arr);// updateconsole.log(arr.splice(1, 2, "a", "b"));console.log(arr);// insertconsole.log(arr.splice(1, 0, "red", "green"));console.log(arr);let data = ["red", "green", "blue"];console.log(arr.splice(1, 0, ...data));console.log(arr);// 数组反转, 数组拼装, 拉平与一维数组... mdn
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号