js面试题2024

  • 1.js的数据类型

boolean number string null undefined bigint symbol object
按存储方式分,前面七种为基本数据类型,存储在栈上,object是引用数据类型,存储在堆上,在栈中存储指针
按es标准分,bigint 和symbol是es6新增的数据类型,bigint存储大整数,symbol解决全局属性名冲突的问题

  • 2.js数据类型检测的方式
typeof 2 //number
typeof true //boolean
typeof 'srt' //string
typeof undefined //undefined
typeof null //object
typeof 1n //bigint
typeof Symbol() //symbol
typeof {} //object
typeof [] //object
typeof function(){} //functionObject.prototype.toString().call()([] instanceof Array)
(function(){} instanceof Function)
({} instanceof Object)
//instanceof只能用于对象,返回布尔值(2).constructor===Number//true(true).constructor===Boolean//true
  • 3.判断数组类型的方式有那些
//1.通过原型判断
const a=[]
const b={}
a instanceof Array
Array.prototype.isPrototypeOf(a)
a.__proto__===Array.prototype
//2.通过object.prototype.tostring.call()
const a=[]
Object.prototype.toString().call(a)
//3.es6的array.isarray()
Array.isArray(a)
  • 4.null和undefined的区别

undefinde代表为定义,变量声明了但未初始化是未定义
null代表空对象,一般用作某些对象变量的初始化值
undefined==void 0
typeof null=object null的地址是0和对象的地址相同

    1. 0.1+0.2!==0.3
// 方法一:放大10倍之后相加在缩小十倍
//方法二:封装浮点数相等的函数
function feg(a,b){return Math.abs(a-b)<Number.EPSILON
}
feg(0.1+0.2,0.3)
  • 6.空类型
[]==false//true
Boolean([])//true
Number([])//0
  • 7.包装类型
const a='abc'
a.length//3
a.toUpperCase()//'ABC'
const c=Object('abc')
const cc=Object('abc').valueOf()
  • 8.new做了什么工作

1.创建了一个新的空对象object
2.将新空对象与构造函数通过原型链连接起来
3.将构造函数中的this绑定到新建的object上并设置为新建对象result
4.返回类型判断

function MyNew(fn,...args){const obj={}obj.__proto__=fn.prototypelet result=fn.apply(obj,args)return result instanceof Object?result:obj
}
function Person(name,age){this.name=namethis.age=age
}
Person.prototype.sayHello=function(){console.log(this.name)
}
const person=MyNew(Person,'test',20)
person.sayHello()
  • 9.继承
//1.原型链继承function Sup(){this.prop='sup'}Sup.prototype.show=function(){}function Sub(){this.prop='sub'}Sub.prototype=new Sup()Sub.prototype.constructor=SubSub.prototype.show=function(){}
//2.构造函数继承function Person(name,age){this.name=namethis.age=age}function Student(name,age,price){Person.call(this,name,age)this.price=price}
//3.原型链加构造函数function Person(name,age){this.name=namethis.age=age}Person.prototype.show=function(){}function Student(name,age,price){Person.call(this,name,age)this.price=price}Student.prototype=new Person()Student.prototype.constructor=PersonStudent.prototype.show=function(){}//4.class extendsclass Animal{constructor(kind){this.kind=kind}}class Cat extends Animal{constructor(kind) {super.constructor(kind);}}
  • 10.深拷贝
    function deep(p,c){let c = c||{}for(let i in p){if(typeof p[i]==='object'){c[i]=p[i].constructor=='Array'?[]:{}deep(p[i],c[i])}else{c[i]=p[i]}}return c}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP框架讲解 - symfony框架

Symfony 框架概述 Symfony 是一个用于构建 web 应用的 PHP 框架&#xff0c;它遵循 MVC&#xff08;模型-视图-控制器&#xff09;模式&#xff0c;并且具有高度的可定制性。Symfony 是一个组件库&#xff0c;它提供了许多用于构建现代 web 应用的工具和功能。以下是对 Symfon…

布隆过滤器 redis

一.为什么要用到布隆过滤器&#xff1f; 缓存穿透&#xff1a;查询一条不存在的数据&#xff0c;缓存中没有&#xff0c;则每次请求都打到数据库中&#xff0c;导致数据库瞬时请求压力过大&#xff0c;多见于爬虫恶性攻击因为布隆过滤器是二进制的数组&#xff0c;如果使用了它…

FLD工作日志

在FLD的工作日志 一、技能掌握杨总经验的传输 一、技能掌握 06.12 学会如何看小产品的代码&#xff0c;看的消毒灯 07.08 1.学会嘉立创eda 杨总经验的传输 07.07 什么能做就做什么&#xff0c;一刻也不要停不要看不起简单的事情&#xff0c;量变引起质变

科普文:K8S中常见知识点梳理

简单说一下k8s集群内外网络如何互通的 要在 Kubernetes&#xff08;k8s&#xff09;集群内外建立网络互通&#xff0c;可以采取以下措施&#xff1a; 使用service&#xff1a; 使用Service类型为NodePort或LoadBalancer的Kubernetes服务。这可以使服务具有一个公共IP地址或端口…

怎么发顶会论文

AI顶会论文成功发表路径四&#xff1a;写作关_哔哩哔哩_bilibili 全集都有&#xff0c;随手记录一下。 讲的很好&#xff0c;我多努力。努力靠近一下。

Open3D 计算点云的平均密度

目录 一、概述 1.1基于领域密度计算原理 1.2应用 二、代码实现 三、实现效果 2.1点云显示 2.2密度计算结果 一、概述 在点云处理中&#xff0c;点的密度通常表示为某个点周围一定区域内的点的数量。高密度区域表示点云较密集&#xff0c;低密度区域表示点云较稀疏。计算…

Redis连接Resp图形化工具和springboot

Redis连接Resp图形化工具和springboot 1.redis配置1.1 备份、修改conf文件1.2 Redis的其它常见配置&#xff1a;1.3 启动Redis&#xff1a;1.4 停止服务&#xff1a;1.5 开机自启&#xff1a; 2. resp的安装、配置和连接&#xff1a;2.1 GitHub上下载2.2 开始连接redis ![在这里…

Java 集合框架:Java 中的 Set 集合(HashSet LinkedHashSet TreeSet)特点与实现解析

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 017 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…

运营商二三要素是什么?有什么意义

运营商的二要素和三要素通常指的是在用户身份验证过程中所使用的关键信息。这些要素在保障用户信息安全、防止诈骗犯罪、维护社会秩序等方面具有重要意义。 运营商二要素 运营商二要素指的是在身份验证过程中&#xff0c;需要验证的两个关键信息&#xff0c;通常是&#xff1a…

C++初探究

概述 C可以追溯到1979年&#xff0c;C之父Bjarne Stroustrup在在使用C语言研发工作时发现C语言的不足&#xff0c;并想要将其改进&#xff0c;到1983年&#xff0c;Bjarne Stroustrup在C语言的基础上添加了面向对象编程的特性&#xff0c;设计出了C的雏形。 网址推荐 C官方文…

Docker:WARNING: Published ports are discarded when using host network mode 解决方法

在Docker中&#xff0c;使用主机网络模式&#xff08;host network mode&#xff09;时&#xff0c;容器将共享主机的网络命名空间&#xff0c;这意味着容器将直接使用主机的网络接口和端口。因此&#xff0c;当你尝试通过Docker的发布端口功能&#xff08;publish a port&…

如何在uniapp中使用websocket?

websocket是我们经常使用到的接口,通常用于即时通讯以及K线图这种需要实时更新数据的业务需求上,传统的restful接口虽然可以满足,但是你需要轮询,这就要额外写一堆代码,不是很方便,用websocket就简单很多,我们来看代码 第一步定义全局常量、变量 const config = {host…

ActiViz实战:ActiViz实现体绘制裁剪

文章目录 效果预览关键代码源码地址效果预览 ActiViz体绘制裁剪 关键代码 1、实现体绘制 FolderBrowserDialog folderDialog = new FolderBrowserDialog(); folderDialog.SelectedPath = "E:\\S100"; string

王老师 linux c++ 通信架构 笔记(三)安装 xftp、

&#xff08;11&#xff09;调整 xshell 终端的字体大小&#xff0c;默认字体大小是 9 &#xff1a; &#xff08;12&#xff09; 共享文件夹 hgfs 的含义&#xff1a; &#xff08;13&#xff09;安装 xftp &#xff0c; 傻瓜式安装&#xff0c;出了修改下默认安装位置。 操作…

.locked勒索病毒解析与防护指南

引言 随着信息技术的飞速发展&#xff0c;网络安全问题日益严峻&#xff0c;其中勒索病毒成为威胁企业和个人数据安全的重要隐患之一。在众多勒索病毒家族中&#xff0c;.locked勒索病毒以其独特的加密方式和广泛的传播途径&#xff0c;引起了广泛的关注。本文将从多个方面详细…

使用redis-cli查找大key

执行命令 涉及redis-cli 连接和登录&#xff0c;请查看&#xff1a;Redis-cli 连接Redis-CSDN博客 redis-cli -h <redis_instance_address> -p <port> -a <password> --bigkeys<redis_instance_address>&#xff1a; Redis 实例的 IP 地址。 <p…

opencv 鱼眼图像的矫正(动态参数调整)

一&#xff1a;棋盘校准参数说明(内参) 棋盘校准的方法及代码很多&#xff0c;参见其他连接 1&#xff1a;内参矩阵 2&#xff1a;畸变系数 针对鱼眼相机此处是4个参数&#xff0c;在其校准代码中也可以知道&#xff0c;其通常的定义如下&#xff1a; data.camera_mat np.e…

报修小程序论文(设计)开题报告

一、课题的背景和意义 近些年来&#xff0c;随着移动互联网巅峰时期的来临&#xff0c;互联网产业逐渐趋于“小、轻、微”的方向发展&#xff0c;符合轻应用时代特点的各类技术受到了不同领域的广泛关注。在诸多产品中&#xff0c;被誉为“运行着程序的网站”之名的微信小程序…

uniapp-小程序获取用户位置

1. 需要在微信公众平台进行接口的申请。选择自己需要用的接口。 2. 在app.json文件中配置permission和requiredPrivateInfos。requiredPrivateInfos里面是你需要使用的接口。 3. 配置完成后&#xff0c;就可以使用了。 相关获取位置API的链接 4. 如果要获取当前位置到某一个指…

【在 OpenResty 中使用 Lua 获取服务器自身的 IP 地址】

要在 OpenResty 中使用 Lua 获取服务器自身的 IP 地址&#xff0c;可以使用 Lua 结合系统命令来获取本地网络接口的 IP 地址。以下是一个示例&#xff0c;展示如何实现这一点&#xff1a; 修改你的 nginx.conf 文件&#xff0c;添加一个新的 location 块来处理获取本地 IP 地址…