ZBLOG

作者:Java编程日记 链接:https://zhuanlan.zhihu.com/p/677917087 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1.说说JavaScript中的数据类型?存储上的差别?2.说说你了解的js数据结构?3.DOM常见的操作有哪些?4.说说你对BOM的理解,常见的BOM对象你了解哪些?5.==和===区别,分别在什么情况使用6.typeof 与instanceof区别7.JavaScriptl原型,原型链?有什么特点...

  1. JavaScript中的数据类型有以下几种:基本数据类型包括数字(Number)、字符串(String)、布尔值(Boolean)、空值(Null)和未定义值(Undefined),还有引用数据类型包括对象(Object)和数组(Array)。

存储上的差别:

  • 基本数据类型在内存中占据固定大小的空间,直接存储在栈内存中。
  • 引用数据类型是按引用访问的,实际的对象或数组是存储在堆内存中,而变量只是保存了对该对象或数组的引用地址。
  1. JavaScript中常见的数据结构包括:
  • 数组(Array):一组按顺序排列的值
  • 对象(Object):键值对集合
  • 栈(Stack):后进先出(LIFO)的数据结构
  • 队列(Queue):先进先出(FIFO)的数据结构
  • 链表(Linked List):节点通过指针相连形成链式结构
  • 树(Tree):具有层级关系的节点集合
  • 图(Graph):由节点和边组成,表示多对多关系
  1. DOM (Document Object Model) 是操作网页文档内容及结构的 API。DOM常见操作包括:
  • 获取元素: getElementById, getElementsByClassName, getElementsByTagName等方法
  • 修改元素属性、样式、内容等: 如innerHTML、innerText、setAttribute等方法
  • 创建、删除元素: createElement, appendChild, removeChild等方法
  • 事件绑定与处理: addEventListener, removeEventListener等方法
  1. BOM (Browser Object Model) 是浏览器对象模型,提供了一组访问和控制浏览器窗口的对象。常见的BOM对象包括:
  • window对象:代表整个浏览器窗口,可以操作窗口尺寸、打开新窗口、定时器等
  • document对象:代表当前文档,可以获取和修改文档内容及结构
  • location对象:提供了与URL相关的信息和方法,如获取当前URL、跳转到其他页面等
  • navigator对象:提供了关于浏览器的信息,如用户代理字符串、浏览器版本等
  1. ”==“是相等运算符,会进行类型转换后再比较两个值是否相等;”===“是严格相等运算符,不会进行类型转换,要求类型和值都相同才会返回true。通常情况下优先使用”===“来进行比较。

  2. typeof用于检查一个变量或表达式的数据类型;instanceof用于判断一个对象是否是某个构造函数创建的实例。主要区别在于typeof适用于基本数据类型和函数(返回字符串),而instanceof适用于判断对象的具体类型(返回布尔值)。

  3. JavaScript中的原型是指每个对象在创建时关联到另一个对象上,并继承它们的属性和方法。原型链是一种查找属性和方法的机制,如果在当前对象上找不到某个属性或方法,会继续往原型链上查找。

  4. 作用域链是指变量和函数的作用域嵌套关系所形成的链条。当访问一个变量时,JavaScript引擎会沿着作用域链逐级向上查找,直到找到该变量或到达全局作用域。作用域链决定了变量的可访问范围。

  5. this是在函数执行时自动创建的一个特殊对象,代表当前调用该函数的对象。具体指向哪个对象取决于函数调用方式:普通函数中this指向全局对象(浏览器环境下为window),而在构造函数中this指向新创建的实例对象。

  6. new操作符主要做以下几件事情:创建一个空对象;将空对象的proto属性设置为构造函数的prototype属性;将构造函数中的this指向空对象,并执行构造函数代码;返回这个新对象。

  7. bind、call、apply都是用来改变函数内部的this指向。

  • bind返回一个新函数,并永久绑定了传入bind()方法的第一个参数作为新函数内部的this值。
  • call和apply立即执行被调用的函数。
  • call以参数列表形式传入参数,apply以数组形式传入参数。
  1. 执行上下文是JavaScript在执行代码时的环境,包含了变量、函数声明、作用域链等信息。执行栈是用来管理执行上下文的数据结构,遵循先进后出的原则。

  2. JavaScript中的事件模型基于浏览器的事件机制,通过绑定事件处理函数来响应用户操作或其他触发条件。常见的事件有点击事件、鼠标移动事件、键盘事件等。

  3. 事件代理(也称为事件委托)是指将一个元素的事件处理委托给其父元素或更上层元素进行处理。应用场景包括减少监听器数量、动态添加/删除元素时依然能够处理事件等。

  4. 闭包是指函数和对其周围状态(词法环境)的引用捆绑在一起形成的实体。闭包可以让内部函数访问外部函数的变量和参数,并保持对它们的持久引用。常见使用场景包括封装私有变量和实现柯里化等。

  5. JavaScript中类型转换涉及隐式类型转换和显式类型转换两种方式。隐式类型转换是由JavaScript自动进行的,而显式类型转换需要通过特定方法或操作符来完成,如String()、Number()、parseInt()等。

  6. 浅拷贝只复制对象或数组的引用,而深拷贝会创建一个新的对象或数组,并递归复制所有嵌套的对象和数组。实现深拷贝可以使用递归遍历、JSON.stringify和JSON.parse等方法。

  7. 函数缓存是指将函数的输入参数与对应的输出结果进行缓存,以避免重复计算。常见应用场景包括斐波那契数列、阶乘等需要频繁计算且结果不变的场景。

  8. JavaScript中处理字符串常用的方法有:substring, substr, slice, indexOf, lastIndexOf, charAt, toUpperCase, toLowerCase等。

  9. 数组常用方法包括:push, pop, shift, unshift, splice, concat, slice, join, reverse等。

  10. 事件循环是JavaScript中异步编程模型的基础。它控制着代码中各种任务(同步任务和异步任务)的执行顺序,保证任务按照一定规则被执行。

  11. JavaScript本地存储方式包括:

  • localStorage:可长期保存数据,并且在同源窗口间共享。
  • sessionStorage:只在当前会话有效,关闭窗口后数据销毁。
  • Cookie:在浏览器端保存小段数据,可以设置过期时间。
  • IndexedDB:提供了一个类似数据库的环境,支持大容量、离线存储数据。
  1. 实现大文件断点续传需要使用分片上传的方式,将文件拆分为多个小块进行上传,并记录已上传的块信息。在网络中断或终止后,可以根据已上传的块信息恢复上传进度。

  2. AJAX (Asynchronous JavaScript and XML) 是一种用于创建异步请求的技术。它通过XMLHttpRequest对象与服务器进行通信,实现页面部分刷新和数据交互等功能。具体实现包括创建XHR对象、设置请求参数、发送请求并处理响应等步骤。


    内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=10656

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?