Js面试之数据类型相关

Js之数据类型

  • 都有哪些数据类型?
  • 不同数据类型如何转换?
  • 数据类型检测方法有哪些?
  • 为什么说Js是动态数据类型?
  • 为什么说Js是弱类型语言?

最近在整理一些前端面试中经常被问到的问题,分为vue相关、react相关、js相关、react相关等等专题,可持续关注后续内容,会不断进行整理~

Javascript的数据类型是一个基础考点,本文总结相关面试题:

都有哪些数据类型?

基本数据类型包括:Number、String、Boolean、Null、Undefined、Symbol(Es6新增),引用数据结构包括Object、Array、Function;

不同数据类型如何转换?

  • 转换为字符串的方法有:toString() 、String() 以及+拼接方法;
  • 转换为数字的方法有: parseInt()、parseFloat()、Number以及-*/的隐式转换;
  • 转换为布尔值的方法有:Boolean()

数据类型检测方法有哪些?

  • typeof方法,使用此方法可以进行基本的数据类型检测
let name = 'dididi'
console.log(typeof name) // String
  • instance of方法,该方法可以进行具体的类型检测,一般用于检测对象是否是某个构造函数的实例
// 定义一个构造函数
function Car(make, model) {this.make = make;this.model = model
}// 创建一个Car的实例
let myCar = new Car('Toyota', 'Corolla');// 使用instanceof 检测对象类型
if (myCar instanceof Car) {console.log('myCar是Car的实例')// myCar是Car的实例
} else {console.log('myCar不是Car的实例')
}

为什么说Js是动态数据类型?

说js是动态数据类型主要是因为如下原因:

  1. 类型检测发生在运行时,在Javascript中,变量的类型是在运行时确定的,而不是在编译时确定的,这意味着可以在代码执行过程中改变变量的类型;
  2. 变量可以在不同时刻持有不同的类型,同一个变量在程序的不同阶段可以持有不同类型的值,而不会事先声明其类型;
let exampleVariable = 42; // number
console.log(typeof exampleVariable); // 输出 "number"exampleVariable = "Hello, JavaScript!"; // string
console.log(typeof exampleVariable); // 输出 "string"

这种动态性使得JavaScript更加灵活,但也可能导致在运行时出现类型错误,因此需要更小心的处理类型;

为什么说Js是弱类型语言?

说js是弱数据类型主要是因为如下原因:

  1. 松散的类型转换,Js对于不同类型的值进行操作时,会自动进行类型转换,而无需显示的类型声明或转换,这种自动类型转换称为弱类型;
  2. 比较运算符的隐式类型转换,在进行比较操作时,Js会隐式的将值转换为相同的类型,然后再进行比较;
console.log(1 == "1"); // 输出 true,因为 "1" 会被转换为数字 1

这种隐式的类型转换可能会导致一些不太直观的行为,因此在比较时需要注意

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

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

相关文章

MySQL 8.0 架构 之错误日志文件(Error Log)(1)

文章目录 MySQL 8.0 架构 之错误日志文件(Error Log)(1)MySQL错误日志文件(Error Log)MySQL错误日志在哪里Window环境Linux环境 错误日志相关参数log_error_services 参考 【声明】文章仅供学习交流&#x…

【昕宝爸爸小模块】深入浅出之POI是如何做大文件的写入的

➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你👍点赞、🗂️收藏、加❤️关注哦。 本文章CSDN首发,欢迎转载,要注明出处哦! 先感谢优秀的你能认真的看完本文&…

酷狗音乐逆向(js逆向)

免责声明:     本篇博文的初衷是分享自己学习逆向分析时的个人感悟,所涉及的内容仅供学习、交流,请勿将其用于非法用途!!!任何由此引发的法律纠纷均与作者本人无关,请自行负责!&…

使用easyexcel 导出多级表头demo

先看效果&#xff1a; 1、引入maven依赖 <!--EasyExcel --> <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.1</version> </dependency> 2、实体类 package com.…

Spring框架面试题

目录 1.Spring中bean的生命周期 2.Spring中bean的循环依赖 3.SpringMVC执行流程 4.Springboot自动装配原理 5.Spring框架常见注解(Spring、Springboot、SpringMVC) 6.mybatis执行流程 7.mybatis延迟加载使用及原理 8.mybatis一级、二级缓存 1.Spring中bean的生命周期 2.…

Unity向量叉乘

叉乘计算公式 Unity中叉乘计算 Vector3.Cross(A.position, B.position); 几何意义 假设向量A和B 都在XZ平面上 向量A叉乘向量B y大于0 证明 B在A右侧 y小于0 证明 B在A左侧 示例 Vector3 C Vector3.Cross(A.position, B.position); if(C.y > 0) {print("B在A右侧&qu…

rust跟我学六:虚拟机检测

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么检测是否在虚拟机里运行的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:…

网络攻防和CTF有什么区别和关系?

网络攻防和CTF&#xff08;Capture The Flag&#xff09;之间存在着密切的联系和区别。在理解它们的关系之前&#xff0c;我们需要先了解每个概念的含义和特点。 网络攻防是一种针对网络系统的攻击和防御技术&#xff0c;主要涉及黑客攻击和安全防护两个方面。攻击方会利用各…

基于改进凸优化算法的多机编队突防航迹规划

源自&#xff1a;系统工程与电子技术 作者&#xff1a;刘玉杰, 李樾, 韩维, 崔凯凯 “人工智能技术与咨询” 摘要 为更好地发挥多机编队在低空突防作战中的优势, 对已有的凸优化算法进行改进, 提出一种多机编队低空突防航迹规划方法。首先, 根据低空突防任务特点进行问题建…

课表排课小程序怎么制作?多少钱?

在当今的数字化时代&#xff0c;无论是购物、支付、点餐&#xff0c;还是工作、学习&#xff0c;都离不开各种各样的微信小程序。其中&#xff0c;课表排课小程序就是许多教育机构和学校必不可少的工具。那么课表排课小程序怎么制作呢&#xff1f;又需要多少钱呢&#xff1f; …

electron+vue项目使用serialport报错Cannot read property ‘indexOf‘ of undefined解决办法

描述 使用ElectronVue项目时引入serialport串口后启动时报下面错误 Cannot read property indexOf of undefined解决方法 打开vue.config.js找到pluginOptions -> electronBuilder -> externals添加serialport module.exports {pluginOptions: {electronBuilder: {e…

MBTI+大模型=甜甜的恋爱?美国新年AI裁员潮;中国大模型人才分布图;20分钟览尽NLP百年;Transformer新手入门教程 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f251; GenAI 是美国「2024 年裁员潮」罪魁祸首吗&#xff1f;来看几组数据 https://www.trueup.io/layoffs 补充一份背景&#xff1a;&#…

Javaassist:编写字节码,改变Java的命运

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Javaassist&#xff1a;编写字节码&#xff0c;改变Java的命运 前言javaassist简介基本用法高级技巧实际应用与示例与其他字节码工具的对比结语 前言 Java是一门强大的编程语言&#xff0c;但有时候&…

【印象深刻的实战经历】两次全国大学生数学建模经历分享

目录 &#x1f33c;初次接触 初次参加培训 分享培训所得 比赛开始 &#x1f525;再次接触 参加校赛 机缘巧合 再次培训 比赛开始 &#x1f4d5;技巧总结 从问题的实际意义分析大体上可分为 从问题的解决方法上分析 做国赛题目的步骤 赛前准备 选题 寻找思路…

vue二次封装ant-design-vue中的Modal弹窗组件,实现拖拽,全屏两种功能,原有参数属性不变

在我们的项目的有的地方需要用弹框的拖拽&#xff0c;以及弹窗自定义全屏显示的需求&#xff0c;所以再次将二次合一&#xff0c;同时弹框里面内容自适应屏幕高度 在ant-design-vue中&#xff0c;已经实现了拖拽&#xff0c;全屏的功能&#xff0c;下面是ant官网的示例 自定义…

开发实践6_project

要求&#xff1a; ① 页面写入超链接&#xff0c;获取所有数据item&#xff0c;显示在另一个页面&#xff0c;1min内&#xff0c;即使数据有变化&#xff0c;页面内容不变&#xff0c;1min后点击超链接可获取最新信息&#xff1b; ② 使用middleware完成用户请求路径判断 &am…

Spring MVC学习之——数据传递(在页面上添加数据)

Spring MVC之——数据传递 1.ModelAndView传递 编写controller Controller RequestMapping("/account") public class AccountController {//也可以不创建ModelAndView&#xff0c;直接在参数中指定RequestMapping(value "/findAccount9")public ModelAn…

一篇综述洞悉医学大型语言模型的原理,应用和挑战

在过去的一年中&#xff0c;随着 GPT-4、LLaMA、Mistral&#xff0c;PaLM 等先进技术的突飞猛进&#xff0c;大型语言模型&#xff08;Large Language Models&#xff09;已经引领全球人工智能进入了一个全新的基础模型时代&#xff0c;这一时代不仅开启了技术创新的新篇章&…

《微信小程序开发从入门到实战》学习八十五

6.15 设备API 6.15.2 添加联系人API 使用wx.addPhoneContact接口可以在用户的手机通讯录中添加联系人信息。用户可以选择“新增联系人”或“添加到已有联系人”。该接口接受Object参数&#xff0c;参支持属性如下所示&#xff1a; firstName&#xff1a;必填&#xff0c;名字…

微信小程序vue+uniapp瑜伽馆课程预约选课管理系统

本文对该站点以及对其进行了全面的剖析&#xff0c;为瑜伽馆管理系统的发展带来了借鉴。瑜伽馆管理系统小程序对于瑜伽馆起到了很好的引导作用&#xff0c;特别是对于地方瑜伽馆的处理起到了很大的作用。 按照已有的功能&#xff0c;除了管理员外&#xff0c;还可以对系统中的全…