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日
    浏览(45)
  • Redis 常见面试题

    答案:Redis是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(string)、哈希(Hash)、列表(list)、集合(sets)、有序集合(sorted sets)等类型。Redis因其出色

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

    用缓存,主要有两个用途: 高性能 、 高并发 。 高性能 假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作 mysql,半天查出来一个结果,耗时 600ms。但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用户。那么此时咋办

    2023年04月09日
    浏览(49)
  • RabbitMQ 常见面试题

    流量削峰 代码解耦 异步处理 简单消息模型 功能:一个生产者P发送消息到队列Q,一个消费者C接收。实现了基本的消息的生产和消费。一对一。 工作队列 功能:一个生产者,多个消费者。写法与基本消息模型类似,只不过原来是一个消费者,现在是多个消费者。多个消费者处

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

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

    2024年02月10日
    浏览(38)
  • 常见面试题分享1

    1.1 什么是JVM?     JVM(Java Virtual Machine),俗称Java虚拟机。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。 1.2 内部结构 JVM的内部体系

    2024年02月16日
    浏览(38)
  • Redis的常见面试题

    目录 前言 Redis支持哪些数据类型 五种核心类型  Zset为什么用跳表不用红黑树 ? Redis常见的应用场景?   如何检测Redis的连通性? 如何设置key的过期时间?  Redis为什么是单线程模型?  Redis里的IO多路复用是什么?  RDB的持久化机制有哪些?  AOF的重写机制是怎么样的?

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

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

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

    React 是一个用于构建用户界面的 JavaScript 库。它由 Facebook 开发,被认为是 MV* 模式中 V(视图)层的一部分。React 的核心思想是组件化编程,通过将应用切分成多个组件,开发者可以更 小而简单地管理代码,并且复用性更高。 优点: 高效:React使用虚拟DOM技术,可以最小化

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

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

    2024年02月12日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包