JavaScriptjQuery.强制类型转换
强制类型转换
强制类型转换
类型转换有两种:⼀种是显式转换,即需要程序员⼿动写代码转换;另⼀种是隐匿转换,由JavaScript解释器转换。JavaScript提供以下函数进⾏显式转换:
1.转换为数值类型:Number(mix)、parseInt(string,radix)、parseFloat(string)
2.转换为字符串类型:toString(radix)、String(mix)
3.转换为布尔类型:Boolean(mix)
转换为数值类型
Number(mix)函数
Number(mix)函数,可以将任意类型的参数mix转换为数值类型。其规则为:
1、如果是布尔值,true和false分别被转换为1和0
2、如果是数字值,返回本⾝。
3、如果是null,返回0
4、如果是undefined,返回NaN。
5、如果是字符串,遵循以下规则:
a.如果字符串中只包含数字,则将其转换为⼗进制(忽略前导0)
b.如果字符串中包含有效的浮点格式,将其转换为浮点数值(忽略前导0)
c.如果是空字符串,将其转换为0
d.如果字符串中包含⾮以上格式,则将其转换为NaN
6、如果是对象,则调⽤对象的valueOf()⽅法,然后依据前⾯的规则转换返回的值。如果转换的结果是NaN,则调⽤对象的toString()⽅法,再次依照前⾯的规则转换返回的字符串值。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>转换为数值类型
Number(mix)函数</title>
</head>
<body>
<script>
println(Number(false));
println(Number(true));
println(Number(123));
println(Number(null));
println(Number(undefined));
println(Number(person));
function println(a){
document.write(a+'<br>');
}
var person{};
person.name='huangshiren';
person.age=59;
person.appetite=3;
person.eat=function(){
document.write('正在吃饭');
}
</script>
</body>
</html>
parseInt(string, radix)函数
参数说明:
string 要被解析的值。如果参数不是⼀个字符串,则将其转换为字符串(使⽤ ToString 抽象操作)。字符串开头的空⽩符将会被忽略。
radix ⼀个介于2和36之间的整数(数学系统的基础),表⽰上述字符串的基数。⽐如参数"10"表⽰使⽤我们通常使⽤的⼗进制数值系统。始终指定此参数可以消除阅读该代码时的困惑并且保证转换结果可预测。当未指定基数时,不同的实现会产⽣不同的结果,通常将值默认为10。
parseInt(string, radix)函数,将字符串转换为整数类型的数值。它也有⼀定的规则:
1.忽略字符串前⾯的空格,直⾄到第⼀个⾮空字符
2.如果第⼀个字符不是数字符号或者负号,返回NaN
3.如果第⼀个字符是数字,则继续解析直⾄字符串解析完毕或者遇到⼀个⾮数字符号为⽌
4.如果上步解析的结果以0开头,则将其当作⼋进制来解析;如果以x开头,则将其当作⼗六进制来解析
5.如果指定radix参数,则以radix为基数进⾏解析
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>转换为数值类型
parseInt(string, radix)函数</title>
</head>
<body>
<script>
println(parselnt("12.34567",10));
println(parselnt("de",10));
println(parselnt("0123456789",10));
println(parselnt("0e0",16));
println(parselnt("010*******",2));
function println(a){
document.write(a+'<br>');
}
</script>
</body>
</html>
parseFloat(string)函数
parseFloat(string)函数,将字符串转换为浮点数类型的数值。
它的规则与parseInt基本相同,但也有点区别:字符串中第⼀个⼩数点符号是有效的,另外parseFloat会忽略所有前导0,如果字符串包含⼀个可解析为整数的数,则返回整数值⽽不是浮点数值。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>转换为数值类型
parseFloat(string)</title>
</head>
<body>
<script>
println(parseFloat("3.14"));
println(parseFloat("314e-2"));
println(parseFloat("0.0314E+2"));
println(parseFloat("3.14more non-digit characters"));
function println(a){
document.write(a+'<br>');
}
</script>
</body>
</html>
转换为字符串类型
toString(radix)⽅法。除undefined和null之外的所有类型的值都具有toString()⽅法,其作⽤是返回对象的字符串表⽰。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>转换为字符串类型</title>
</head>
<body>
<script>
var count=10;
String());
var boolean=true;
String());
var today=new Date();
String());
var shoppingCart=['⾯量','据类型','置字⾯'];
String());
var person{};
person.name='huangshiren';
person.age=58;
person.appetite=3;
person.eat=function(){
document.write('正在吃饭');
}
String());
function println(a){
document.write(a+'<br>');
}
</script>
</body>
</html>
转换为布尔类型
Boolean(mix)函数,将任何类型的值转换为布尔值。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>转换为布尔类型</title>
</head>
<body>
<script>
println(Boolean(count));
jquery字符串截取println(Boolean(0));
println(Boolean(4<3));
println(Boolean(null));
println(Boolean(""));
println(Boolean(undefined));
var shoppingCart=['⾯量','据类型','置字⾯'];
printle(Boolean(shoppingCart));
person.name='huangshiren';
person.age=58;
person.appetite=3;
person.eat=function(){
document.write('正在吃饭');
}
String());
function println(a){
document.write(a+'<br>');
}
</script>
</body>
</html>
测试题⽬
1、完成本页上的例题
2、什么叫显⽰转换,什么叫显⽰转换?
显⽰转换:需要程序员⼿动写代码转换
隐匿转换:由JavaScript解释器转换
3、数据类型转换常⽤的⽅法有哪些?
(1).转换为数值类型
(2).转换为字符类型
(3).转换为布尔类型
4、写个例⼦,使⽤String()⽅法转换布尔值、数字、数组、⾃定义对象。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>转换为数值类型
parseFloat(string)</title>
</head>
<body>
<script>
println(parseFloat("string"));
println(parseFloat(3677));
println(parseFloat("0e0"));
function println(a){
document.write(a+'<br>');
}
var shoppingCart=['⾯量','据类型','置字⾯'];
printle(Boolean(shoppingCart));
</script>
</body>
</html>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论