问: js要传string型参数,可以直接将变量用toString()方法转换吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问: js要传string型参数,可以直接将变量用toString()方法转换吗?相关的知识,希望对你有一定的参考价值。
可以的。都知道将一个值转换成一个字符串有两种方法,一是使用toString()方法,二是使用转型函数String()。但是这里有些细节还是值得注意的。
1,几乎每个值都有toString()方法,这就说明有的值是没有的,那就是null和undefined。
2,对于字符串型的值也可以使用toString()方法,它会返回该字符串的一个副本。
3,toString()方法可以传递一个参数,表示数值的基数。
例如:var t = 8;
t.toString(2);//1000
默认情况下 参数是10。要说明的是对于非数值(boolean,string等)设置toString()的参数是无效的,
例如:var t ="8";
t.toString(2);//8,可能有些人会认为是1000
4,任何值都可以使用String()方法。它的过程是这样的
首先,如果值有toString()方法,那么则使用该方法(无参数)。
其次,那就是该值没有toString()方法,那就是 null 返回 "null",undefined返回"undefined" 参考技术A 直接+''就行了
JS类型转换
JS中的类型转换方式一般分为三类:转为String型,转为数字型,转为布尔型。
一.转为String型
1.toString()
通过变量.toString()可以将其他类型的变量转换为字符串型(null和undefined没有toString()方法)
let age = 18;
let myname = 'mark';
console.log(typeof age);
console.log(typeof myname);
age = age.toString();
myname = myname.toString();
console.log(typeof age);
console.log(typeof myname);
2.String()
这种方法为强制转换(null和undefined通过这个方法可以成功转换为字符串类型)
let age = 18;
let myname = true;
let temp = null;
console.log(typeof age);
console.log(typeof myname);
console.log(typeof temp);
age = String(age);
myname = String(myname);
temp = String(temp);
console.log(typeof age);
console.log(typeof myname);
console.log(typeof myname);
3.隐式转换(通过+)
任何类型的数据+字符串类型的数据,得到的结果均为字符串型。隐式转换,就是通过一个引号引起来的空格加上任意类型的数据。
let age = 18;
let myname = true;
let temp = null;
console.log(typeof age);
console.log(typeof myname);
console.log(typeof temp);
age = age + '';
myname = myname + '';
temp = temp + '';
console.log(typeof age);
console.log(typeof myname);
console.log(typeof myname);
二.转为数字型
表单输入的数据通常为字符串型,但是要进行加法操作得到数字型数据,只能为两个数字型相加减,所以需要将字符串型转为数字型
1.Number()
1)如果字符串中全为数字,转换后结果为字符串中数字
2)字符串中有非数字内容,转换后结果为NaN
3)字符串为空,转换后为0
注:true--1,false--0,null--0,undefined--NaN
let a = '18123';
let b = '12dddd';
let c = ' ';
let d = true;
a = Number(a);
b = Number(b);
c = Number(c);
d = Number(d);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
2.parseInt()
通过这个方法,可以将字符串中含有非数字内容且以数字内容开头的字符串转换为数字型,当字符串以字母或者符号开头,只能转换为NaN,但是其他可转换类型的数据只能转换为整数,当遇到数据中存在小数点时,进行取整。(空字符串,布尔型,null,undefined进行转换只能转换为NaN)
let a = '18123';
let b = '12dddd';
let c = ' 12';
let d = '';
let e = '5.67'
a = parseInt(a);
b = parseInt(b);
c = parseInt(c);
d = parseInt(d);
e = parseInt(e);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
console.log(e);
使用parseInt()时,也可以转换为指定进制数字
let a = '14';
let b = '12jjjj';
a = parseInt(a, 8);
b = parseInt(b, 16);
console.log(a);
console.log(b);
3.parseFloat()
原理与parseInt()相同,只不过此时通过这个方法,可以将有小数点的字符串转换为有小数点的数字型,此类方法不可以指定进制,只能转为十进制
let a = '18.123';
let b = '12.38dddd';
let c = ' 12';
let d = '';
let e = '5.67'
a = parseFloat(a);
b = parseFloat(b);
c = parseFloat(c);
d = parseFloat(d);
e = parseFloat(e);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
console.log(e);
4.隐式转换
通过与数字型数字进行减法,除法,乘法运算,可以将其转换为数字型,可以理解为系统自动先使用Number(),对需要转换的值进行转换后再与数字型相运算,Number()中转换为NaN的类型,使用隐式转换仍为NaN
let a = '18123';
let b = '12dddd';
let c = null;
let d = true;
a = a * 1;
b = b - 1;
c = c - 1;
d = d / 1;
console.log(a);
console.log(b);
console.log(c);
console.log(d);
三.转为布尔型
1)Boolean()
其他类型通过这个方法,均可以转换为true或者false,空字符串,null,undefined,NaN,0均转为false,其他的全为true。
let a = '18';
let b = 12;
let c;
let d = '';
let e = null;
a = Boolean(a);
b = Boolean(b);
c = Boolean(c);
d = Boolean(d);
e = Boolean(e);
console.log(a);
console.log(b);
console.log(c);
console.log(d);
console.log(e);
以上是关于问: js要传string型参数,可以直接将变量用toString()方法转换吗?的主要内容,如果未能解决你的问题,请参考以下文章
JAVA-初步认识-常用对象API(集合框架-泛型-泛型方法)