javascript有多少中数据类型转换


这篇文章给大家分享的是有关javascript有多少中数据类型转换的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 javascript的两种数据类型转换:1、显式类型转换(又称强制类型转换),主要通过使用JavaScript内置的函数来转换数据;2、隐式类型转换,是指JavaScript根据运算环境自动转换值的类型。本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。JavaScript 是一种弱类型动态类型语言,变量没有类型限制,可以随时赋予任意值。上面代码中,变量x到底是数值还是字符串,取决于另一个变量y的值。y为true时,x是一个数值;y为false时,x是一个字符串。这意味着,x的类型没法在编译阶段就知道,必须等到运行时才能知道。虽然变量的数据类型是不确定的,但是各种运算符对数据类型是有要求的。如果运算符发现,运算子的类型与预期不符,就会自动转换类型。比如,减法运算符预期左右两侧的运算子应该是数值,如果不是,就会自动将它们转为数值。上面代码中,虽然是两个字符串相减,但是依然会得到结果数值1,原因就在于 JavaScript 将运算子自动转为了数值。javascript中的数据类型转换在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用js弱变量类型转换)。显式类型转换主要通过使用JavaScript内置的函数来转换;隐式类型转换是指JavaScript根据运算环境自动转换值的类型。在js中,想要将对象转换成原始值,必然会调用toPrimitive()内部函数,那么它是如何工作的呢? toPrimitive(input,preferedType)input是输入的值,preferedType是期望转换的类型,他可以是String或者Number,也可以不传。1)如果转换的类型是number,会执行以下步骤:2) 如果转换的类型是String,2和3会交换执行,即先执行toString()方法。3)可以省略preferedType,此时,日期会被认为是字符串,而其他的值会被当做Number。①如果input是内置的Date类型,preferedType视为String②否则视为Number,先调用valueOf,在调用toStringToBoolean(argument)注意:除了underfined,null,false,NaN,’’,0,-0,其他都返回trueToNumber(argument)ToString(argument)1.隐式类型转换:1.1-隐式转换介绍 在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换 例如1 > “0”这行代码在js中并不会报错,编译器在运算符时会先把右边的”0″转成数字0`然后在比较大小
————————————————
1.2-隐式转换规则(1). 转成string类型: +(字符串连接符)
(2).转成number类型:++/–(自增自减运算符) + – * / %(算术运算符) > =
加法规则
1.令lval=符号左边的值,rval=符号右边的值
2.令lprim=toPrimitive(lval),rprim=toPrimitive(rval)
如果lprim和rprim中有任意一个为string类型,将ToString(lprim)和ToString(rprim)的结果做字符串拼接
否则,将ToNumber(lprim)和ToNumber(rprim)的结果做算数加法双等规则
1.xy都为Null或者underfined,return true;一方为Null或者underfined、NaN,return false
2.如果x和y为String,Number,Boolean并且类型不一致,都转为Number在进行比较
3.如果存在Object,转换为原始值在进行比较(3). 转成boolean类型:!(逻辑非运算符)
2.强制类型(显式类型)转换:
通过手动进行类型转换,Javascript提供了以下转型函数:转换为数值类型:Number(mix)、parseInt(string,radix)、parseFloat(string)
转换为字符串类型:toString(radix)、String(mix)
转换为布尔类型:Boolean(mix)2.1 Boolean(value)、Number(value) 、String(value)new Number(value) 、new String(value)、 new Boolean(value)传入各自对应的原始类型的值,可以实现“装箱”—–即将原始类型封装成一个对象。其实这三个函数不仅可以当作构造函数,还可以当作普通函数来使用,将任何类型的参数转化成原始类型的值。其实这三个函数在类型转换的时候,调用的就是js内部的ToBoolean(argument)、ToNumber(argume免费云主机域名nt)、ToString(argument)
2.2 parseInt(string,radix)
将字符串转换为整数类型的数值。它也有一定的规则:(1)忽略字符串前面的空格,直至找到第一个非空字符
(2)如果第一个字符不是数字符号或者负号,返回NaN
(3)如果第一个字符是数字,则继续解析直至字符串解析完毕或者遇到一个非数字符号为止
(4)如果上步解析的结果以0开头,则将其当作八进制来解析;如果以0x开头,则将其当作十六进制来解析
(5)如果指定radix参数,则以radix为基数进行解析2.3 parseFloat(string)将字符串转换为浮点数类型的数值.规则:它的规则与parseInt基本相同,但也有点区别:字符串中第一个小数点符号是有效的,另外parseFloat会忽略所有前导0,如果字符串包含一个可解析为整数的数,则返回整数值而不是浮点数值。2.4 toString(radix)除undefined和null之外的所有类型的值都具有toString()方法,其作用是返回对象的字符串表示感谢各位的阅读!关于“javascript有多少中数据类型转换”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

相关推荐: Javascript/jQuery的插件SVG SketchPad怎么使用

本文小编为大家详细介绍“Javascript/jQuery的插件SVG SketchPad怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Javascript/jQuery的插件SVG SketchPad怎么使用”文章能帮助大家解决疑惑,下面跟着小编的…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/22 20:05
下一篇 08/22 20:47

相关推荐