php 网站调试,学网站建设要学什么,如何查看网站seo,北控京奥建设有限公司网站文章目录 前端知识点03#xff08;JS#xff09;1、JS中this指向问题2、script中的async和defer的区别3、setTimeOut和setInterval4、Es6和ES5的区别5、ES6的新特性 #x1f389;写在最后 前端知识点03#xff08;JS#xff09; hello hello~ #xff0c;这里是 code袁~JS1、JS中this指向问题2、script中的async和defer的区别3、setTimeOut和setInterval4、Es6和ES5的区别5、ES6的新特性 写在最后 前端知识点03JS hello hello~ 这里是 code袁~ 欢迎大家点赞关注收藏 个人主页code袁 所属专栏Java 1、JS中this指向问题
1.全局对象中的this指向指向的是window
2.全局作用域或者普通函数中的this指向window
3.this永远最后调用它的对象
4.new 关键词改变了this关键词的指向
5.applycallbind 可以改变this的指向
6.箭头函数中的this它的指向在定义时候已经确定了箭头函数它就没有this看外层是否有函数如果有则是外层函数的this没有则是window
7.匿名函数中的this永远指向window匿名函数的执行具有全局性2、script中的async和defer的区别
在script标签中async和defer是用来控制脚本加载和执行的两个属性它们的主要区别如下1. async- 当浏览器遇到带有async属性的script标签时会异步加载并执行脚本不会阻止页面的解析和渲染。- 脚本加载完成后会立即执行不会按照在页面中出现的顺序执行。- 如果多个带有async属性的脚本之间有依赖关系执行顺序不确定可能会出现问题。- 适合无序执行的独立脚本如统计代码等。2. defer- 当浏览器遇到带有defer属性的script标签时会异步加载脚本但会等到文档解析完成后按照在页面中出现的顺序执行脚本。- 脚本会在DOMContentLoaded事件触发前执行保证脚本在文档解析完成前执行。- 多个带有defer属性的脚本会按照在页面中出现的顺序依次执行。- 适合有序执行的脚本如页面初始化脚本等。总的来说async属性会并行加载脚本并立即执行而defer属性会异步加载脚本但会按照在页面中出现的顺序执行。
开发者可以根据脚本的执行顺序和依赖关系选择合适的属性来优化页面加载和性能。3、setTimeOut和setInterval
1.SetTimeOut的最小执行时间是4ms执行一次
第一个参数是一个函数或要执行的代码块。
第二个参数是延迟的时间即多少毫秒后执行该函数或代码块。setTimeout(function(){console.log(111)},2000);2.setInterval最小执行时间是10ms设置时间后重复执行
第一个参数是一个函数或要执行的代码块。
第二个参数是时间间隔即多少毫秒后重复执行该函数或代码块。setInterval(function () {console.log(22);}, 8000);
使用setInterval时要谨慎确保不会出现任务堆积的情况可以在每次执行时检查是否需要终止定时器。
如果不再需要重复执行某个任务可以使用clearInterval函数来清除定时器。4、Es6和ES5的区别
ES5ECMAScript 5是JavaScript的第五个版本而ES6ECMAScript 2015是JavaScript的第六个版本也被称为ES2015。
它们之间的主要区别包括以下几点1.语法特性- ES6引入了一些新的语法特性如let和const关键字用于声明变量、箭头函数、模板字符串、解构赋值、类和模块等。- ES6提供了更多的语法糖和便利的语法使得代码更加简洁和易读。2. 新增的功能- ES6引入了一些新的功能如Promise对象用于处理异步操作、Generator函数用于实现迭代器、Map和Set数据结构、Symbol数据类型- 等。- ES6提供了更多的内置方法和数据结构使得开发更加方便和高效。3. 模块化- ES6引入了模块化的概念通过export和import关键字可以方便地导出和导入模块实现模块化开发。- ES6的模块化机制比起ES5中的CommonJS和AMD更加现代化和标准化。4. 类和继承- ES6引入了class关键字用于定义类和面向对象编程提供了更加清晰和简洁的类和继承机制。- ES6的类和继承机制更加符合传统面向对象编程的思想。5. 其他改进- ES6对函数的参数处理、数组的操作、字符串的处理等方面进行了改进和增强。- ES6提供了更多的内置方法和工具使得开发更加便利和高效。总的来说ES6相对于ES5来说引入了更多的新特性和功能使得JavaScript语言更加现代化、强大和易用。
开发者可以根据项目需求选择使用ES5或ES6来编写代码。5、ES6的新特性
1.新增块级作用域let const引入了块级作用域的let和const关键字取代了var关键字提供了更好的变量声明和管理方式。
2.新增定义类的语法糖class引入了class关键字用于定义类和面向对象编程提供了更加清晰和简洁的类和继承机制。
3.新增基本数据类型symbol引入了Symbol数据类型用于创建唯一的标识符防止属性名冲突。
4.新增了解构赋值引入了解构赋值语法可以快速提取数组和对象中的值简化了变量赋值操作。
5.新增函数参数的默认值
6.给数组新增api
7.对象和数组新增扩展运算符
8.新增模块化import export引入了模块化的概念通过export和import关键字可以方便地导出和导入模块实现模块化开发。
9.新增了set和map数据结构引入了Map和Set数据结构提供了更加灵活和高效的数据存储和操作方式。
10.新增了generator引入了Generator函数用于实现迭代器可以通过yield关键字暂停和恢复函数的执行。
11.新增箭头函数引入了箭头函数语法简化了函数的书写同时改变了this的指向
写在最后
伙伴们如果你已经看到了这里觉得这篇文章有帮助到你的话不妨点赞或 Star ✨支持一下哦手动码字如有错误欢迎在评论区指正~
你的支持就是我更新的最大动力~