js(二)-- 类型的转换
来源:互联网 发布:热血江湖人工智能披风 编辑:程序博客网 时间:2024/06/05 00:49
说到类型的转化,很容易想到什么类型的转化,是隐式类型还是显示类型。那么今天就看一下这个变换吧。
显示类型转换
当然,想要判断数据是什么类型的,得有工具呀,要不怎么来判断它的类型是什么的呢?
我们有一个操作符typeof可以检测数据的类型。
typeof()//它的返回值就是数据的类型。
typeof能返回的类型一共只有6种:
numner、string、boolean、undefined、object、function
数组和null类型的都属于object。其实null并不是一种对象,只是因为历史遗留性的问题,null通常用来作为对象占位符,所以被浏览器归到了object里面了。上文说到系统为什么识别null是对象的了。
• NaN属于number类型。虽然是非数,但是非数也是数字的一种。
• 同时,typeof返回的结果其实是一种字符串,我们可以用typeof来测试。
typeof(typeof(123))//==>string
- Number(mix)
- 这个方法是可以把其他类型的数据转换成数字类型的数据.
Number("123")//=>123Number("undefined")//=>NaNNumber(true)//=>1
- font color=”red” size=”4px”>parseInt(string, radix)
- 这个方法是将字符串转换成整型类型数字的。其中第二个参数radix基底是可以选择的参数。
当radix为空的时候,这个函数的作用仅仅是将字符串转换成数字。
当参数string里面既包括数字字符串又包括其他字符串的时候,它会将看到其他字符串就停止了,不会继续转换后面的数字型字符串了。
- 这个方法是将字符串转换成整型类型数字的。其中第二个参数radix基底是可以选择的参数。
parseInt('123abc345') // 123 parseInt('abc123') // NaN parseInt('123') // 123 parseInt('abc') // NaN parseInt(true) // NaN
当radix不为空的时候,这个函数可以用来作为进制转换,第二个参数的作用则是,我们把第一个参数的数字当成几进制的数字来转换成十进制。
• radix参数的范围是2-36。
var demo = 11;parseInt(demo, 16) // 17
是这样解释的,十六进制的11转化为十进制是多少,这个适合于已知进制转化为十进制。
- parseFloat( string)
- 这个方法和parseInt方法类似,是将字符串转换成浮点类型的数字,同样是碰到第一个非数字型字符停止,但是由于浮点型数据有小数点,所以它会识别第一个小数点以及后面的数字,但是第二个小数点就无法识别了。
parseFloat('123.2.3') // 123.2parseFloat('123.2abc') // 123.2parseFloat('123.abc') // 123
- toString(radix)
- 这个方法和前面的都一点不同,它是对象上的方法,任何数据类型都可以使用,转换成字符串类型,涉及到包装类的一些知识。
同样radix基底是可选参数,当为空的时候,仅仅代表将数据转化成字符串。
- 这个方法和前面的都一点不同,它是对象上的方法,任何数据类型都可以使用,转换成字符串类型,涉及到包装类的一些知识。
var num = 111;num.toString()//=>string 111
当写了radix基底的时候,则代表我们要将这个数字转化成几进制的数字型字符串。
var demo = 10;demo.toString(2) // "1010"
这个进行进制的转换比较方便,然后配合parseInt(),这样可以进行任意一个进制之间的转换。
var num = 10;var num1 = parseInt(num,16);//把十六进制的10转换为16进制。var str = num1.toString(2);//=>"10000" 把十六至今的num1,转化成二进制的数。
- String()
- 和Number差不多,直接转换成字符串类型的,也没有什么别的功能。
- Boolean()
- 和Number类似,把任何类型转换成布尔类型。
Boolean(0); // falseBoolean(undefined); // falseBoolean(null); // falseBoolean(''); // falseBoolean(NaN); // false
记着这几个为false的,剩下的就是true。
隐式类型转换
- isNaN()
isNaN(NaN); // true isNaN('abc'); // true isNaN(123); // false
这中间隐含了一个隐式转换,它会先将你传的参数调用一下Number方法之后,再看看结果是不是NaN,不过这个方法可以检测NaN本身。
- 算术运算符
var demo = 'abc';demo++; //NaNdemo = '123';++demo; //124demo = '123';demo++; //123
这是++运算符,可以调用隐式的Number属性,先将demo转换成数字类型的,然后再运算。
+、-、*、/在执行之前都会先进行类型转换,都转换成数字类型的在进行运算。
- 逻辑运算符也会隐式调用类型转换
- &&和||都是先把表达式调用Boolean,换成布尔值再进行判断,看看是true还是false,不过返回的结果还是本身表达式的结果。
!取反操作符返回的结果也是调用Boolean方法之后的结果。
- &&和||都是先把表达式调用Boolean,换成布尔值再进行判断,看看是true还是false,不过返回的结果还是本身表达式的结果。
当然也有不发生类型转换的比较运算符
===严格等于
!==严格不等于
因为这两个运算符,就是要么就是严格等于,要么就不等于,所以没有什么可以比较的。
- js(二)-- 类型的转换
- Struts2的类型转换(二)集合类型的转换
- js的类型转换
- js中类型的转换。
- js的强制类型转换
- (二)struts2类型转换
- struts2类型转换(二)
- 有章法的学习c++(5)类型转换(二)
- JS类型转换(强制和自动的规则)
- JS的类型转换,强制转换和隐式转换
- JS的类型转换,强制转换和隐式转换
- struts2的一些用法(二):类型转换
- js的强制类型转换 type casting
- js其他类型到string的转换
- [js点滴]Javascript类型转换的技巧
- 图像类型、MATLAB数据类型,以及类型之间的转换(二)
- Struts2复习(二)类型转换详解
- C++冲刺(二)内置类型转换
- ios字体大小适配(Category)
- Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
- MySQL is running but PID file could not be found(解决方法)
- java设计模式都有哪些?
- 【转载】如何搭建一个快速的分布式计算平台?Parallel python提供了简易的方式来实现此目的。
- js(二)-- 类型的转换
- python列表推导式
- 360CERT:GoAead RCE(CVE–2017–17562)预警分析
- 数据挖掘学习------------------4-分类方法-4-神经网络(ANN)
- C++标准库总结
- Android打包失败原因
- 机器学习–使用numpy随机打散训练数据
- js读取usb扫码枪数据
- ansible管理windows实践