js 数据类型、类型转换

机器学习面试笔试求职必背!八股文(1/5) 算法工程师,技术软件类求职机器学习必背八股文 更多算法/业务/HR面等笔试题面试题 —— >个性签名自取! 1. 特征工程: 1.1 为什么要对特征做归一化处理: Feature scaling,常见的提法有“特征归一化”、“标准化”,是数据预处理中的重要技术。特征间的单位(尺度)可能不同,比如身高和体重,比如摄氏度和华氏度,比如房屋面积和房间数,一个特征的变化范围可能是[ 1000 , 10000 ] [1000, 10000][1000,10000],另一个特征的变化范围可能是[ −. 阅读详情

目录

数据类型

基本类型

引用类型

二者区别:

==  与 === 

类型转换

比较运算

x == y, 算法流程如下:

加法运算

对象转换


数据类型

基本类型

共7种,也被称为值类型,是一种既非对象也无方法的数据。包括:string、number、bigint、boolean、null、undefined、symbol。

引用类型

对象(Object)、数组(Array)、函数(Function)、Date、RegExp、基本包装类型(String、Number、Boolean、BigInt、Symbol)以及单体内置对象(Global、Math)

二者区别:

  • 基本类型
    • 基本类型的值是不可改变的。
    • 基本类型的值保存在栈中。
    • 基本类型的比较是值的比较。
    • 保存与复制的是值本身。
    • 使用typeof检测数据的类型。
  • 引用类型
    • 引用类型可以拥有属性和方法,并且是可以动态改变的.
    • 引用类型的值是同时保存在栈内存和堆内存中的对象。
    • 引用类型的比较是地址的比较。
    • 保存与复制的是指向对象的一个指针。
    • 使用instanceof检测数据类型。

==  与 === 

对于引用类型的变量,==和===只会判断引用的地址是否相同,而不会判断对象具体里属性以及值是否相同。因此,如果两个变量指向相同的对象,则返回true.
如果是不同的对象,即使包含相同的属性和值,也会返回false
示例:

var arrRef = ["Hi!"];
var arrRef2 = arrRef;
console.log(arrRef === arrRef2); // true

var arr1 = ["Hi!"];
var arr2 = ["Hi!"];
console.log(arr1 === arr2); // false

示例:

var a,b;
a = "zyj";
b = a;

a.toUpperCase();
console.log(a);   // zyj
console.log(b);   // zyj

a = "呵呵";       // 改变 a 的值,并不影响 b 的值
console.log(a);   // 呵呵
console.log(b);   // zyj

示例:

var a = {name:"percy"};
var b;
b = a;
a.name = "zyj";
console.log(b.name);    // zyj

b.age = 22;
console.log(a.age);     // 22
var c = {
  name: "zyj",
  age: 22
};

内存结构图如下:

类型转换

显式调用Boolean(value)、Number(value)、String(value)完成的类型转换,叫做显示类型转换。

比较操作或者加减乘除四则运算操作时,常常会触发 JavaScript 的隐式类型转换。隐式类型转换时,绝大多数情况下都是优先转为number型。

js内部用于实现类型转换的4个函数是:

  • ToPrimitive ( input [ , PreferredType ] ), 转换为原始对象,即基本类型,依赖于valueOf和toString的实现(先valueOf,再toString)
  • ToBoolean ( argument ),除了以下(undefined、null、-0/+0、NaN、'')五个值的转换结果为false,其他的值全部为true
  • ToNumber ( argument )
  • ToString ( argument )

比较运算

JavaScript 为我们提供了严格比较与类型转换比较两种模式,严格比较(===)只会在操作符两侧的操作对象类型一致,并且内容一致时才会返回为 true,否则返回 false。
而更为广泛使用的 == 操作符则会首先将操作对象转化为相同类型,再进行比较。对于 <= 等运算,则会首先转化为原始对象(Primitives),然后再进行对比。

x == y, 算法流程如下:

  1. x或y中有一个为NaN, 则返回false;
  2. x或y都为null或undefined中的一种,则返回true(null == undefined),否则返回false(null == 0);
  3. x或y类型不一致,且为String,Number,Boolean中的一种,则x、y转为Number再比较;
  4. x或y中有一个为Object,则将其转为原始类型,再进行比较;

优先比类型,再比null与undefined,再比string和number,再比boolean与any,再比object与string、number、symbol;
以上如果转为原始类型比较,则进行类型转换,直到类型相同再比较值的大小。这就是==的隐式转换对比

示例:

[] == ![] //true
1. 基于运算符的优先级,运算![],[]转为boolean后为真值,取反后,变为![]==false
2. 任何类型与boolean比较,boolean转为number,即 []==0
3. []为对象,转为原始值,ToPrimitive先valueOf返回[],再toString返回''
4. 最后string转number,变为 0==0

加法运算

遇到算数运算符(- 、* 、/ 和 %)的时候会在运算之前将参与运算的双方转换成数字。而加法(+)运算有些特殊,只要其中一个操作数是字符串,那么它就执行连接字符串的操作。

加法(+)的算法如下:

  1. +号左右分别进行取值,进行ToPrimitive()操作,转为原始值;
  2. 分别获取左右转换之后的值,如果存在String,则对其进行ToString处理后进行拼接操作;
  3. 其他的都进行ToNumber处理;
  4. 在转换时ToPrimitive,除去Date为string外,都按照ToPrimitive 类型为Number进行处理;

示例:

1+'2'+false

1.左边取原始值,依旧是Number
2.中间为String,则都进行toString操作
3.左边转换按照toString的规则,返回'1',得到结果temp值'12'
4.右边布尔值和temp同样进行1步骤
5.temp为string,则布尔值也转为string'false'
6.拼接两者 得到最后结果 '12false'

对象转换

只有在 JavaScript 表达式或语句中需要用到数字或字符串时,对象才被隐式转换。 当需要将对象转换成数字时,需要以下三个步骤:

  1. 调用 valueOf()。如果结果是原始值(不是一个对象),则将其转换为一个数字。
  2. 否则,调用 toString() 方法。如果结果是原始值,则将其转换为一个数字。
  3. 否则,抛出一个类型错误

示例:

> 3 * { valueOf: function () { return 5 } }
15
第二章 HART硬件设计实战 — 基于SD2057的低功耗调制解调器电路详解与选型指南 本文详细解析了基于SD2057芯片的HART协议低功耗调制解调器硬件设计。通过对比分析,阐述了SD2057在成本与性能上的优势,并重点拆解了其核心电路、外围元件选型、原理图绘制要点及PCB布局的实战技巧,为工业现场仪表的智能通信模块开发提供了完整的低功耗解决方案。 阅读详情

相关推荐

大红球预警版-精选+自定义板块监控

这是一款简单易用的股票大单资金监控插件,兼容通达信软件,可嵌入分时图或定制版面。它以红绿圆球直观显示主力买卖情况(红球为买,绿球为卖),支持300万以上大单语音播报。插件提供实时资金流向分析、多股同时监控、自定义预警条件等功能,无需L2账号。用户可自由切换图形/列表模式,监控特定板块,并配合幻影软件实现自动交易。虽然上涨股通常红球占优,但需结合其他指标综合判断。该插件完全免费,包含详细视频教程,适合新手使用。

guleba的博客 1793

Javascript内置对象之String字符串对象:基本包装类型 字符串的不可变 根据字符返回位置 根据位置返回字符 字符串操作方法 替换字符 字符串转换为数组 字符串转换大/小写

Javascript内置对象之String字符串对象 一、基本包装类型 二、字符串的不可变 三、根据字符返回位置 四、根据位置返回字符 五、字符串操作方法 六、replace()替换字符的方法 七、split()字符串转换为数组方法 八、toUpperCase()转换为大写 九、toLowerCase()转换为小写

Echo_bx的博客 440

ADS(Arm Developer Suite)安装的坑!

实验课老师让我们区安装ADS,作为嵌入式开发的工具,原本以为这只是一个简单的软件,但是当我安装的时候,我才发现这软件太难了!安装了我大半天,看了其他的博客之后,最终才安装成功???????? 安装过程的一个巨坑就是:安装路径!以及安装许可注册文件 如果没有注意路径,最后安装成功以后打开软件就是蜜汁报错???? 报错了怎么办?删掉已安装的东西,重新安装吧,而且要删干净 再次安装的时候,打开安装包是这个提示...

weixin_42795819的博客 8218

JS基础总结—数据类型

JavaScript 是弱类型语言,而且 JavaScript 声明变量的时候并没有预先确定的类型,变量的类型就是其值的类型,也就是说变量当前的类型由其值所决定,夸张点说上一秒种的 String,下一秒可能就是个 Number 类型了,这个过程可能就进行了某些操作发生了强制类型转换。 js 数据分为两种类型:原始数据类型和引用数据类型。 基本数据类型有:string、number、boolean、...

W Y L 374

Unity地形优化实战:LOD、合批与HLOD打造流畅开放世界

在计算机图形学与游戏开发中,渲染优化是保障应用流畅运行的核心技术。其基本原理在于通过算法与策略,在视觉保真度与硬件资源消耗之间寻求最佳平衡,旨在提升帧率、降低功耗。这一技术的核心价值在于,它直接决定了大规模场景(如开放世界游戏)在性能受限平台(尤其是移动设备)上的可行性。具体到地形渲染这一关键应用场景,开发者需要综合运用多层次细节(LOD)技术来动态调整模型精度,并通过Draw Call合批(Batching)与GPU实例化(GPU Instancing)来大幅减少CPU到GPU的通信开销。对于超大规模世界

weixin_28077113的博客 332

ENSP:小型企业网络拓扑设计

包含的技术:ospf、dhcp中继、ac+ap、vrrp+mstp、acl、浮动路由、静态路由、vlan划分

weixin_45921302的博客 1万+

如何理解js中基本数据类型的值不可变

js的数据类型 在讲解我们要说明的问题之前,需要知道js有哪些数据类型。js有两种数据类型:基本数据类型和引用数据类型 基本数据类型:number、string、boolean、undefined、null、symbol 在 Java 中,字符串是引用类型 引用数据类型:Array、Function、Object 等 堆和栈 程序运行的时候,需要内存空间存放数据。一般来说,...

WinstonLau的博客 5715

MuMu模拟器过检测实战:从硬件伪装到API欺骗的完整避坑指南

本文详细介绍了MuMu模拟器过检测的实战技术,从硬件伪装到API欺骗的全方位解决方案。通过修改CPU/GPU信息、内存分布、系统属性和行为模拟等关键技术,帮助用户有效绕过现代应用的模拟器检测机制,提升模拟器的隐蔽性和稳定性。

xxx12的博客 1390

JavaScript 中的可变和不可变

javascript primitive/reference types, immutable, mutable concepts

学习笔记 1294

手把手教你用差分放大电路搭建LC振荡器(实测频率误差分析)

本文通过一个差分放大电路搭建LC振荡器的实践案例,深入分析了实测频率与理论值产生显著误差的原因。核心在于共模电感的互感效应改变了谐振回路的等效电感,导致频率偏差。文章提供了从电路搭建、误差根源剖析到波形优化与稳定性提升的完整解决方案,帮助电子爱好者深入理解模拟电路的实际行为。

svm4gardener的博客 541

三菱PLC FX3U温度控制系统案例

U0\G100是平均次数的设置,设置为100个数据取平均,这样数据显示更加稳定,通道1的数据显示再U0\G10里面,温度模块的数据对应是0~150°输出0~10V,对应到0~10000的数据10000是150°的66.667倍,因此把数据传送到D0后转换成浮点数,再去除以66.667,就得到实际的温度了,数据存放到D2。触摸屏软件使用EBpro软件,设计界面如下,右边的是温度的实时曲线图,左边的是温度报警表,当当前温度超过了报警温度这种时,就会在这个表格上显示对应对应的报警。(1)实时显示温度值;

u010670857的博客 4059

如何理解 String 类型值的不可变?

如何理解 String 类型值的不可变? 1. 什么是不可变对象? 2.String为什么不可变? 3. String类不可变性的好处,为什么要这样设计? 4.通过反射可以修改String类

时间果壳的博客 726

从零构建爬虫抓取故宫数字文物库:Python最新实战技术详解

熟悉了动态内容加载的网页结构解析技巧。掌握了 Playwright + BeautifulSoup 的组合用法。实现了从网页→JSON→详情→图像的完整数据闭环。掌握了结构化保存与可视化分析能力。

2201_76125261的博客 1307

JavaScript基础:js介绍、变量、数据类型以及类型转换

JavaScript 程序不能独立运行,它需要被嵌入 HTML 中,然后浏览器才能执行 JavaScript 代码。通过 script 标签( js代码)将 JavaScript 代码引入到 HTML 中

专注于前后端学习 1076

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【JS】javascript中的数据类型以及类型转换

一、数据类型分类: 基本类型6种 Number(数值): int、float、NaN、Infinity(除数为0) String(字符串) Boolean(布尔):true、false undefined(未定义):undefined null(空):null symbol(唯一)-- es6 引用类型种 Object(对象) 二、类型转换 进行类型转化的原因 数据之间的运算只有同类型之间的进行运算,如果不同类型之间存在运算的话,需要将其转换为同一种类型后再进行运算。 分类 (1)强制类型转换

qq_44742261的博客 798

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

web前端-JavaScript标识符和数据类型 强制类型转换_js 如何变更标识符

🐚作者简介:苏凉(专注于网络爬虫,数据分析,正在学习前端的路上)👑名言警句:海阔凭鱼跃,天高任鸟飞。📰要是觉得博主文章写的不错的话,还望大家三连支持一下呀!!!

2401_89225162的博客 1048

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

前端基础之JavaScript学习——变量、数据类型、类型转换

JavaScript学习之数组、变量、类型转换、基本输入输出等

PleaSure乐事的博客 972

JavaScript中的数据类型和类型转换问题

JavaScript中有一些自动类型转换的规则,但是在使用过程中,隐式类型转换可能会导致一些意外的问题。JavaScript是一种动态类型的编程语言,它的变量不需要在声明时指定类型,可以根据变量的值自动推断类型。例如,当一个值被转换为布尔类型时,JavaScript的规则可能会导致一些奇怪的结果。例如,在比较两个值时,如果它们的类型不同,JavaScript会自动将它们转换为相同的类型。虽然JavaScript中有一些自动类型转换的规则,但是在使用过程中,隐式类型转换可能会导致一些意外的问题。

tyxjolin的专栏 701

JavaScript 的数据类型与类型转换:你真的懂吗?

通过对 JavaScript 数据类型与类型转换的深入探讨,我们了解了原始类型和引用类型的区别,学会了如何使用隐式和显式转换来处理不同类型的数据。在实际开发中,理解这些概念非常重要,能够帮助我们避免一些常见的陷阱,提高代码的可读性和健壮性。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 1154

JavaScript数据类型与类型转换

JavaScript 字符串是表示文本数据的基本类型,用单引号。

2301_82023822的博客 759

初识JavaScript 、JS基础 、JS书写的的位置、 JS注释 、JS输出语句 、JS 变量 var 、JS用户输入 prompt、 JS数据类型、 JS数据类型检测、 JS类型转换

1.初识JavaScript 一个网页的组成: HTML 网页的结构。 CSS 网页的表现。 JavaScript 网页的行为, 用户与网页的交互, 网页的特效。 ECMA: ECMAScript:js语言的标准。 JavaScript:实现。 JavaScript组成 ECMAScript:js语言的语法。包含如何定义对象,定义变量,书写表达式等等。 BOM:操作浏览器部分功能。 比如:操作滚动条,操作历史记录。 DOM:操作网页上的元素。让元素移动,改变class属性值。图片

m0_55832273的博客 369

js数据类型、类型转换

js判断数据类型 <script type="text/javascript"> function my(){ var al; console.log(typeof (al));//undefined var ae=1; conso...

weixin_44944193的博客 8180

JavaScript基础(一)—— JS介绍、变量、常量、数据类型、类型转换

是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。网页特效(监听用户的一些行为让网页作出对应的反馈)表单验证(针对表单数据的合法性进行判断)数据交互(获取后台的数据, 渲染到前端)服务端编程(node.js)组成:ECMAScript( 基础语法 )、web APIs (DOM、BOM)。ECMAScrip规定了js基础语法核心知识。比如:变量、分支语句、循环语句、对象等等。Web APIsDOM操作文档,比如对页面元素进行移动、大小、添加删除等操作。

此心光明事上练的博客 1096

JavaScript基本数据类型中的类型转换

js中基本数据类型的类型转换 首先我们要先了解一下js的数据类型有哪些: js的数据类型分为 基本类型 和 引用类型 基本类型:String、Number、Boolean、undefined、null 引用类型:Array、Object、Function 而数据类型的转换又分为显式转换和隐式转换 显式转换 转换成number类型 String-----Number 1、字符串中是”整数或小数“或转化为相对应大小的数值 2、字符串中是”字母或者中文“会转换为NaN(NaN为一个特殊数字,没有任何意义)

dlf_0610的博客 251

JS的基本使用、基础语法、变量、数据类型和类型转换

基本使用 行内JS 内部JS 外部JS 注意:如果script标签设置了src属性,则在script双标签之间的JS代码不会生效 <body> <!-- JS的三种使用方式 1、行内JS 在html标签上直接写JS代码 2、内部JS 在script标签中写JS代码,script标签可以放在head中或body中(建议放在body标签最后) 3、外部JS 定义JS文件,通过script标签的src属性引入对应的JS.

m0_51258512的博客 436

JavaScript系列—JS数据类型、类型转换(二)

1. JS数据类型及相关操作 javascript数据类型: Number, String, Boolean, Undefined, Symbol Null Object(obj/[]/{}/null) typeof判断数据类型: "number","string","boolean","undefined","s...

jiaojsun的博客 312
上一篇: BFC。。
下一篇: JS 深浅拷贝
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值