前端基础(四)_数据类型的强制转换
数据类型的强制转换就是通过js提供的函数进行数据转换。常见的就是将其他类型的数据转换成number类型和string类型。
一、其他类型转 number 类型
1.Number
Number 方法将其他类型的数据转换为Number类型,返回一个新的数值,不会改变变量本身。
例1:基本数据类型转换为Number类型
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>LiuQing</title><style>#box {background-color: red;}</style>
</head><body><div id="box">LiuQing</div><script>var a = 10;var b = true;var c = "hello";console.log(Number(a)); // 10console.log(Number(b)); // 1 Boolean 类型转换成 number 类型的 0 和 1console.log(Number(null)); // 0console.log(Number(undefined));// NaNconsole.log(Number(c)); // NaN 不是数字,转换不成功返回NaNconsole.log(Number("123"));// 123 数字字符串可以转为数字 ( 全部是数字 )console.log(Number("123haha")); // NaNconsole.log(Number("00000001"));// 1console.log(Number("")) // 0</script>
</body>
</html>
Number方法将字符串转换成number类型时,只能转换纯数字字符串和空字符串,其他的都是NaN。
2.parseInt 与 parseFloat
有些情况下,我们需要对字符串进行一些运算操作了,例如‘12px’需要在当前像素的基础上自加,针对于12px这种情况,可以通过parseInt与parseFloat转换,都是转换为 number 类型,parseInt 是转换成整型。parseFloat 转换成浮点型,即可以保留小数。
语法:
- parseInt(要转换的内容) : 转换为Number类型,取整,舍弃小数部分
- parseFloat(要转换的内容): 转换为Number类型,保留小数
例2:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>LiuQing</title><style>#box {background-color: red;}</style>
</head><body><div id="box">LiuQing</div><script>var width = '100px';console.log(parseInt(width)); // 100var str3 = "a124";console.log(parseInt(str3)); // NaNvar str4 = '12a3';console.log(parseInt(str4));// 12var str5 = '12.5';console.log(parseInt(str5)); // 12console.log(parseFloat(str5));// 12.5</script>
</body></html>
parseInt和parseFloat在转换时是对数据进行解析转换,前者是整数,后者是浮点数。
他们解析的原则是从前往后进行解析,尽其所能。
若存在有能识别的数字就解析,遇到不能识别的就结束转换,如果第一位就不是数字则返回NaN。
但是parseInt还可以有第二个参数,即以什么进制进行转换(建议任何时候加上第二个参数10,即以10进制转换),而parseFloat没有第二个参数。
**语法:**parseInt(string,radix)
var num = '070';console.log(parseInt(num)); // 在IE8及以下返回56(是将它当作8进制转换了),在其它浏览器返回70console.log(parseInt(num, 10)); // 加了第二个参数后,在所有浏览器下都返回70,建议任何时候都加上第二个参数
3.其他 isNaN
isNaN:is not a number 是不是不是数字,返回boolean值。是数字返回false,不是数字返回true。可以用于判断当前字符串是否是纯数值字符串。
例3 :
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>LiuQing</title><style>#box {background-color: red;}</style>
</head><body><div id="box">LiuQing</div><script>// isNaN内部调用Number()方法,如果Number能转成功数字,则返回false,如果转不成功,则返回true。console.log(isNaN("Ab")); // trueconsole.log(isNaN("1")); // falseconsole.log(isNaN(null)); // falseconsole.log(isNaN(function a() { }));// trueconsole.log(isNaN(NaN)); // true</script>
</body></html>
二、其他类型转字符串
其他类型转字符串类型,使用到的方法有:
- 变量.toString()
- String(变量)
两个方法会生成一个新的字符串,不会改变原来的变量。
变量.toString()和String(变量)的区别是:String能针对任何数据类型,而toString不能针对undefined和null。
例1:
var num = 10;
var str = "hello";
var bool = false;
var arr = [1,2,3];
// 变量.toString();
console.log(num, num.toString()); // 10 "10"
console.log(str, str.toString()); // "hello" "hello"
console.log(bool, bool.toString()); // false "false"
console.log(arr, arr.toString()); // [1, 2, 3] "1,2,3"// 范围2-36 转换成相对进制的字符串
console.log(num.toString(2)); // 1010// String(变量)
console.log(num, String(num)); // 10 "10"
console.log(String(undefined)); // 'undefined'
console.log(String(null)); // 'null'
三、其他类型转布尔值
格式:Boolean(变量),可以将任何变量转换为布尔值。
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>LiuQing</title><style>#box {background-color: red;}</style>
</head><body><div id="box">LiuQing</div><script>console.log(Boolean('')); // falseconsole.log(Boolean('a')); // trueconsole.log(Boolean(0)); // falseconsole.log(Boolean(1)); // trueconsole.log(Boolean(-1)); // trueconsole.log(Boolean(NaN)); // falseconsole.log(Boolean(null)); // falseconsole.log(Boolean(undefined)); // falseconsole.log(Boolean([])); // trueconsole.log(Boolean({})); // true</script>
</body></html>
JavaScript世界的假值:undefined、null、false、空字符串、0、NaN
除了这六个值之外,其它的均是真值,一切对象都是真值,包括[] 和 {}。
扩展:JS中toString和valueOf在什么时候会自动触发
1、==
和===的不同
前者会自动转换类型 值判断数值 不判断类型
let a = 12;
let b = '12'
console.log(a==b) //true
后者先比较数值后比较数据类型都一样时才一样
let a = 12;
let b = '12'
console.log(a===b) //false
前端基础(四)_数据类型的强制转换相关推荐
- python中如何进行数据类型转换_python数据类型的强制转换
首页 专栏 python 文章详情 0 python数据类型的强制转换 小小垂髫 发布于 1 月 21 日 数据类型的强制转换 如果要将一个数据转换成另一个数据类型,只需要将其放入相应类型的函数中去. ...
- python nonetype转换float_python数据类型的强制转换
数据类型的强制转换 如果要将一个数据转换成另一个数据类型,只需要将其放入相应类型的函数中去. Number类型的数据转换 强制转换为int 可以转换的数据类型 int 整型 float 浮点型 boo ...
- Java 基本数据类型的强制转换和自动转换,基本数据类型包装类,Integer常用方法,Integer中equals和==的区别
文章目录 基本数据类型的自动转换 基本数据类型的强制转换 包装类(封装类) Integer类中的方法 一:Number中的xxxValue()方法 二:Integer.parseInt("S ...
- python强制转换整数_python数据类型的强制转换
数据类型的强制转换 如果要将一个数据转换成另一个数据类型,只需要将其放入相应类型的函数中去. Number类型的数据转换 强制转换为int 可以转换的数据类型 int 整型 float 浮点型 boo ...
- 学习笔记 | c++中四种类型cast(强制)转换
c++中四种cast转换 C++四种强制转换方式,应用场景,细节 1.const_cast 用于将const变量转为非const. 用来修饰类型的const或volatile属性.除了去掉const或 ...
- java 前端基础知识_【计算机·知识】关于前端的计算机基础知识
原标题:[计算机·知识]关于前端的计算机基础知识 作为一个刚刚入门的程序猿,你是否对专业知识有足够的了解?今天新闻君带你走进前端的世界. 前端的语言接触起来相对于后端的语言要容易不少,但前端的语言也有 ...
- JavaScript中基本数据类型的强制转换
JavaScript中基本数据类型转化 将一个数据类型强制转换为其他的数据类型 主要指String Number Boolean 这三种之间的相互转化. 一.其他数据类型转换String 我们有两种方 ...
- 前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)
一.数据类型分类 1.1.数据类型分类 JavaScript的数据类型为弱类型,即最开始的时候并不知道变量是什么类型,必须通过后面的值才能知道. JavaScript的数据类型分为简单数据类型(也称为 ...
- 前端基础(八)_盒子模型(标准盒子模型和怪异盒子模型)
盒子模型 什么是盒子模型 网页设计中常听的属性名:内容(content).内边距(padding).边框(border).外边距(margin), CSS盒子模型都具备这些属性.这些属性我们可以用日常 ...
最新文章
- jforum中对各种servlet对象都进行了封装
- 太任性!00 后少年买不到回国机票,因“泄愤”找黑客攻击系统,被判刑 4 年
- 我来谈谈PHP和JAVA在web开发上的的区别
- 扩展iQuery使其支持多种编程语言(二) – 兼编译器的语法分析简介
- 《复杂》读书笔记(part6)--计算机中的自我复制
- 一个问题让我直接闭门思过!!!拼多多面试必问项之List实现类:LinkedList
- C++ namespace
- C++——有关chrono库的duration
- 难度炸裂!DeepChange:一个新的超大规模的换衣行人再识别数据集
- 基于JAVA+Servlet+JSP+MYSQL的设备管理系统
- 小宝机器人的储存容量_扫地机器人和吸尘器哪个更实用?
- 游戏服务器停机维护,游戏是如何做到服务器不停机维护的?
- 访问共享文件时切换默认的访问账号
- go的匿名函数和闭包
- git merge/git rebase分支合并
- 137_原始套接字_发送UDP数据,模仿他人飞秋给另一个飞秋客户端发送信息
- C#自定义控件添加至工具箱的方法
- 顶级赛事|2021 CCF大数据与计算智能大赛重磅来袭!
- 中国机器视觉市场研究报告
- 重要主机信息安全概略