JS数据类型转换问题
一、数据类型的转换
- 数据类型的转换方法
强制转换(显示转换,主动转换)
字符转数值
parseInt(要转换的数值或变量)- 转整数
- 从左向右依次转换,遇到第一个非数字的字符,停止转换
- 忽略小数点后的内容,其实是将小数点识别成了非数字,所以没有四舍五入
- 如果第一位就是非数字,直接 NaN
- NaN:not a number
- 不是一个数字的数值型数据,非法的数值运算结果
parseFloat(要转换的数值或变量)- 转小数
- 从左向右依次转换,遇到第一个非数字的字符,停止转换
- 可以识别小数点
- 如果第一位就是非数字,直接 NaN
- NaN:not a number
- 不是一个数字的数值型数据,非法的数值运算结果
Math.round(要转换的数值或变量)- 四舍五入
- Math.round()不是专门做字符转数值的,专门做取整
- 严格转换,只要出现非数字就是NaN
- 取最近的整数
Number(要转换的数值或变量)- 直接转
- Number()不是专门做字符转数值的,专门做系统内置的构造函数,用来创建数值对象
- 严格转换,只要出现非数字就是NaN
- 直接转换,不分小数整数
数值转字符
数值变量.toString()- 直接转换,相当于加个引号
数值变量.toFixed(n)- 保留n位小数 直接转换,相当于加个引号
其他类型转换
- 其他转布尔
- 布尔转数值
- 其他转字符
隐式转换(被动转换)
- 情况和规则:
- 算数运算
+两边只要出现字符,结果必然为字符-、*、/、%结果必然是数值(字符转数值)
- 关系运算
>、<、>=、<=两边那只要出现数值,那么另一边也会转为数值,进行比较
- 算数运算
- 情况和规则:
二、数据的运算符
算数运算符
+加号、加法+在js中不是单纯的加法:- 当加号两边都是数值型数据时,是加法运算
- 两边任意一边出现字符就变成了拼接就不是加法,+已经不是单纯的加法了,变成了拼接,拼接就是将两个数组,直接组合起来
-、*、/、%- 就是正常的数学运算
- 就算两边不是数值,也会默认转成数值,进行运算
- 如果某个数据不能转成数值,就会得到
NaN
关系运算符 - 结果是布尔值
>、<、>=、<=- 只要又一边出现数值,都是数值的比较规则
- 如果都是字符,才是字符的比较规则:逐位比较,得到结果,就停止
!=、==- 会发生隐式类型转换,只比较大小,不比较类型
!==、===- 不会发生隐式类型转换,不仅比较大小,还比较类型
逻辑运算符 - 主要操作布尔值
- 或 ||
- 或的规则:两边只要出现true,结果就是true,必须都为false,结果踩死false
- 且 &&
- 且的规则:两边只要出现false,结果就是false,必须都为true,结果踩死true
- 非 !
- 取反
- 或 ||
赋值运算符
=,+=,-=,*=,/=,%=- 先计算,再赋值 c1 = c1 + 10; c1 += 10;
一元运算符
++自增增加1
前后之分
- 前自增
++n:先计算,后使用 - 后自增
n++:先使用,后计算
- 前自增
--自减减少1
前后之分
- 前自增
--n:先计算,后使用 - 后自增
n--:先使用,后计算
- 前自增
JS数据类型转换问题的更多相关文章
- JS 数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- JS数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- js笔记——js数据类型转换
以下内容摘录自阮一峰的<语法概述 -- JavaScript 标准参考教程(alpha)>章节『数据类型转换』,以做备忘.更多内容请查看原文. JavaScript是一种动态类型语言,变量 ...
- {}+[] = ? 和 []+{} = ? 浅谈JS数据类型转换
参加公司技术嘉年华第一季(前端.服务端)的间隙,陈导问了我一个问题:{}+[] 和 []+{}两个表达式的值分别是什么?根据我的理解我觉得结果应该都是"[object Object]&quo ...
- JS 数据类型转换以其他
JavaScript 是一种弱类型的语言,也就是没有类型限制,变量可以随时被赋予任意值. 同时,在程序运行过程中,类型会被自动确认的.因此,这就是涉及到数据的类型转换.在 JS 的世界中,数据类型转换 ...
- js数据类型转换 ----流程控制
数据类型转换: //number转换成str // var str=a+''; // console.log(str); // console.log(typeof str); //转换成字符串了 v ...
- JS 数据类型转换-转换函数、强制类型转换、利用js变量弱类型转换
1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型 ...
- JS的数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- 数据类型转换,JS操作HTML
数据类型转换 1.自动转换(在某种运算环境下) Number环境 String环境 Boolean环境 2.强制类型转换 Number() 字符串:纯数字和空字符转为正常数字,其他NaN 布尔值:tu ...
随机推荐
- 🧚♂️全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👨💻004 # 第四单元 流程控制语句上 #
一.本单元知识点概述 二.本单元目标 (Ⅰ)重点知识目标 1.if语句的格式及执行流程2.switch语句的格式及执行流程 (Ⅱ)能力目标 1.掌握if语句的格式及执行流程2.掌握switch语句的格 ...
- 鸿蒙内核源码分析(调度故事篇) | 用故事说内核调度 | 百篇博客分析OpenHarmony源码 | v9.07
百篇博客系列篇.本篇为: v09.xx 鸿蒙内核源码分析(调度故事篇) | 用故事说内核调度过程 | 51.c.h .o 前因后果相关篇为: v08.xx 鸿蒙内核源码分析(总目录) | 百万汉字注解 ...
- 解决联想R720双系统Ubuntu16.04的无线网卡开启问题及信号不稳定
问题一:1.问题描述笔记本型号:Lenovo r720笔记本(i5-7300hq,gtx1060 maxq 6g),默认装入Win10系统,然而当装入Ubuntu16.04双系统时,会出现无线网卡(型 ...
- Dapr + .NET Core实战(八)服务监测
服务监测 分布式服务性能指标,链路追踪,运行状况,日志记录都很重要,我们日常开发中为了实现这些功能需要集成很多功能,替换监控组件时成本也很高. Dapr 可观测性模块将服务监测与应用程序分离.它自动捕 ...
- 吴恩达-神经网络-week1-hw3
Ref:https://blog.csdn.net/u013733326/article/details/79702148 点击查看代码 from testCases import * from pl ...
- 1. JVM核心类加载器及类加载的全过程
运行环境: 下面说明一下我的运行环境.我是在mac上操作的. 先找到mac的java地址. 从~/.bash_profile中可以看到 java的home目录是: /Library/Java/Java ...
- 数值计算:Legendre多项式
Legendre多项式的概念以及正交特性在此不多作描述,可以参考数学物理方程相关教材,本文主要讨论在数值计算中对于Legendre多项式以及其导数的计算方法. Legendre多项式的计算 递推公式 ...
- mysql从零开始之MySQL 创建数据库
MySQL 创建数据库 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 以下命令简单的演示了创建数据库的过程,数据名为 ...
- 痞子衡嵌入式:我的三个小项目陆续上线恩智浦官方Github
恍如眨眼间,痞子衡在飞思卡尔/恩智浦已经工作 8 年多了,前 5 年主要是在软件团队,最近 3 年在系统团队.所处团队不同,工作思维也不同,自从转到系统团队,开始跟客户打起交道,对待问题和解决问题的立 ...
- 由于坏块导致DG的mrp0进程中断
由于坏块导致DG的mrp0进程中断1.Environment11.2.0.4 ADG 2.SymptomsDG的mrp0进程中断,重启后,还是卡住.查看alert,在1.47存在报错,进一步查看trc ...