JS的基本概念
JavaScript是一门非常重要的编程语言,它可以用于网站开发、移动应用开发、游戏开发、机器学习等各种领域。
基本语法
学习JavaScript的第一步是掌握其基本语法,包括变量、数据类型、操作符、流程控制、函数等等。JavaScript的语法比较灵活,可以根据不同的需求进行调整和优化。例如,可以使用let和const关键字定义变量,使用箭头函数简化函数定义等等。
面向对象编程
JavaScript是一门面向对象的编程语言,它支持类、对象、继承、多态等面向对象的特性。在JavaScript中,我们可以使用class关键字定义类,使用extends关键字实现继承,使用super关键字调用父类的方法等等。面向对象编程可以使我们更加清晰地组织和管理代码,提高代码的可读性和可维护性。
数据类型
对象:数组、函数 基础类型:string、undefined、number、null、symbol、object、boolean
作用域
变量的可访问性和可见性 静态作用域 通过它就能够预测代码在执行过程中如何查找标识符
变量提升
var 定义 有变量提升 let const 没有变量提升,提前访问会报错 function 函数可以先调用后定义 赋值给变量的函数
JS是怎样执行的
全局执行上下文:代码开始执行时就会创建,将它压执行栈的栈底,每个生命周期内只有一份
函数执行上下文:当执行一个函数时,这个函数内的代码会被编译,生成变量环境、词法环境等,当函数执行结束的时候执行环境从栈顶弹出
变量环境:变量环境和词法环境的一个不同就是前者被用来存储函数声明和变量(let和const)绑定,而后者只用来存储var变量绑定
JS进阶知识点
闭包
闭包(closure)是一个函数以及其捆绑的周边环境状态(lexical environment,词法环境)的引用的组合。换而言之,闭包让开发者可以从内部函数访问外部函数的作用域。在 JavaScript 中,闭包会随着函数的创建而被同时创建。 通常,如果引用闭包的函数是一个全局变量,那么闭包会一直存在直到页面关闭;但如果这个闭包以后不再使用的话,就会造成内存泄漏。如果引用闭包的函数是个局部变量,等函数销毁后,在下次 JavaScript 引擎执行垃圾回收时,判断闭包这块内容如果已经不再被使用了,那么 JavaScript 引擎的垃圾回收器就会回收这块内存。
this
普通函数的this指向是window
对象调用的时候this指向当前对象
先赋值再调用,看调用的地方
构造函数:
1 创建临时对象 2 将this指向临时对象 3 执行构造函数 4 返回临时对象
引擎
渲染引擎:负责网页内容呈现的。 js引擎:解释js脚本,实现js交互效果的。
JavaScript的异步编程
JavaScript是一门异步编程语言,它可以通过回调函数、Promise、async/await等方式处理异步任务。异步编程可以避免阻塞主线程,提高代码的性能和响应速度。
JavaScript的框架和库
JavaScript拥有丰富的框架和库,包括React、Vue、Angular、jQuery、Bootstrap等等。这些框架和库可以帮助我们快速开发应用程序,提高开发效率和代码质量。例如,React是一款非常流行的JavaScript框架,它采用组件化的开发方式,可以帮助我们更加清晰地组织和管理代码。
JavaScript的调试和优化
在开发JavaScript应用程序时,我们需要进行调试和优化,以确保代码的正确性和性能。可以使用浏览器的开发工具进行调试和测试,例如Chrome的开发者工具可以帮助我们检查代码的错误和性能问题。可以使用JavaScript的性能优化技术,例如减少DOM操作、避免不必要的计算、使用缓存等等,以提高代码的性能和响应速度。
总结
学习JavaScript需要掌握基本语法、面向对象编程、框架等。