数码资讯
JS型转换和引用类型详解(boolean_number_string)
一、类型转换 1。转换成字符串 有趣的关于ECMAscript的布尔值,原始值数字和字符串是伪对象,这意味着他们实际拥有的属性和方法。 如: 复制代码代码如下所示: 无功scolor =蓝色; 警报(scolor。长度); / /输出4 总之,3个主要的价值观,布尔值、数字和字符串有toString
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
一、类型转换
1。转换成字符串
有趣的关于ECMAscript的布尔值,原始值数字和字符串是伪对象,这意味着他们实际拥有的属性和方法。
如:
复制代码代码如下所示:
无功scolor =蓝色;
警报(scolor。长度); / /输出4
总之,3个主要的价值观,布尔值、数字和字符串有toString()方法。ECMAscript所定义的所有物体都有toString()方法,它是否是一个伪对象或一个真正的对象。
布尔类型的ToString()方法只输出真或假
复制代码代码如下所示:
无功bfound = false;
警报(bfound.tostring()); / /输出假
toString()方法的数值类型是非常特殊的。它有两种模式,即默认模式和基本模式。采用默认模式,和toString()方法只输出数值与相应的字符串(无论是整数、浮点数或科学计数法)。
复制代码代码如下所示:
无功inum1 = 10;
无功fnum2 = 10;
警报(inum1.tostring()); / /输出10
警报(fnum2.tostring()); / /输出10
基于数量型toString基地模式()方法,数量可以与不同的基地输出(基数)。
复制代码代码如下所示:
var iNum = 10;
警报(inum.tostring(2)); / /输出1010
警报(inum.tostring(8)); / /输出12
警报(inum.tostring(16)); / /输出
2。转换为数字
ECMAscript提供了两种方法将非原始值的数字为数字,即parseInt()和parseFloat()。
注意:只有调用字符串类型的这些方法(除了数字),您才能正确地运行所有其他类型的返回。
例如:
复制代码代码如下所示:
无功inum1 = parseInt(1234blue ); / /返回1234
无功inum2 = parseInt(恶); / /返回10
无功inum3 = parseInt(22.5); / /返回22
无功inum4 = parseInt(蓝色); / /返回NaN
在parseInt()方法也有一个基本模式,可以转换成二进制,八进制,十六进制的字符串,或任何其他十进制整数。二参数指定的十进制系统解析。
复制代码代码如下所示:
无功inum1 = parseInt(AF,16); / /返回175
无功inum2 = parseInt(10, 2); / /返回2
无功inum3 = parseInt(10
无功inum4 = parseInt(10
说明:如果十进制数包含指南0,最好使用基数10,否则八进制的值将得到。
复制代码代码如下所示:
无功inum1 = parseInt(010); / /返回8
无功inum2 = parseInt(010
无功inum3 = parseInt(010
parseFloat()方法类似于parseInt()方法。它从0位置直到找到第一个非有效特征看每一个字符,然后在字符转换为数字的字符串。对于这种方法,第一个小数点是一个有效的字符。如果使用的是两个小数点,小数点的二将被认为是无效的。在使用这种方法的另一个区别是,这个字符串必须是十进制来表示浮点数。
复制代码代码如下所示:
无功fnum1 = parseFloat(1234blue ); / /返回1234
无功fnum2 = parseFloat(0xa ) / /返回NaN;
无功fnum3 = parseFloat(22.5); / /返回22.5
无功fnum4 = parseFloat(22.34.5 ); / /返回22.34
无功fnum5 = parseFloat(0908); / /返回NaN
无功fnum6 = parseFloat(蓝色); / /返回NaN
三.强制类型转换
3种类型的强制类型转换可在ECMAscript如下:
(1)Boolean(价值)
将给定值转换为布尔类型。
当要转换的值是至少一个字符串、非0个数字或对象时,布尔()函数返回true。如果该值为空字符串,则为数字0、未定义的或NULL,则返回false。
如:
复制代码代码如下所示:
var();
var =布尔()
var =布尔(100)
VaR B4 =布尔(空); / /假
var =布尔(0); false
var =布尔(新对象())
(2)数字(值)
将给定的值转换成数字(可以是整数或浮点数)。
记住,parseInt()和parseFloat()方法将字符串在第一个无效字符,所以4.5.6将改为4.5,用数字()对于强制类型转换,4.5.6将返回南因为整个字符串的值无法转换一个数。如果字符串可以完全转换,数()判断是否调用parseInt()方法或叫parseFloat()方法。
如:
复制代码代码如下所示:
编号(false); / 0
编号(true); / 1
编号(未定义);
编号(NULL);0
编号(5.5); / 5.5
编号(56); / 56
号(5.6.7 ); / /南
编号(新对象());
编号(100); / 100
(3)字符串(值)
将给定值转换为字符串。
从调用toString()方法的唯一区别是,强制类型转换为空或未定义的值可以不导致错误产生的字符串:
复制代码代码如下所示:
var =字符串(NULL);
无功onull = null;
VaR S2 = onull.tostring(); / /导致错误
二、引用类型
引用类型称为类(class),即当参考值时,对象是handled.ecmascript定义一个对象的定义,这在其他编程语言在逻辑上是等价的类。
1对象类
在ECMAscript所有的类都是由这类继承,并在对象类的所有属性和方法出现在其他类(覆盖)。
对象类的属性:
(1)对构造函数创建的对象的函数的引用(指针)----对于对象类,指针指向原始的对象()函数。
(2)通过原型对对象的对象原型的引用----对于所有类,它默认为对象对象的一个实例。
对象类的方法:
(1),HasOwnProperty(财产)来确定一个对象是否具有特定的属性,属性必须与指定的字符串(例如:o.hasownproperty(名称))。
(2),IsPrototypeOf(对象)-原型确定对象是否是另一个对象。
(3)。propertyisenumerable(财产)来确定是否一个给定的属性可以列举一个..在声明。
(4),ToString()的返回对象的字符串表示。不同的ECMAscript实现具有不同的值。
(5),ValueOf()--返回原始值,是最适合的对象。在许多课上,法的价值作为回报toString返回值相同()。
2布尔类
布尔对象很少用在ECMAscript,即使他们的使用,理解它是不容易的。
例如:
复制代码代码如下所示:
无功ofalseobject =新的布尔(假);
VaR危险= ofalseobject真 / /输出正确;
原因:在布尔表达式中,所有对象都自动转换为true。
3数字类
number.max_value等特殊值的数量级所有静态特性。得到一个数字对象的数量的值,你只需要使用价值()方法:
VaR的索引编号= onumberobject.valueof();
除了从对象类继承的标准方法之外,数字类还有一些处理数值的特殊方法。
的固定()方法:
返回具有指定位数的数字的字符串表示。该方法可以用0到20个十进制数表示一个数字,该数字可能导致超出该范围的值的错误。
如:
复制代码代码如下所示:
无功onumberobject =新号(99);
Aler(onumberobject.tofixed(2)); / /输出99
的toexponential()方法:
返回是由科学记数法表示的数字的字符串形式。该方法也有一个参数,指定要输出的小数位数:
复制代码代码如下所示:
无功onumberobj =新号(99);
警报(onumberobj.toexponential(1)); / /输出9.9e + 1
的精密()方法:
根据最有意义的形式返回该数字的预定形式或索引形式。它有一个参数,即表示数字的总数(不包括索引)。
复制代码代码如下所示:
无功onumberobj =新号(99);
警报(onumberobj.toprecision(1)); / /输出1E + 2 = = 100
你可以看到,在精密()方法是圆形对数,从而得到尽可能接近真实值。
如:
复制代码代码如下所示:
无功onumberobj =新号(99);
警报(onumberobj.toprecision(2)); / /输出99
警报(onumberobj.toprecision(3)); / /输出99
的固定的(),()和()toexponential精密方法都执行舍入操作才能正确用正确的数字表示一个数。
的tolocalestring()方法:
可以显示在网页上的格式,如5210.50显示为5210.50,但如果它的使用价值,我们应该使用parseFloat($(n_yjje )(。value.replace / / g,));其值后更换一个逗号的形式。
注意:类似于布尔对象,数字对象也很重要,但应该少用它来避免潜在的问题。
4字符串类
valueOf()的字符串对象的toString()方法,方法返回的字符串类型的原始值:
复制代码代码如下所示:
警报(ostringobj。值)(ostringobj ToString)( / /输出= true)
字符串类有一个属性长度,即字符串的字符数:
复制代码代码如下所示:
无功ostringobj =新的字符串(Hello World);
警报(ostringobj。长度);输出11
注意:即使字符串包含双字节字符,每个字符都只有一个字符。
charAt()方法:
返回是一个字符串,该字符串包含指定位置的字符:
复制代码代码如下所示:
无功ostringobj =新的字符串(Hello World);
警报(ostringobj.charat(1));输出E
的charcodeat()方法:
返回是一个字符串,包含指定位置的字符代码:
复制代码代码如下所示:
无功ostringobj =新的字符串(Hello World);
警报(ostringobj.charcodeat(1));输出101
Concat()方法:
它用于将一个或多个字符串连接到字符串对象的原始值。
复制代码代码如下所示:
无功ostringobj =新的字符串(你好);
VaR结果= ostringobj.concat(世界); / / ostringobj +世界;更常见
警报(的成绩); / /输出Hello World
警报(ostringobj); / /输出Hello
IndexOf()和()方法返回的字符串指定子串的位置在其他字符串(或1,如果它没有找到子字符串)。这两种方法之间的差异(指数)大于从字符串的开头(位置0)为字符串(检索字符串)是从字符串的末尾搜索子串。
localecompare(),比较字符串(按字母顺序排列的,比较大的大),方法有一个参数的字符串进行比较,并返回一个3值以下:
1、如果字符串对象按照参数中字符串的字母顺序排列,它将返回负数(最常见的是- 1,但真正的返回是由实现决定的)。
2。如果字符串对象与参数中的字符串相等,返回0。
3、如果字符串对象按照参数中字符串的字母顺序排列,它返回正数(最常见的是1,但真正的返回是由实现决定的)。
片()和()方法的子串:
这两种方法返回的字符串的所有子串进行处理,都接受一个或两个参数,第一个参数是子串被收购的初始位置。第二个参数是字符串结束之前得到的位置(在末尾的位置的字符不包括大的返回值)。如果二参数被省略,结束点是默认的字符串的长度。这两种方法不改变字符串对象本身的价值。
复制代码代码如下所示:
无功ostringobj =新的字符串(Hello World);
警报(ostringobj.slice(3)); / /输出罗的世界
警报(ostringobj.slice(3,7)); / /输出低
注意:对于负数,切片()方法将参数添加到字符串的长度中。Substring()方法将其作为0处理(也就是说它会忽略它)。
复制代码代码如下所示:
无功ostringobj =新的字符串(Hello World);
警报(ostringobj.slice(- 3)); / /输出世界相当于反以
警报(ostringobj.substring(- 3)); / /输出Hello World
警报(ostringobj.slice(3,4)); / /输出低
警报(ostringobj.substring(3,4)); / / 帮助输出字符串()总是以较小的数为出发点和较大的数作为终止点。
ToLowerCase(),(),tolocallowercase toUpperCase()和()tolocaleuppercase:
前两种方法将字符串转换成一个完整的小写,后者是用于将字符串转换成一个完整的案例,tolocallowercase tolocaleuppercase()和()的方法是基于一个特定的区域。
请记住,String类的所有属性和方法都可以应用于字符串的原始值,因为它们是伪对象。
5.instanceof算子
引用类型的值的存储在typeof运算符的使用是一个问题,它返回的对象,无论什么类型的对象引用,实例方法表明开发商明确标识的对象作为一个特定的类型,如:
复制代码代码如下所示:
无功ostrobj =新的字符串(Hello World);
警报(ostrobj是字符串); / /输出真
1。转换成字符串
有趣的关于ECMAscript的布尔值,原始值数字和字符串是伪对象,这意味着他们实际拥有的属性和方法。
如:
复制代码代码如下所示:
无功scolor =蓝色;
警报(scolor。长度); / /输出4
总之,3个主要的价值观,布尔值、数字和字符串有toString()方法。ECMAscript所定义的所有物体都有toString()方法,它是否是一个伪对象或一个真正的对象。
布尔类型的ToString()方法只输出真或假
复制代码代码如下所示:
无功bfound = false;
警报(bfound.tostring()); / /输出假
toString()方法的数值类型是非常特殊的。它有两种模式,即默认模式和基本模式。采用默认模式,和toString()方法只输出数值与相应的字符串(无论是整数、浮点数或科学计数法)。
复制代码代码如下所示:
无功inum1 = 10;
无功fnum2 = 10;
警报(inum1.tostring()); / /输出10
警报(fnum2.tostring()); / /输出10
基于数量型toString基地模式()方法,数量可以与不同的基地输出(基数)。
复制代码代码如下所示:
var iNum = 10;
警报(inum.tostring(2)); / /输出1010
警报(inum.tostring(8)); / /输出12
警报(inum.tostring(16)); / /输出
2。转换为数字
ECMAscript提供了两种方法将非原始值的数字为数字,即parseInt()和parseFloat()。
注意:只有调用字符串类型的这些方法(除了数字),您才能正确地运行所有其他类型的返回。
例如:
复制代码代码如下所示:
无功inum1 = parseInt(1234blue ); / /返回1234
无功inum2 = parseInt(恶); / /返回10
无功inum3 = parseInt(22.5); / /返回22
无功inum4 = parseInt(蓝色); / /返回NaN
在parseInt()方法也有一个基本模式,可以转换成二进制,八进制,十六进制的字符串,或任何其他十进制整数。二参数指定的十进制系统解析。
复制代码代码如下所示:
无功inum1 = parseInt(AF,16); / /返回175
无功inum2 = parseInt(10, 2); / /返回2
无功inum3 = parseInt(10
无功inum4 = parseInt(10
说明:如果十进制数包含指南0,最好使用基数10,否则八进制的值将得到。
复制代码代码如下所示:
无功inum1 = parseInt(010); / /返回8
无功inum2 = parseInt(010
无功inum3 = parseInt(010
parseFloat()方法类似于parseInt()方法。它从0位置直到找到第一个非有效特征看每一个字符,然后在字符转换为数字的字符串。对于这种方法,第一个小数点是一个有效的字符。如果使用的是两个小数点,小数点的二将被认为是无效的。在使用这种方法的另一个区别是,这个字符串必须是十进制来表示浮点数。
复制代码代码如下所示:
无功fnum1 = parseFloat(1234blue ); / /返回1234
无功fnum2 = parseFloat(0xa ) / /返回NaN;
无功fnum3 = parseFloat(22.5); / /返回22.5
无功fnum4 = parseFloat(22.34.5 ); / /返回22.34
无功fnum5 = parseFloat(0908); / /返回NaN
无功fnum6 = parseFloat(蓝色); / /返回NaN
三.强制类型转换
3种类型的强制类型转换可在ECMAscript如下:
(1)Boolean(价值)
将给定值转换为布尔类型。
当要转换的值是至少一个字符串、非0个数字或对象时,布尔()函数返回true。如果该值为空字符串,则为数字0、未定义的或NULL,则返回false。
如:
复制代码代码如下所示:
var();
var =布尔()
var =布尔(100)
VaR B4 =布尔(空); / /假
var =布尔(0); false
var =布尔(新对象())
(2)数字(值)
将给定的值转换成数字(可以是整数或浮点数)。
记住,parseInt()和parseFloat()方法将字符串在第一个无效字符,所以4.5.6将改为4.5,用数字()对于强制类型转换,4.5.6将返回南因为整个字符串的值无法转换一个数。如果字符串可以完全转换,数()判断是否调用parseInt()方法或叫parseFloat()方法。
如:
复制代码代码如下所示:
编号(false); / 0
编号(true); / 1
编号(未定义);
编号(NULL);0
编号(5.5); / 5.5
编号(56); / 56
号(5.6.7 ); / /南
编号(新对象());
编号(100); / 100
(3)字符串(值)
将给定值转换为字符串。
从调用toString()方法的唯一区别是,强制类型转换为空或未定义的值可以不导致错误产生的字符串:
复制代码代码如下所示:
var =字符串(NULL);
无功onull = null;
VaR S2 = onull.tostring(); / /导致错误
二、引用类型
引用类型称为类(class),即当参考值时,对象是handled.ecmascript定义一个对象的定义,这在其他编程语言在逻辑上是等价的类。
1对象类
在ECMAscript所有的类都是由这类继承,并在对象类的所有属性和方法出现在其他类(覆盖)。
对象类的属性:
(1)对构造函数创建的对象的函数的引用(指针)----对于对象类,指针指向原始的对象()函数。
(2)通过原型对对象的对象原型的引用----对于所有类,它默认为对象对象的一个实例。
对象类的方法:
(1),HasOwnProperty(财产)来确定一个对象是否具有特定的属性,属性必须与指定的字符串(例如:o.hasownproperty(名称))。
(2),IsPrototypeOf(对象)-原型确定对象是否是另一个对象。
(3)。propertyisenumerable(财产)来确定是否一个给定的属性可以列举一个..在声明。
(4),ToString()的返回对象的字符串表示。不同的ECMAscript实现具有不同的值。
(5),ValueOf()--返回原始值,是最适合的对象。在许多课上,法的价值作为回报toString返回值相同()。
2布尔类
布尔对象很少用在ECMAscript,即使他们的使用,理解它是不容易的。
例如:
复制代码代码如下所示:
无功ofalseobject =新的布尔(假);
VaR危险= ofalseobject真 / /输出正确;
原因:在布尔表达式中,所有对象都自动转换为true。
3数字类
number.max_value等特殊值的数量级所有静态特性。得到一个数字对象的数量的值,你只需要使用价值()方法:
VaR的索引编号= onumberobject.valueof();
除了从对象类继承的标准方法之外,数字类还有一些处理数值的特殊方法。
的固定()方法:
返回具有指定位数的数字的字符串表示。该方法可以用0到20个十进制数表示一个数字,该数字可能导致超出该范围的值的错误。
如:
复制代码代码如下所示:
无功onumberobject =新号(99);
Aler(onumberobject.tofixed(2)); / /输出99
的toexponential()方法:
返回是由科学记数法表示的数字的字符串形式。该方法也有一个参数,指定要输出的小数位数:
复制代码代码如下所示:
无功onumberobj =新号(99);
警报(onumberobj.toexponential(1)); / /输出9.9e + 1
的精密()方法:
根据最有意义的形式返回该数字的预定形式或索引形式。它有一个参数,即表示数字的总数(不包括索引)。
复制代码代码如下所示:
无功onumberobj =新号(99);
警报(onumberobj.toprecision(1)); / /输出1E + 2 = = 100
你可以看到,在精密()方法是圆形对数,从而得到尽可能接近真实值。
如:
复制代码代码如下所示:
无功onumberobj =新号(99);
警报(onumberobj.toprecision(2)); / /输出99
警报(onumberobj.toprecision(3)); / /输出99
的固定的(),()和()toexponential精密方法都执行舍入操作才能正确用正确的数字表示一个数。
的tolocalestring()方法:
可以显示在网页上的格式,如5210.50显示为5210.50,但如果它的使用价值,我们应该使用parseFloat($(n_yjje )(。value.replace / / g,));其值后更换一个逗号的形式。
注意:类似于布尔对象,数字对象也很重要,但应该少用它来避免潜在的问题。
4字符串类
valueOf()的字符串对象的toString()方法,方法返回的字符串类型的原始值:
复制代码代码如下所示:
警报(ostringobj。值)(ostringobj ToString)( / /输出= true)
字符串类有一个属性长度,即字符串的字符数:
复制代码代码如下所示:
无功ostringobj =新的字符串(Hello World);
警报(ostringobj。长度);输出11
注意:即使字符串包含双字节字符,每个字符都只有一个字符。
charAt()方法:
返回是一个字符串,该字符串包含指定位置的字符:
复制代码代码如下所示:
无功ostringobj =新的字符串(Hello World);
警报(ostringobj.charat(1));输出E
的charcodeat()方法:
返回是一个字符串,包含指定位置的字符代码:
复制代码代码如下所示:
无功ostringobj =新的字符串(Hello World);
警报(ostringobj.charcodeat(1));输出101
Concat()方法:
它用于将一个或多个字符串连接到字符串对象的原始值。
复制代码代码如下所示:
无功ostringobj =新的字符串(你好);
VaR结果= ostringobj.concat(世界); / / ostringobj +世界;更常见
警报(的成绩); / /输出Hello World
警报(ostringobj); / /输出Hello
IndexOf()和()方法返回的字符串指定子串的位置在其他字符串(或1,如果它没有找到子字符串)。这两种方法之间的差异(指数)大于从字符串的开头(位置0)为字符串(检索字符串)是从字符串的末尾搜索子串。
localecompare(),比较字符串(按字母顺序排列的,比较大的大),方法有一个参数的字符串进行比较,并返回一个3值以下:
1、如果字符串对象按照参数中字符串的字母顺序排列,它将返回负数(最常见的是- 1,但真正的返回是由实现决定的)。
2。如果字符串对象与参数中的字符串相等,返回0。
3、如果字符串对象按照参数中字符串的字母顺序排列,它返回正数(最常见的是1,但真正的返回是由实现决定的)。
片()和()方法的子串:
这两种方法返回的字符串的所有子串进行处理,都接受一个或两个参数,第一个参数是子串被收购的初始位置。第二个参数是字符串结束之前得到的位置(在末尾的位置的字符不包括大的返回值)。如果二参数被省略,结束点是默认的字符串的长度。这两种方法不改变字符串对象本身的价值。
复制代码代码如下所示:
无功ostringobj =新的字符串(Hello World);
警报(ostringobj.slice(3)); / /输出罗的世界
警报(ostringobj.slice(3,7)); / /输出低
注意:对于负数,切片()方法将参数添加到字符串的长度中。Substring()方法将其作为0处理(也就是说它会忽略它)。
复制代码代码如下所示:
无功ostringobj =新的字符串(Hello World);
警报(ostringobj.slice(- 3)); / /输出世界相当于反以
警报(ostringobj.substring(- 3)); / /输出Hello World
警报(ostringobj.slice(3,4)); / /输出低
警报(ostringobj.substring(3,4)); / / 帮助输出字符串()总是以较小的数为出发点和较大的数作为终止点。
ToLowerCase(),(),tolocallowercase toUpperCase()和()tolocaleuppercase:
前两种方法将字符串转换成一个完整的小写,后者是用于将字符串转换成一个完整的案例,tolocallowercase tolocaleuppercase()和()的方法是基于一个特定的区域。
请记住,String类的所有属性和方法都可以应用于字符串的原始值,因为它们是伪对象。
5.instanceof算子
引用类型的值的存储在typeof运算符的使用是一个问题,它返回的对象,无论什么类型的对象引用,实例方法表明开发商明确标识的对象作为一个特定的类型,如:
复制代码代码如下所示:
无功ostrobj =新的字符串(Hello World);
警报(ostrobj是字符串); / /输出真
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。