课题_JS数据类型转换===
- 格式:rtf
- 大小:98.38 KB
- 文档页数:3
JavaScript中数据类型转换总结JavaScript中数据类型转换总结在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换。
1,显式数据类型转换a:转数字:1)Number转换:代码:var a = “123”;a = Number(a);注意:a)如果转换的内容本⾝就是⼀个数值类型的字符串,那么将来在转换的时候会返回⾃⼰。
b)如果转换的内容本⾝不是⼀个数值类型的字符串,那么在转换的时候结果是NaN.c)如果要转换的内容是空的字符串,那以转换的结果是0.d)如果是其它的字符,那么将来在转换的时候结果是NaN.2)parseInt():代码:var a = “123”; a = parseInt(a);a)忽略字符串前⾯的空格,直⾄找到第⼀个⾮空字符,还会将数字后⾯的⾮数字的字符串去掉。
b)如果第⼀个字符不是数字符号或者负号,返回NaNc)会将⼩数取整。
(向下取整)3)parseFloat();//浮点数(⼩数)与parseInt⼀样,唯⼀区别是parseFloat可以保留⼩数。
b.转字符串可以将其它的数据类型转成字符串。
1)String():代码:var a = 123;a = String(a);2).toString()的⽅法来进⾏转换(包装类)。
代码:var a = 123; a = a.toString();undefined,null不能⽤toString。
c.转boolean类型:可以将其它类型转为boolean值:Boolean():代码:var a =”true”; a = Boolean(a);注意:在进⾏boolean转换的时候所有的内容在转换以后结果都是true,除了:false、""(空字符串)、0、NaN、undefined 2,隐式转换a)转number:var a = “123”;a = +a;加减乘除以及最余都可以让字符串隐式转换成number.b)转string:var a = 123;a = a + “”;c)转boolean:var a = 123;a = !!a;。
JS 数据类型及常见转换规则数据类型JS 中的数据类型主要分为两⼤类:原始类型和引⽤类型。
常见的数据类型如下图所⽰:原始数据类型存在栈中,引⽤类型在栈中存的是⼀个引⽤地址,这个地址指向的是堆中的⼀个数据对象。
需要注意的是null 在这⾥我们算在原始类型⾥⾯,但是你⽤typeof 的时候会发现他是object ,原因是就算他是⼀个对象,那他应该在栈中存⼀个引⽤地址,但是他是⼀个空对象,所以这个地址为空,也就是不对应堆中的任意⼀个数据,他在堆中没有数据,只存在于栈中,所以这⾥算为了原始类型。
引⽤类型其实主要就是Object ,Array 和Function 这些其实也都是Object 派⽣出来的。
原始类型原始类型的值⽆法更改,要更改只能重新赋值,原始类型的⽐较就是⽐较值,值相等,他们就相等引⽤类型引⽤类型的值是可以修改的,修改后引⽤地址并没有变化,变化的是堆中的数据。
引⽤类型的⽐较是⽐较他们的索引地址,⽽不是他们的值。
要想让他们相等,得直接将b 赋值为a ,这样他们的引⽤地址⼀样,就是相等的。
类型转换隐式类型转换转为字符串经常出现在+运算中,并且其中有⼀个操作数不是数值类型转为数值经常出现在数学运算中,表⽰连接字符串的+运算除外转为bool 的场景let s = 4 + 'px' + 5;console.log(s); // 4px5s = 123e-2 + 'a';console.log(s); // 1.23a 复制代码let s = 'abc';console.log(+s, -s); // NaN, NaNs = ' 123 ';console.log(+s, -s); // 123 -123s = new Date();console.log(+s, -s); // 1588675647421 -1588675647421 (这个操作相当于取毫秒数)let s = 'abc';经常出现在if 或者逻辑运算中下⾯的值在进⾏bool 转换时会转换为下⾯的值在进⾏bool 转换时会转换为false false false ,除此以外都是,除此以外都是true true true ::1. 02. NaN3. ''(空字符串)4. null5. undefined==运算符当我们使⽤==进⾏⽐较时,如果两边的类型不同,JS 会进⾏类型转换,然后再⽐较,===则不会进⾏类型转换,如果===两边的数据类型不同,直接返回false。
JavaScript数据类型转换详解(推荐)JS数据类型在 JavaScript 语⾔中数据类型分为2⼤类:基本数据类型和复杂数据类型基本数据类型有:numberstringbooleannullundefinedsymbolbigint复杂数据类型有:标准普通对象:object标准特殊对象:Array、RegExp、Date、Math、Error……⾮标准特殊对象:Number、String、Boolean……可调⽤/执⾏对象「函数」:function类型之间的转换类型转换可以分为两种:隐式类型转换和显式类型转换。
显式类型强制转换是指当开发⼈员通过编写适当的代码⽤于在类型之间进⾏转换,⽐如:Number(value)。
隐式类型转换是指在对不同类型的值使⽤运算符时,值可以在类型之间⾃动的转换,⽐如0 == null在 JS 中只有 3 种类型的转换:转化为 Number 类型:Number() / parseFloat() / parseInt()转化为 String 类型:String() / toString()转化为 Boolean 类型: Boolean()类型转换的逻辑⽆论在原始类型和对象类型上,他们都只会转换成上⾯ 3 种类型之⼀。
所以只需要弄清在什么场景下应该转成哪种类型就可以了转换为boolean显式:Boolean()⽅法可以⽤来显式将值转换成布尔型。
隐式:隐式类型转换通常在逻辑判断或者有逻辑运算符时被触发(|| && !)。
boolean 类型转换只会有 true 或者 false 两种结果。
除了“0/NaN/空字符串/null/undefined”五个值是false,其余都是true转换为string显式:String()⽅法可以⽤来显式将值转为字符串。
String([1,2,3]) //"1,2,3"String({}) //"[object Object]"隐式转换通常在有 + 运算符并且有⼀个操作数是 string 类型时被触发。
js数据类型和转化⼀、数据类型 基本数据类型:数字(number)、⽂本字符串(string)、布尔值(boolean)、未定义(undefined)、空(null)。
复合数据类型:对象(object) 对象类型中包括⼀些特殊的对象,函数(function)、数组(array); 还有⼀些专⽤的对象,如Date、Error、RegExp等专⽤对象。
备注:关于类型划分的⼀些⽭盾 空(null)通过typeof 函数可以得到 null 的数据类型为object,这说明null 为对象类型??然后null的特殊之处在于,如果是对象类型的话,是属于引⽤类型的,但我们通过下例可以看出 null 显然不是传递的对象的引⽤,⽽是传递的null 值本⾝,所以 null 值可以被认为同number 、boolean⼀样是基本类型。
alert(typeof (null));var n1 = null;var n2 = n1;n1 = 111;alert(n2); //提⽰null ⽂本字符串(string),相对于number 、boolean 、undefined基本数据类型是⽐较特殊的,其他的基本数据类型的⼤⼩是固定的,⽽String 是⼤⼩不定的,⽽对已⼀个字符串本 ⾝,它的内容是不可改变的。
下例我们可以认为var s2 = s1;是将s1所指向的对象的引⽤赋值给 s2,也就是s2 指向了'sss1'该字符串,s1 = 'sss2';则是将'sss2'的引⽤赋值给s1,所以alert提⽰的是sss1;String 兼具了基本类型和引⽤类型的⼀些特性,有点四不像,这也是由于它本⾝的特殊向所决定的。
var s1 = 'sss1';alert(typeof(s1));var s2 = s1;s1 = 'sss2';alert(s2); //提⽰sss1⼆、转化 1.数字转化成字符串 a.添加⼀个空的字符串 var_string = var_number +""; b.使⽤String()函数 var_string =String( var_number) ; c.使⽤toString()函数 var_string = var_number.toString() ; 2.字符串转化成数字 a.减去⼀个0 var_number = var_string -0; b.使⽤Number()函数 var_number =Number( var_string); c.使⽤parseInt(),parseFloat()函数 var_number =parseInt( var_string); 。
JS数据类型转换问题⼀、数据类型的转换1. 数据类型的转换⽅法强制转换(显⽰转换,主动转换)字符转数值parseInt(要转换的数值或变量)转整数从左向右依次转换,遇到第⼀个⾮数字的字符,停⽌转换忽略⼩数点后的内容,其实是将⼩数点识别成了⾮数字,所以没有四舍五⼊如果第⼀位就是⾮数字,直接 NaNNaN:not a number不是⼀个数字的数值型数据,⾮法的数值运算结果parseFloat(要转换的数值或变量)转⼩数从左向右依次转换,遇到第⼀个⾮数字的字符,停⽌转换可以识别⼩数点如果第⼀位就是⾮数字,直接 NaNNaN:not a number不是⼀个数字的数值型数据,⾮法的数值运算结果Math.round(要转换的数值或变量)四舍五⼊Math.round()不是专门做字符转数值的,专门做取整严格转换,只要出现⾮数字就是NaN取最近的整数Number(要转换的数值或变量)直接转Number()不是专门做字符转数值的,专门做系统内置的构造函数,⽤来创建数值对象严格转换,只要出现⾮数字就是NaN直接转换,不分⼩数整数数值转字符数值变量.toString()直接转换,相当于加个引号数值变量.toFixed(n)保留n位⼩数直接转换,相当于加个引号其他类型转换其他转布尔布尔转数值其他转字符隐式转换(被动转换)情况和规则:1. 算数运算+两边只要出现字符,结果必然为字符-、*、/、%结果必然是数值(字符转数值)2. 关系运算>、<、>=、<=两边那只要出现数值,那么另⼀边也会转为数值,进⾏⽐较⼆、数据的运算符1. 算数运算符+加号、加法+在js中不是单纯的加法:当加号两边都是数值型数据时,是加法运算两边任意⼀边出现字符就变成了拼接就不是加法,+已经不是单纯的加法了,变成了拼接,拼接就是将两个数组,直接组合起来-、*、/、%就是正常的数学运算就算两边不是数值,也会默认转成数值,进⾏运算如果某个数据不能转成数值,就会得到NaN2. 关系运算符 - 结果是布尔值>、<、>=、<=只要⼜⼀边出现数值,都是数值的⽐较规则如果都是字符,才是字符的⽐较规则:逐位⽐较,得到结果,就停⽌!=、==会发⽣隐式类型转换,只⽐较⼤⼩,不⽐较类型!==、===不会发⽣隐式类型转换,不仅⽐较⼤⼩,还⽐较类型3. 逻辑运算符 - 主要操作布尔值或 ||或的规则:两边只要出现true,结果就是true,必须都为false,结果踩死false且 &&且的规则:两边只要出现false,结果就是false,必须都为true,结果踩死true⾮!取反4. 赋值运算符=,+=,-=,*=,/=,%=先计算,再赋值 c1 = c1 + 10; c1 += 10;5. ⼀元运算符++⾃增增加1前后之分前⾃增++n:先计算,后使⽤后⾃增n++:先使⽤,后计算--⾃减减少1前后之分前⾃增--n:先计算,后使⽤后⾃增n--:先使⽤,后计算。
JavaScript中的类型转换1、隐式类型转换 ①== 如果相等操作的两个变量不是同⼀类型,那么相等运算符会尝试进⾏⼀些类型转换:如果⼀个是null,⼀个是undefined,则他们相等;如果⼀个值是数字,另⼀个是字符串,先将字符串转换为数字,然后使⽤转换后的值进⾏⽐较;如果⼀个是true,则将其转换为1再⽐较,如果其中⼀个是false,则将其转换为0再⽐较;如果⼀个值是对象,另⼀个值是数字或字符串,则将对象转换为原始值,再进⾏⽐较。
对象通过toString()或者valueOf()⽅法转为原始值。
JS语⾔核⼼的内置类⾸先尝试使⽤valueOf(),再尝试使⽤toString(),除了⽇期类,⽇期类只使⽤toString()转换。
其他不同类型的⽐较均不相等。
②< > <= >= ⽐较运算符。
操作数可以是任何类型,但是只有数字和字符串才能真正执⾏⽐较操作。
如果操作数是对象,那么对象先转换为原始值:如果valueOf()返回⼀个原始值,那么直接使⽤这个原始值。
否则使⽤toString()转换;对象转换为原始值之后,如果两个操作数都是字符串,那么按照字符串⽐较;对象转换为原始值后,如果⾄少有⼀个操作数不是字符串,那么两个都转换为数字进⾏⽐较。
如果其中⼀个是NaN,那么结果是false。
③- 减操作符将两个操作数都转换为数字。
④+ 加操作符,如果⼀个操作数是字符串,那么另外⼀个操作数也会转换为字符串。
⼀元加会将其操作数转换为数字。
⑤! 转换为布尔值并取反。
!!x等价于Boolean(x).2、显式类型转换 ①使⽤Boolean()/Number()/String()/Object()函数。
除了null和undefined的任何值都具有toString()⽅法,这个⽅法的执⾏结果通常和String()⽅法的返回结果⼀致。
②数字转字符串toString()⽅法,可接受参数,⽐较转成⼏进制。
JS数据类型转换方法主要有三种JavaScript数据类型转换是将一种数据类型转换成另一种数据类型的过程,通常是为了满足特定的运算或表达式的要求。
在JavaScript中,数据类型转换一共有三种方法:强制类型转换、自动类型转换和显式类型转换。
1.强制类型转换(强制转换):强制类型转换是通过手动编写代码来明确地将一个数据类型转换为另一个数据类型。
在JavaScript中,强制类型转换使用一些内置的函数或方法来完成。
以下是一些常见的强制类型转换的方法:- Number(:将一个值转换为数字类型。
如果转换失败,则返回NaN (Not a Number)。
- String(:将一个值转换为字符串类型。
- Boolean(:将一个值转换为布尔类型。
所有的基本数据类型都可以转换为布尔类型,但是转换结果可能会有所不同。
2.自动类型转换(隐式转换):自动类型转换是指JavaScript在表达式求值或操作过程中,根据运算符的规则和操作数的数据类型,自动将一种数据类型转换为另一种数据类型。
以下是一些常见的自动类型转换的情况:- 数字和字符串的自动转换:在数值和字符串之间进行数学运算时,JavaScript会自动将字符串转换为数字,然后执行运算。
- 字符串和布尔值的自动转换:在逻辑表达式中,JavaScript会将非空字符串转换为true,空字符串转换为false。
- 数字和布尔值的自动转换:在逻辑表达式中,JavaScript会将非零的数字转换为true,0和NaN转换为false。
3.显式类型转换(类型转换函数):显式类型转换是通过调用类型转换函数来手动将一个数据类型转换为另一个数据类型。
在JavaScript中,常见的类型转换函数有:- parseInt(:将字符串转换为整数类型。
- parseFloat(:将字符串转换为浮点数类型。
- toString(:将数字或其他数据类型转换为字符串类型。
总结:数据类型转换是JavaScript中常见的一个操作,主要有三种方法:强制类型转换、自动类型转换和显式类型转换。
js之类型转换⼀.显式类型转换1.Number(mix)-----把其他类型的数据转换成数字类型的数据//string类型-var num= Number('123');console.log(typeof(num)+':'+num); // number:123var num= Number('-123');console.log(typeof(num)+':'+num); // number:-123var num = Number('abc');console.log(typeof(num)+':'+num); // number:NaNvar num = Number('123abc');console.log(typeof(num)+':'+num); // number:NaN//boolean类型num = Number(true);//false为0console.log(typeof(num)+':'+num); // number:1//undefined类型num = Number(undefined)console.log(typeof(num)+':'+num); // number:NaN//对象num = Number(null);console.log(typeof(num)+':'+num); // number:0num = Number([]);;//空数组console.log(typeof(num)+':'+num); // number:0num=Number({});//空对象console.log(typeof(num)+':'+num); // number:NaNnum = Number([1,2]);//⾮空数组console.log(typeof(num)+':'+num); // number:NaN//注:如果参数是 Date 对象,Number() 返回从 1970 年 1 ⽉ 1 ⽇⾄今的毫秒数。
JavaScript--数据类型转换
在实际编程中需要将⼀部分的数据统⼀转换成某种数据类型进⾏处理,包括转换为字符串类型、转换为数字以及系统⾃动的数据类型转换。
1.转换为字符串
JavaScript是基于对象的脚本语⾔,所有数据类型都可以看做对象。
所有对象都有toString()⽅法。
2.转换为数字
只有对字符串型的数据(字符串中只有数字、正负号和⼩数点)的时候才能进⾏在正常转换,其他类型返回NaN(⾮数字)
a)parseIn()
b)parseFloat()
3.⾃动类型转换
在存在不同类型数据的表达中,系统将根据不同情况对数据的类型进⾏相应的处理
a)数值+字符串:数值转换为字符串,然后与字符串连接;
b)数值-字符串:字符串转为数值,计算两者之差;
c)字符串+字符串:连接字符串;
d)字符串之间的-*/:字符串转换为数值进⾏计算;
⾃动类型转换会造成计算结果得误差,为提⾼可读性,可进⾏强制转换(推荐),强制类型转换⽅法:
a)Boolean(value)
b)Number(value)
c)String(value)。
javascript的数据类型转换javascript是动态类型语⾔,也就是说变量没有类型限制,可以随时赋予任意值;所以类型是没法在编译阶段就知道的,只能在运⾏阶段才能知道如果某个运算符发现,运算⼦的类型和预期的不符,就会⾃动类型转换.javascript中类型转换包括: 强制类型转化和⾃动类型转换强制类型转换强制类型转换主要是指Number(),String()和Boolean()三个函数,⼿动将各种类型的值转换为数值,字符串,布尔值Number是将任意类型的值转换为数值Number()转换字符串,如果有⼀个字符不能转换为数值,则返回NaN// Number()转换空串,返回0Number('')// 如果字符串的每个字符都可以被转换成数值,则将字符串转换成相应的数值Number('123')// 如果字符串中只要有⼀个字符不能被转换成数值,则返回NaNNumber('123abc')Number()转换boolean值,true返回1,false返回0// NaNNumber(undefined);// 0Number(false);Number在将对象转换为数值时,将返回NaN,除了是包含⼀个数值的数组// 123Number([123]);// NaNNumber([12,123]);// NaNNumber({});Number()的转换对象的规则:1. 调⽤对象的valueOf(),如果valueOf⽅法返回的是原始数据类型,则直接对该值使⽤Number函数;如果valueOf⽅法返回的是对象,则执⾏第⼆步2. 调⽤对象的toString(),如果toString()返回的是原始数据类型,则对该值直接使⽤Number();如果toString()返回的是对象,就报错var obj = {a: 1;}// NaNconsole.log(Number(obj));// 等同于if(typeof obj.valueOf() == 'object'){Number(obj.toString());}else{Number(obj.valueOf());}obj.valueOf = function(){return 12;}// 返回12 证明如果valueOf⽅法返回基本数据类型,则不再执⾏后续步骤console.log(Number(obj));// valueOf返回的是对象obj.valueOf = function(){return {};}// toString⽅法返回的是基本数据类型obj.toString = function(){return 14;}// 输出14 证明如果valueOf⽅法返回的是对象的话,就会再次调⽤toString⽅法console.log(Number(obj));// valueOf和toString⽅法都返回对象obj.valueOf = function(){return {};}obj.toString = function(){return {};}// 报错 VM2556:14 Uncaught TypeError: Cannot convert object to primitive valueconsole.log(Number(obj));js中还有⼀个可以将字符串解析成数值的,就是parseIntparseInt是将字符串中的从第⼀位开始的有效数值部分转换为数值parseInt在转换前,会先将参数转换为字符串类型(调⽤toString())借⽤MDN上的解释: parseInt(string,radix)将⼀个字符串转换为radix进制的整数,radix为介于2-36之间的数如果 radix 是 undefined、0或未指定的,JavaScript会假定以下情况:如果输⼊的 string以 "0x"或"0x"(⼀个0,后⾯是⼩写或⼤写的X)开头,那么radix被假定为16,字符串的其余部分被解析为⼗六进制数。
JS 数据类型转换方法主要有三种
转换函数、强制类型转换、利用js变量弱类型转换。
1. 转换函数:
js提供了parseInt()和parseFloat()两个转换函数。
前者把值转换成整数,后者把值转换成浮点数。
只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。
在判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串。
parseInt()方法首先查看位置0处的字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。
但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的测试。
这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。
例如,如果要把字符串"1234blue "转换成整数,那么parseInt()将返回1234,因为当它检测到字符b时,就会停止检测过程。
字符串中包含的数字字面量会被正确转换为数字,因此字符串"0xA "会被正确转换为数字10。
不过,字符串"22.5 "将被转换成22,因为对于整数来说,小数点是无效字符。
一些示例如下:
parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN
parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。
基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,需如下调用parseInt()方法:
parseInt("AF", 16); //returns 175
当然,对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法:
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。
例如:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10
在这段代码中,两行代码都把字符串"010 "解析成了一个数字。
第一行代码把这个字符串看作八进制的值,解析它的方式与第二行代码(声明基数为8)相同。
最后一行代码声明基数为10,所以iNum3最后等于10。
parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字符之前的字符串转换成数字。
不过,对于这个方法来说,第一个出现的小数点是有效字符。
如果有两个小数点,
第二个小数点将被看作无效的,parseFloat()方法会把这个小数点之前的字符串转换成数字。
这意味着字符串"22.34.5 "将被解析成22.34。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,而不能用八进制形式或十六进制形式。
该
方法会忽略前导0,所以八进制数0908将被解析为908。
对于十六进制数0xA,该方法将返回NaN,因为在浮点数中,x不是有效字符。
此外,parseFloat()也没有基模式。
下面是使用parseFloat()方法的示例:
parseFloat("1234blue"); //returns 1234.0
parseFloat("0xA"); //returns NaN
parseFloat("22.5"); //returns 22.5
parseFloat("22.34.5"); //returns 22.34
parseFloat("0908"); //returns 908
parseFloat("blue"); //returns NaN
2. 强制类型转换
还可使用强制类型转换(type casting)处理转换值的类型。
使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。
这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。
如果该值是空字符串、数字0、undefined或null,它将返回false。
可以用下面的代码段测试Boolean型的强制类型转换。
Boolean(""); //false –empty string
Boolean("hi"); //true –non-empty string
Boolean(100); //true –non-zero number
Boolean(null); //false - null
Boolean(0); //false - zero
Boolean(new Object()); //true –object
Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。
还记得吗,parseInt()和parseFloat()方法只转换第一个无效字符之前的字符串,因此"4.5.6 "将被转换为"4.5 "。
用Number()进行强制类型转换,"4.5.6 "将返回NaN,因为整个字符串值不能转换成数字。
如果字符串值能被完整地
转换,Number()将判断是调用parseInt()方法还是调用parseFloat()方法。
下表说明了对不同的值调用Number()方法会发生的情况:
用法结果
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100
最后一种强制类型转换方法String()是最简单的,因为它可把任何值转换成字符串。
要执行这种强制类型转换,只需要调用作为参数传递进来的值的toString()方法,即把1转换成"1 ",把true转换成"true ",把false转换成"false ",依此类推。
强制转换成字符串和调用toString()方法的唯一不同之处在于,对null或undefined值强制类型转换可以生成字符串而不引发错误:
var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //won’t work, causes an error
3. 利用js变量弱类型转换
举个小例子,一看,就会明白了。
<script>
var str= '012.345 ';
var x = str-0;
x = x*1;
</script>。