javascript中的强制类型转换和自动类型转换

在这里插入图片描述

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

所属专栏:前端泛海
景天的主页:景天科技苑

文章目录

  • 1.转换函数
  • 2.强制类型转换
    • (1)Number类型强转
    • (2)字符串强转
    • (3)布尔强制类型转换
  • 3.自动类型转换

JS 数据类型转换 方法主要有三种

转换函数、强制类型转换、自动类型转换。

1.转换函数

js提供了parseInt(String) -->整数 和parseFloat(String)–> 浮点数。只有对String类型调用这些方法;对其他类型返回的都是NaN(Not a Number)。

在判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串。parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的 测试。这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。

例如,如果要把字符串 "1234blue "转换成整数,那么parseInt()将返回1234,因为当它检测到字符b时,就会停止检测过程。字符串中包含的数字字面量会被正确转换为数字,因此 字符串 "0xA "会被正确转换为数字10。不过,字符串 "22.5 "将被转换成22,因为对于整数来说,小数点是无效字符。一些示例如下:

parseInt("1234blue");   //returns   1234 
parseInt("0xA");   //returns   10 
parseInt("22.5");   //returns   22 
parseInt("blue");   //returns   NaN

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,需如下调用parseInt()方法:
parseInt(“AF”, 16); //returns 175
当然,对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法:

parseInt("10",   2);   //returns   2 
parseInt("10",   8);   //returns   8 
parseInt("10",   10);   //returns   10

如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:

parseInt("010");   //returns   8 
parseInt("010",   8);   //returns   8 
parseInt("010",   10);   //returns   10

在这段代码中,两行代码都把字符串 "010 "解析成了一个数字。第一行代码把这个字符串看作八进制的值,解析它的方式与第二行代码(声明基数为8)相同。最后一行代码声明基数为10,所以iNum3最后等于10。

parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字 符之前的字符串转换成数字。不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的, parseFloat()方法会把这个小数点之前的字符串转换成数字。这意味着字符串 "22.34.5 "将被解析成22.34。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,而不能用八进制形式或十六进制形式。该
方法会忽略前导0,所以八进制数0908将被解析为908。对于十六进制数0xA,该方法将返回NaN,因为在浮点数中,x不是有效字符。此外,parseFloat()也没有基模式。

下面是使用parseFloat()方法的示例:

parseFloat("1234blue");   //returns   1234.0 
parseFloat("0xA");   //returns   NaN 
parseFloat("22.5");   //returns   22.5 
parseFloat("22.34.5");   //returns   22.34 
parseFloat("0908");   //returns   908 
parseFloat("blue");   //returns   NaN

2.强制类型转换

(1)Number类型强转

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>强制转换 - Number</title>
</head>
<body><script>// 1. parseInt 强制转换成整型    转化成十进制/* 要求: 必须数字开头; 小数部分全部舍弃,非数字开头强转后为NaN*/var num = 1.934567; //1var num = "abc";    //NaNvar num = "123";    //123var num = "123abc"; //123var num = "abc123"; //NaNvar num = "1.34abc" //1var num = []        //NaN var num = false        //NaN var res = parseInt(num); console.log(res ,typeof(res))

在这里插入图片描述
在这里插入图片描述

如果把16进制等其他进制转换成十进制
var res = parseInt(‘abc’,16)
在这里插入图片描述
在这里插入图片描述

number -> string: 数字转化成16进制的字符串
var m = 122;
var n = m.toString(16);
console.log(n);
在这里插入图片描述
在这里插入图片描述

python中进制转换逻辑
在这里插入图片描述

// 2.parseFloat 强制转换成浮点型
/* 要求: 必须数字开头; */
var num = 100; //100
var num = "abc";    //NaN
var num = "123";    //123
var num = "123abc"; //123
var num = "abc123"; //NaN
var num = "1.34abc"; //1.34
var num = {};        //NaN 
var num = true;
var res = parseFloat(num); 
console.log(res ,typeof(res))

在这里插入图片描述
在这里插入图片描述

    // 3.Number类型强转/* 要求:必须是存纯数字或者布尔类型*/var a = falsevar a = "123.456"; //123var res = Number(a)console.log(res ,typeof(res))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

数字开头强转为NaN
在这里插入图片描述

   </script>
</body>
</html>

(2)字符串强转

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>强制转换 - String</title>
</head>
<body><script>/*字符串的强转是在原有类型的两边套上引号,表达字符串类型;*/var a = 100;var a = 4.89;var a = "abc";var a = [];var a = undefined;var a = null;var a = NaN;var res = String(a);console.log(res , typeof(res))

在这里插入图片描述
在这里插入图片描述

空数组强转为空字符串
在这里插入图片描述
在这里插入图片描述

undefined 强转为 “undefined”
在这里插入图片描述
在这里插入图片描述

null强转为 “null”
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

数组强转为 数组里面的值

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

   </script></body>
</html>

一些常见数据类型转换如下
在这里插入图片描述

(3)布尔强制类型转换

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>强制转换 - Boolean</title>
</head>
<body><script>/*//布尔类型为假的七中情况:0 0.0  ''  NaN undefined null false */var a = false;var a = null;var a = 0;var a = 0.0;var a = '';var a = NaN;var a = undefined;// 注意点js中 空数组 空对象都是truevar a = []; // truevar a = {}; // truevar res = Boolean(a);console.log(res , typeof(res));

在这里插入图片描述
在这里插入图片描述

</script></body>
</html>

3.自动类型转换

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>自动类型转换 Number Boolean String 三者之间的转换</title>
</head>
<body><script>// 1.Number+Booleanvar res = 10 + true;var res = 3.4 + true;var res = 10 + 3.1;console.log(res ,typeof(res))// 2.Number+Boolean+String (对于字符串来说 +号意味着拼接)var res = true + "100";var res = 100 + "101" + 100;console.log(res,typeof(res))// 3.除了+号,剩下的都可以做运算(必须是数值)var res = 100 - "101";var res = 100 - "99abc";console.log(res,typeof(res))

在与数值进行运算时,true会自动转换为1
字符串与带引号的数值进行加法运算,相当于拼接

在这里插入图片描述
在这里插入图片描述

非数值进行除了加法以外的运算,得到的是NaN
在这里插入图片描述
在这里插入图片描述

对象之间加法运算
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

day11_SpringCloud(Nacos注册中心,LoadBalancer,OpenFeign)

文章目录 Spring Cloud Alibaba1 系统架构演进1.1 单体架构1.2 微服务架构1.3 分布式和集群 2 Spring Cloud Alibaba概述2.1 Spring Cloud简介2.2 Spring Cloud Alibaba简介 3 微服务环境准备3.1 工程结构说明3.2 父工程搭建3.3 用户微服务搭建3.3.1 基础环境搭建3.3.2 基础代码…

安装或卸载VMware时,显示无法打开注册表项,以及开启虚拟机电脑蓝屏重启的解决方法

我之前安装过一次VMware&#xff0c;之后就随手把他删除了&#xff0c;但没有删除干净&#xff0c;最近我再次安装VMware的时候&#xff0c;出现了一系列问题&#xff0c;我决定分享一下我的解决方案。 一&#xff1a;安装或卸载VMware时&#xff0c;显示无法打开注册表项 解决…

围坝胶的粘度一般是多少

围坝胶的一般粘度是多少?围坝胶&#xff0c;作为一种广泛应用于汽车、电子等领域的粘合剂&#xff0c;其粘度是评估其性能的重要指标之一。了解围坝胶的粘度有助于我们更好地选择和使用这种粘合剂。 首先&#xff0c;我们要明白什么是粘度。粘度是流体流动时抵抗剪切力的能力&…

09. C语言内嵌汇编代码

C语言函数内可以自定义一段汇编代码&#xff0c;在GCC编译器中使用 asm 或 __asm__ 关键词定义一段汇编代码&#xff0c;并可选添加volatile关键字&#xff0c;表示不要让编译器优化这段汇编代码。 内嵌汇编代码格式如下&#xff1a; __asm__ ("汇编代码":输出描述…

Git 入门

Git 入门 版本控制 什么是版本控制 版本控制是一种记录一个或若干文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统。 除了项目源代码&#xff0c;你可以对任何类型的文件进行版本控制。 为什么要版本控制 有了它你就可以将某个文件回溯到之前的状态&#xff…

WordPress建站入门教程:忘记后台管理员密码了怎么办?

前面跟大家分享的『WordPress建站入门教程&#xff1a;如何在本地电脑搭建WordPress网站&#xff1f;』一文介绍了搭建WordPress网站&#xff0c;但是有些站长跟boke112百科一样&#xff0c;没有记录后台管理密码&#xff0c;这种情况应该怎么办呢&#xff1f;有以下2种方法解决…

我国离子注入设备市场规模不断增加 本土企业仍有较大发展空间

我国离子注入设备市场规模不断增加 本土企业仍有较大发展空间 离子注入是半导体器件和集成电路生产的关键工艺之一&#xff0c;其提供的高精度和高均匀性可以大幅度提高集成电路的成品率。离子注入设备是芯片制造的核心工艺装备。 从全球市场来看&#xff0c;随着科学技术不断进…

javascript基础入门

1.第一个javascript程序 javascript程序不能够独立的运行&#xff0c;必须依赖于HTML文件&#xff0c;type属性值用来说明脚本的类型&#xff0c;这里 是指使用javascript编写的文本文件&#xff1b; 2.alert警告框 alert&#xff08;&#xff09;函数显示一条指定的信息&am…

正大国际:什么是美联储?对于实业与期货市场到底是什么关系?

第一美联储是谁&#xff1f; 美国联邦储备系统&#xff0c;简称美联储(fed)&#xff0c;负责履行美国中央银行的职权。与世界上大部分央行不同&#xff0c;美联储并不完全属于美国政府&#xff0c;从某个角度来说&#xff0c;美联储是一家私有央行。 一家私人银行凌驾于国家之…

创建Net8WebApi自动创建OpenApi集成swagger

问题&#xff1a;用Net8创建WebAPI时勾选启动OpenAPI&#xff0c;项目自动集成了Swagger&#xff0c;但是接口注释没有展示&#xff1f; 解决&#xff1a; 1.需要生成Api项目的XML文件。操作如下&#xff1a; 2.生成XML文件后&#xff0c;还需要在启动类Program.cs里面配置Sw…

架构(十六)本地方法缓存

一、引言 作者需要在底层公共包里面加一个方法反射的工具类&#xff0c;看起来很简单的事&#xff0c;问题也不少&#xff0c;这里讲讲过程。在结合同事的思维误区聊聊本地加锁块的问题。 二、方案选型 其实一开始有两种方案&#xff0c;一种是传入Function和入参&#xff0c;…

selenium_001基本学习

第 1 章webdriver 环境搭建好了&#xff0c;我们正式学习 selenium 的 webdriver 框架&#xff0c;它不像 QTP 之类的有 GUI 界面的可视化工具&#xff0c;是webdriver 框架的 API。 2.1.1 打开网页 注解&#xff1a;我们用谷歌浏览器 # from selenium import webdriver …

ue4.27 发现 getRandomReachedLocation 返回 false

把这个玩意儿删掉&#xff0c;重启工程&#xff0c;即可 如果还不行 保证运动物体在 volum 内部&#xff0c;也就是绿色范围内确保 project setting 里面的 navigation system 中 auto create navigation data 是打开的(看到过博客说关掉&#xff0c;不知道为啥) 如果还不行&…

小兴教你做平衡小车-stm32程序开发(PWM)

1 程序分享 main.c文件。 #include "stm32f10x.h" #include "led.h" #include "delay.h" #include "usart.h" #include "key.h" #include "tim.h" #include "pwm.h" #include "stdio.h"int…

专业的安全数据交换系统,如何进行网间数据安全交换?

网络隔离是企业网络安全管理的重要组成部分&#xff0c;它有助于提高网络的整体安全性&#xff0c;保护企业资产和客户数据&#xff0c;同时满足法规合规要求。很多企业为了防止内部核心数据泄露&#xff0c;都实施了网络隔离&#xff0c;比如划分成内网、外网&#xff0c;有的…

关于爬虫发展历史,价值,问题和应对恶意爬虫的策略

作为一个互联网的技术开发&#xff0c;爬虫不管是自己写的还是所负责的网站被爬&#xff0c;都是挺常见的。 但是一个很常见的东西&#xff0c;却一直没有系统梳理过&#xff0c;今天我们从发展历史&#xff0c;价值&#xff0c;问题和应对恶意爬虫的策略来聊一聊爬虫。 1 爬…

三八妇女节放假么 妇女节放假安排备忘录提醒别忘记

每年的节日像是生活中的小驿站&#xff0c;给我们带来了休息和欢乐。而当三八妇女节临近时&#xff0c;你是否也在期待着那半天的假期呢&#xff1f; 想象一下&#xff0c;公司的走廊里&#xff0c;同事们都在窃窃私语&#xff1a;“三八妇女节会放假吗&#xff1f;”这个问题…

Javaweb之SpringBootWeb案例之自动配置案例的自定义starter实现的详细解析

3.2.4.2 自定义starter实现 自定义starter的步骤我们刚才已经分析了&#xff0c;接下来我们就按照分析的步骤来完成自定义starter的开发。 首先我们先来创建两个Maven模块&#xff1a; 1). aliyun-oss-spring-boot-starter模块 创建完starter模块后&#xff0c;删除多余的文件…

PHP设计模式初探 以前写的完整PPT!!!!!

幻灯片 1: 初探PHP设计模式 copyright CSDN 白毛大侠 幻灯片 2: 我们说别人代码写的烂&#xff0c;烂在哪&#xff1f; 反思我们平时是怎么写代码的&#xff1f; 非开发者如何转开发&#xff08;业务&#xff09; &#xff1f; 一.过程与对象 幻灯片 3: <?…

AFL havoc_stage

AFL fuzz_one函数&#xff0c;有个地方判断skip_deterministic &#xff0c;而AFLNet的例子里面&#xff0c;定义了-d参数&#xff0c;也就是skip_deterministic1&#xff0c;直接进入到havoc_stage&#xff0c;所以这里想分析下havoc_stage。 if (skip_deterministic || queue…