33 个重要的 JavaScript 概念

了解这33个JAVAScript概念绝对会让你将来的职业生涯受益无穷 。
话不多说,直接进入主题!
1. 调用栈

33 个重要的 JavaScript 概念

文章插图
 
调用栈是解释器(如web浏览器中的JavaScript解释器)跟踪其在调用多个函数的脚本中的位置的机制——当前正在运行什么函数以及从函数中又调用了哪些函数等 。
2. 原始类型(Primitive Types)
33 个重要的 JavaScript 概念

文章插图
 
除了对象之外的所有类型都定义了不可变的值(即不能更改的值) 。例如(不同于C语言),字符串是不可变的 。我们将这些类型的值称为“原始值” 。
3. 值类型和引用类型
33 个重要的 JavaScript 概念

文章插图
 
分配了非原始值的变量将获得对该值的引用 。引用指向对象在内存中的地址 。变量实际上并不包含值 。
4. 隐式、显式、标称、结构化和鸭子类型
33 个重要的 JavaScript 概念

文章插图
 
类型强制意味着当运算符的操作数是不同的类型时,其中一个将被转换为另一个操作数类型的“等价”值 。
5. == 和 === 和 typeof
33 个重要的 JavaScript 概念

文章插图
 
JavaScript有两种看上去相似、但实际大相径庭的方法可用于测试相等性 。那就是==和=== 。
6. 函数作用域、块作用域和词法作用域
【33 个重要的 JavaScript 概念】
33 个重要的 JavaScript 概念

文章插图
 
词法作用域:定义在词法阶段的作用域 。是由你在写代码时将变量和块作用域写在哪里来决定的 。
函数作用域:属于这个函数的全部变量都可以在整个函数的范围内使用(事实上也可用于嵌套的作用域) 。
7. 表达式与语句
33 个重要的 JavaScript 概念

文章插图
 
表达式可以像语句一样工作,这就是我们也有Expression语句的原因 。但是,另一方面,语句不能像表达式那样工作 。
8. IIFE、模块和命名空间
33 个重要的 JavaScript 概念

文章插图
 
常用的函数编码模式有一个花哨的名字:Immediately-invoked Function Expression(立即调用函数表达式) 。或者更广为人知的是被写作IIFE 。
9. 消息队列和事件循环
33 个重要的 JavaScript 概念

文章插图
 
问:JavaScript如何异步和单线程?
答:JavaScript语言是单线程的,异步行为不是JavaScript语言本身的一部分,而是构建在浏览器(或编程环境)中的核心JavaScript语言之上,并通过浏览器API访问 。
10. setTimeout、setInterval和requestAnimationFrame
33 个重要的 JavaScript 概念

文章插图
 
我们可以决定现在不执行函数,而在以后的某个时间执行 。
11. JavaScript引擎
33 个重要的 JavaScript 概念


推荐阅读