数据的类型转换分为强制类型转换和非强制类型转换,强制类型转换也可以称为显示转换,非强制类型转换也可以称为隐式转换。
一,字符串------>数字
1.parseInt() 取整
首先我们先创建一个字符串类型的变量,接下来用下面的代码来演示一下。
接下来用parseint()方法,最后在检测一下他的数据类型
var num = "123";
var index = parseInt(num);
console.log(typeof index);
很明显由字符串类型转换为了数字类型
parseint方法
- 同时用parseint()方法也可以将小数转换为整数
var text = "123.444"
var text1 = parseInt(text);
console.log(text1);
parseint()
- 如果是数字加上文字的形式用parseint()方法会转换为什么呢?
var str = "123侯旭";
console.log(parseInt(str));
parseint())
- 如果全是文字呢?
var str1 = "侯旭";
console.log(parseInt(str1));
str
如果全是文字的她就会转换为NaN.那么下面来解释一下什么是NaN呢,
NaN:不是一个数字 NaN不等于任何值 (包括本身)
2.Math.abs();取绝对值 正数
var str1 = "123";
console.log(Math.abs(str1));
math.abs)()
3.parseFloat();取浮点数
var text = "123.444"
console.log(typeof parseFloat(text));
parseFloat
- 而且parsefloat只会保留一个小数点
var text = "123.444.1.2.56";
console.log(parseFloat(text));
parseFloat
4.number()方法
var txt = "1234";
console.log(Number(txt));
console.log(typeof Number(txt));
number()
5.*1 /1 -1
接下来讲讲parseint()和parsefloat的区别
都可以进行字符串转数字
包含非数字的时候,number()会返回NaN,parseint()看情况,如果文字开头返回NaN如果数字开头,返回合法数字部分。
二, 数字------>字符串
1.tostring();
var num = 123;
console.log(typeof toString(num));
tostring()
2.string();
var num = 123;
console.log(typeof String(num));
string()
那么tostring()和string都可以转换为字符串类型,而二者的区别是什么呢
tostring()和string()的区别
举个例子
var index = undefined;
console.log(tostring(index));
区别
区别:tostring()不可以转换undefined和null。
三,数字------>布尔值
- Boolean();
console.log(Boolean(0));
Boolean
0转换为布尔值为false
非0转换为布尔值为true
二,隐式转换
是因为js的数据类型不严谨
-
数字---->字符串
var x = 123; var y ="123"; var xy = x*y; console.log(typeof xy);
1.数值操作
**向上取整 有小数部分 整数部分+1**
写法: Math.ceil()
var x = 123.79;
console.log(Math.ceil(x) );
Math.ceil()
- 向下取整 舍弃小数部分 和parseint()类似
写法:Math.floor()
var x = 123.79;
console.log(Math.floor(x) );
Math.floor(
- Math.max();返回两者间最大值
- Math.min();返回两者间最小值
- Math.random(),0-1间的随机数
扩展:面试题
null和undefined的区别?
答:
1.null是关键字,undefined不是
2.null代表空,undefined代表是未定义
3.null转换为数字为0 undefined为NaN
null也可以用清除内存
= 赋值
== 等于
===全等于(值和数据类型都得相同)
isNaN()
用number方法转换一下,会将里面的字符串转换为数字 isNaN("123"); 返回值false
Boolean()
如果内部为空 转换为false,如果有值就是true
网友评论