js常见面试题整理

这篇具有很好参考价值的文章主要介绍了js常见面试题整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1:JavaScript 有哪些数据类型

答: JavaScript 的数据类型分为原始类型和对象类型。

原始类型有 7 种,分别是:

  • Boolean
  • Number
  • BigInt
  • String
  • Null
  • Undefined
  • Symbol

对象类型(也称引用类型)是一个泛称,包括数组、对象、函数等一切对象。

 2:typeof null 的结果是什么

typeof null; // 'object'

判断一个类型为 null 可以这么写,直接判断变量全等于 null

let a = null;
if (a === null) {
  // do something
}

 3:原始类型和引用类型的区别是什么

js常见面试题整理

  4:typeof 和 instanceof 的区别是什么

答:

  • typeof 运算符用来判断数据的类型。
  • instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上,也可以用来判断数据的类型。
    • typeof 返回一个变量的类型字符串,instanceof 返回的是一个布尔值。
    • typeof 可以判断除了 null 以外的基础数据类型,但是判断引用类型时,除了 function 类型,其他的无法准确判断。
    • instanceof 可以准确地判断各种引用类型,但是不能正确判断原始数据类型。

 5:Symbol 解决了什么问题

答:Symbol 是 ES6 时新增的特性,Symbol 是一个基本的数据类型,表示独一无二的值,主要用来防止对象属性名冲突问题。 

ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的属性,新属性的名字就有可能与现有属性的名字产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES6 引入 Symbol 的原因之一。

Symbol 值通过 Symbol 函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol 类型。凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。

代码演示如下:文章来源地址https://www.toymoban.com/news/detail-468928.html

const obj = {
  name: "lin",
  age: 18,
};

obj.name = "xxx"; // 给 obj.name 赋值,把以前的 name 覆盖了
console.log(obj); // { name: 'xxx', age: 18 }
const obj = {
  name: "lin",
  age: 18,
};
const name = Symbol("name");

obj[name] = "xxx"; // 使用 Symbol,不会覆盖

console.log(obj); // { name: 'lin', age: 18, Symbol(name): 'xxx' }
console.log(obj.name); // 'lin'
console.log(obj[name]); // 'xxx'

到了这里,关于js常见面试题整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习Node.js需要哪些JavaScript知识

    Lexical Structure ( 词法 ) JavaScript 的词法(lexical grammar)。ECMAScript 源码文本会被从左到右扫描 ,并被转换为一系列的输入元素,包括 token、控制符、行终止符、注释和空白符。ECMAScript 定义了一些、字面量以及行尾分号补全的规则。 Expressions ( 表达式 ) JavaScript 中的

    2024年02月03日
    浏览(32)
  • 常见面试题之HashMap

    1.1 二叉树概述 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只有左子节点,有的节点只有右子节点。 二叉树每个节点的左子树和右子树也分别满足二叉树的定义

    2024年02月16日
    浏览(26)
  • 前端常见面试题

    HTML语义化的理解 b 和 strong 的区别 link 和 @import 有什么区别 defer 和 async HTML5离线储存 盒子模型 居中常见方法 BFC flex布局 em 和 rem的区别 CSS 中哪些属性可以继承 CSS中position定位 三栏布局 闭包 原型和原型链 继承 this Promise async 和 await 深拷贝 和 浅拷贝 防抖 和 节流 cookie、s

    2024年02月10日
    浏览(33)
  • Java并发常见面试题

    何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行程序,是一个进程从创建、运行到消亡的过程。 在Java中,当我们启动main函数时其实就是启动了一个JVM的进程,而main函数所在的线程就是这个进程中的一个线程,也称主线程

    2024年02月05日
    浏览(33)
  • JVM常见面试题

    0x01. 内存模型以及分区,需要详细到每个区放什么。 栈区: 栈分为 java虚拟机栈 和 本地方法栈 重点是Java虚拟机栈,它是线程私有的,生命周期与线程相同。 每个方法执行都会创建一个栈帧,用于存放局部变量表,操作栈,动态链接,方法出口等 。 每个方法从被调用,直

    2024年02月12日
    浏览(29)
  • ZooKeeper常见面试题

    1、Zookeeper是什么框架 分布式的、开源的分布式应用程序协调服务,原本是Hadoop、HBase的一个重要组件。 应用场景 Zookeeper的功能很强大,应用场景很多,结合我实际工作中使用Dubbo框架的情况,Zookeeper主要是做注册中心用。 基于Dubbo框架开发的提供者、消费者都向Zookeeper注册

    2024年02月10日
    浏览(27)
  • Elasticsearch 常见面试题

    ElasticSearch 设计的理念就是 分布式搜索引擎 ,底层其实还是基于 lucene 的。 核心思想 就是在 多台机器上启动多个 ES 进程实例,组成了一个 ES 集群。 集群: ElasticSearch 设计的理念就是 分布式搜索引擎 ,底层其实还是基于 lucene 的。 核心思想 就是在 多台机器上启动多个 E

    2024年02月16日
    浏览(31)
  • PHP常见面试题

    一. 基本知识点 1.1 HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302。。。 200 : 请求成功,请求的数据随之返回。 301 : 永久性重定向。 302 : 暂时行重定向。 401 : 当前请求需要用户验证。 403 : 服务器拒绝执行请求,即没有权限。 404 : 请求失败,请求的数据在服务器上未发

    2024年02月08日
    浏览(23)
  • web前端常见面试题

    DOCTYPE(文档类型)是 HTML 文档的开头,它指定了 HTML 文档使用的 HTML 版本及文档类型,告诉浏览器以哪种规范来解析 HTML 文档。它的作用有以下几个方面: 声明 HTML 版本:DOCTYPE 声明可以让浏览器知道使用哪个 HTML 版本来解析当前文档,从而根据规范来处理文档中的元素和属

    2024年02月07日
    浏览(29)
  • 高级前端常见面试题合集

    常见的图片格式及使用场景 (1) BMP ,是无损的、既支持索引色也支持直接色的点阵图。这种图片格式几乎没有对数据进行压缩,所以BMP格式的图片通常是较大的文件。 (2) GIF 是无损的、采用索引色的点阵图。采用LZW压缩算法进行编码。文件小,是GIF格式的优点,同时,

    2024年02月07日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包