JavaScript 24道面试题及答案.docx
JavaScript 基础知识点总结 JavaScript 中的数据类型可以分为两大类:基本数据类型和引用数据类型。基本数据类型包括 Undefined、Null、Boolean、Number、String、Symbol(ES6 新增)六种,引用数据类型只有 Object 一种,主要包括对象、数组和函数。 判断数据类型可以使用 typeof 操作符,typeof 有两种语法:typeof 123;//语法一 const FG=123;typeof FG;//语法二 typeof(null) 返回 object,null==undefined 返回 true,因为 undefined 派生自 null,null===undefined 返回 false。 基本数据类型和引用数据类型的区别主要体现在: * 传递方式:基本数据类型传入的是数据的副本,原数据的更改不会影响传入后的数据。引用数据类型传入的是数据的引用地址,原数据的更改会影响传入后的数据。 * 存储位置:基本数据类型存储在栈中,引用数据类型在栈中存储了指针,该指针指向的数据实体存储在堆中。 判断数据类型的方法有多种: * 利用 typeof 可以判断数据的类型 * A instanceof B 可以用来判断 A 是否为 B 的实例,但它不能检测 null 和 undefined * B.constructor==A 可以判断 A 是否为 B 的原型,但 constructor 检测 Object 与 instanceof 不一样,还可以处理基本数据类型的检测 * Object.prototype.toString.call() 是最准确最常用的方式 浅拷贝和深拷贝的区别: * 浅拷贝只复制指向某个对象的指针,而不复制对象本身 * 深拷贝就是在拷贝数据的时候,将数据的所有引用结构都拷贝一份 浅拷贝的实现方式有: * Object.assign() 需注意的是目标对象只有一层的时候,是深拷贝 * 扩展运算符 深拷贝的实现方式有: * 手写遍历递归赋值 * 结合使用 JSON.parse() 和 JSON.stringify() 方法 执行上下文和执行栈: * 变量或函数的执行上下文,决定了它们的行为以及可以访问哪些数据 * 每个上下文都有一个关联的变量对象,而这个上下文中定义的所有变量和函数都存在于这个对象上 * 每个函数调用都有自己的上下文 * 代码执行流进入函数时,函数的上下文被推到一个执行栈中 * 在函数执行完之后,执行栈会弹出该函数上下文,在其上的所有变量和函数都会被销毁,并将控制权返还给之前的执行上下文 作用域和作用域链: * 作用域可以理解为一个独立的地盘,可以理解为标识符所能生效的范围 * 作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突 * ES6 中有全局作用域、函数作用域和块级作用域三层概念 * 当一个变量在当前块级作用域中未被定义时,会向父级作用域(创建该函数的那个父级作用域)寻找 * 这种一层一层的关系,就是作用域链 作用域和执行上下文的区别: * 函数的执行上下文只在函数被调用时生成,而其作用域在创建时已经生成 * 函数的作用域会包含若干个执行上下文(有可能是零个,当函数未被调用时) this 指向的各种情况: * 全局作用域中的函数:其内部 this 指向 window * 对象内部的函数:其内部 this 指向对象本身 * 构造函数:其内部 this 指向生成的实例 * 由 apply、call、bind 改造的函数:其 this 指向第一个参数
剩余12页未读,继续阅读
- 粉丝: 28
- 资源: 1844
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 锂电池的保护芯片的使用技术资料开发设计用的重要资料.zip
- 开关电源效率的简易测算方法技术资料开发设计用的重要资料.zip
- 开关电源设计技术资料开发设计用的重要资料.zip
- 开关电源工作原理及电路图技术资料开发设计用的重要资料.zip
- 开关电源电路图讲解技术资料开发设计用的重要资料.zip
- android studio 配套资源 gradle8.0.2all
- 具有隔离功能的自激式开关电源介绍技术资料开发设计用的重要资料.zip
- redis在Windows中下载及安装、设置教程文档.zip
- 雪地滑雪人物场景模型:POLYGON Snow Kit v1.4.0
- 几种常见开关电源电路图技术资料开发设计用的重要资料.zip