十四、浅谈ES5和ES6
ES5 和 ES6 我们所说的 ES5 和 ES6 其实就是在 js 语法的发展过程中的一个版本而已 比如我们使用的微信 最早的版本是没有支付功能的 随着时间的流逝,后来出现了一个版本,这个版本里面有支付功能了 ECMAScript 就是 js 的语法 以前的版本没有某些功能 在 ES5 这个版本的时候增加了一些功能 在 ES6 这个版本的时候增加了一些功能 因为浏览器是浏览器厂商生产的 ECMAScript 发布了新的功能以后,浏览器厂商需要让自己的浏览器支持这些功能 这个过程是需要时间的 所以到现在,基本上大部分浏览器都可以比较完善的支持了 只不过有些浏览器还是不能全部支持 这就出现了兼容性问题 所以我们写代码的时候就要考虑哪些方法是 ES5 或者 ES6 的,看看是不是浏览器都支持 ES5 增加的数组常用方法数组方法之 forEach forEach 用于遍历数组,和 for 循环遍历数组一个道理 语法: 数组.forEach(function (item, index, arr) {}) 1234567891011var arr = ["a&qu...
十三、玩转正则-RegExp
正则表达式 - Regexp1:正则的概念 正则表达式(regular expression)是一个描述字符规则的对象。可以用来检查一个字符串是否含有某个子字符串,将匹配的子字符串做替换或者从某个字符串中取出符合某个条件的子串等。为什么要用正则:前端往往有大量的表单数据校验工作,采用正则表达式会使得数据校验的工作量大大减轻。常用效果:邮箱、手机号、身份证号等。 2:创建方式 第一种方式: 1var reg = new RegExp(“study”,“ig”); // 第二个参数为修饰符 i:表示忽略大小写 ignore。g:表示全局匹配,查找所有匹配而非在找到第一个匹配后停止 global。 第二种方式: 1var reg = /study/gi; 3:正则对象方法 test: 正则实例对象的 test 方法返回一个布尔值,表示当前模式是否能匹配参数字符串 1234/cat/.test('cats and dogs') // true上面代码验证参数字符串之中是否包含cat,结果返回true。如果正则表达式带有g修饰符,则每一次test方...
十二、事件-Event(下)
事件 Event事件的默认行为及阻止 浏览器的默认行为 JavaScript 事件本身所具有的属性,例如 a 标签的跳转,Submit 按钮的提交,右键菜单,文本框的输入等。 1234567阻止默认行为的方式1、w3c的方法是e.preventDefault()2、IE则是使用e.returnValue = false;3、函数内部return false;自定义右键菜单 oncontextmenu DOM2 级事件处理程序添加事件监听器 添加事件监听器:ele.addEventListener(事件名,处理函数,布尔值) 注意:适用于现代浏览器(IE9、10、11 | ff, chorme, safari, opera) 注意:事件名不带 on,处理函数为函数引用,布尔值代表冒泡(内到外)或捕获(外到内) element.addEventListener(“click”,function(){},false);//false 事件冒泡 element.addEventListener(“click”,function(){},true);/...
十一、事件-Event(上)
事件 Event事件基础123JavaScript 事件是由访问 Web 页面的用户引起的一系列操作。当用户执行某些操作的时候,再去执行一系列代码。或者用来获取事件的详细信息,如鼠标位置、键盘按键等。 事件处理函数12javaScript可以处理的事件类型为:鼠标事件、键盘事件、HTML事件所有的事件处理函数都会都有两个部分组成,on + 事件名称 常用鼠标事件(重点)1234567onclick: 用户单击鼠标按钮ondblclick: 当用户双击主鼠标按钮时触发onmousedown: 当用户按下鼠标还未弹起时触发onmouseup: 当用户释放鼠标按钮时触发onmouseover: 当鼠标移到某个元素上方时触发onmouseout: 当鼠标移出某个元素上方时触发onmousemove: 当鼠标指针在元素上移动时触发 常用 HTML 事件(重点)1234567onload: 当页面或者资源完全加载后在 window 上面触发onselect: 当用户选择文本框(input 或 textarea)中的一个或多个字符触发onchange: 当文本框(inpu...
十、DOM(下)
DOM(下) DOM 树就是我们 html 结构中一个一个的节点构成的 不光我们的标签是一个节点,我们写的文本内容也是一个节点,注释,包括空格都是节点 DOM 节点 DOM 的节点我们一般分为常用的三大类 元素节点 / 文本节点 / 属性节点 什么是分类,比如我们在获取元素的时候,通过各种方法获取到的我们叫做元素节点(标签节点) 比如我们标签里面写的文字,那么就是文本节点 写在每一个标签上的属性,就是属性节点 元素节点 我们通过 getElementBy... 获取到的都是元素节点 属性节点 我们通过 getAttribute 获取的就是元素的属性节点 文本节点 我们通过 innerText 获取到的就是元素的文本节点 获取节点 childNodes:获取某一个节点下 所有的子一级节点 1234567891011121314151617181920<body> <div> <p>hello</p> </div> <script> // 这个 oDiv 获取的是页...
九、BOM和DOM
BOM / DOM(上)BOM BOM(Browser Object Model): 浏览器对象模型 其实就是操作浏览器的一些能力 我们可以操作哪些内容 获取一些浏览器的相关信息(窗口的大小) 操作浏览器进行页面跳转 获取当前浏览器地址栏的信息 操作浏览器的滚动条 浏览器的信息(浏览器的版本) 让浏览器出现一个弹出框(alert/confirm/prompt) BOM 的核心就是 window 对象 window 是浏览器内置的一个对象,里面包含着操作浏览器的方法 弹窗 aleat()是在浏览器弹出一个提示框 12window.alert("我是一个提示框");// 这个弹出层知识一个提示内容,只有一个确定按钮,点击确定按钮以后,这个提示框就消失了 confirm 是在浏览器弹出一个询问框 123456var boo = window.confirm("我是一个询问框");console.log(boo);/* 这个弹出层有一个询问信息和两个按钮 当你点击确定的时候,就会得...
八、Math和Date
Math 和 Date Math 是 js 的一个内置对象,提供了一堆的方法帮助我们操作 数字 Date 是 js 的一个内置对象,提供了一堆的方法帮助我们操作 时间 Math random、round、abs、ceil、floor、max、min、PI Math.random(),用来生成一个0 ~ 1之间的随机数,生成的数字包含 0 ,但是不包含 1 12345678910111213141516171819202122var num = Math.random();console.log(num); // 得到一个随机数/* 应用场景:随机点名 */var names = [ "娄豪杰", "温亚帅", "窦全磊", "老许", "刘旭", "殷逸", "张朗", "罗慧",];var timer = setInterval(() => { let index = Math.f...
七、JS字符串"string"
ES5/String字符串的常用方法 我们操作字符串,也有一堆的方法来帮助我们操作 字符串和数组有一个一样的地方,也是按照索引来排列的 charAt、charCodeAt、indexOf、lastIndexOf、substring、substr、split、replace、toLowewrCase、toUpperCase charAt()是找到字符串中指定索引位置把内容返回,如果没有对应的索引,那么就会返回 空字符串 123var str = 'HJ'var res1 = str.charAt(1) // Jvar res2 = str.charAt(3) // '' charCodeAt()就是返回对应索引位置的 unicode 编码 123var str = 'HJ'var res = str.charCodeAt(1) // 74// 因为 `J` 在 `unicode` 对照表里面存储的是 74,所以就会返回 74 indexOf()就是按照字符找到对应的索引,找不到返回 -1 123var ...
六、JS数组[Array]
ES5/数组 什么是数组? 字面理解就是 数字的组合 其实不太准确,准确的来说数组是一个 数据的集合 也就是我们把一些数据放在一个盒子里面,按照顺序排好 1[1, 'HJ', true, { name: "特兰克斯" }, [666]]; // 可以有 数字、字符串、布尔值、对象、数组 创建一个数组 语法:数组就是一个 [],在 [] 里面存储着各种各样的数据,按照顺序依次排好 1234/* 字面量的方式创建一个数组 */var arr = []; // 创建一个空数组var brr = [1, 2, 3]; // 创建一个有内容的数组 12345/* 使用 `js` 的内置构造函数 `Array` 创建一个数组 */var arr1 = new Array(); // 创建一个空数组var arr2 = new Array(10); // 创建一个长度为 10 的数组var arr3 = new Array(1, 2, 3); // 创建一个有内容的数组 数组的长度 length length: ...
五、JS函数(下)
函数(下)作用域(重点) 什么是作用域,就是一个变量可以生效的范围 变量不是在所有地方都可以使用的,而这个变量的使用范围就是作用域 全局作用域 全局作用域是最大的作用域 在全局作用域中定义的变量可以在任何地方使用 页面打开的时候,浏览器会自动给我们生成一个全局作用域 window 这个作用域会一直存在,直到页面关闭就销毁了 123// 下面两个变量都是存在在全局作用域下面的,都是可以在任意地方使用的var num = 100;var num2 = 200; 局部作用域 局部作用域就是在全局作用域下面有开辟出来的一个相对小一些的作用域 在局部作用域中定义的变量只能在这个局部作用域内部使用 在 JS 中只有函数能生成一个局部作用域,别的都不行 每一个函数,都是一个局部作用域 12345678910// 这个 num 是一个全局作用域下的变量 在任何地方都可以使用var num = 100;function fn() { // 下面这个变量就是一个 fn 局部作用域内部的变量 // 只能在 fn 函数内部使用 var num2 = 200;}f...

