avaScript 的数据类型分为六种, 分别为 null,undefined,boolean,string,number,object.object 是引用类型, 其它的五种是基本类型或者是原始类型. 我们可以用 typeof 方法打印来某个是属于哪个类型的. 不同类型的变量比较要先转类型, 叫做类型转换, 类型转换也叫隐式转换. 隐式转换通常发生在运算符加减乘除, 等于, 还有小于, 大于等..
- typeof '11' //string
- typeof(11) //number
- '11' < 4 //false
基本类型的转换
下面先讲加减乘除:
1. 字符串加数字, 数字就会转成字符串.
2. 数字减字符串, 字符串转成数字. 如果字符串不是纯数字就会转成 NaN. 字符串减数字也一样. 两个字符串相减也先转成数字.
3. 乘, 除, 大于, 小于跟减的转换也是一样.
- // 隐式转换 + - * == /
- // +
- 10 + '20' //2010
- // -
- 10 - '20' //-10
- 10 - 'one' //NaN
- 10 - '100a' //NaN
- //*
- 10*'20' //200
- '10'*'20' //200
- // /
- 20/'10' //2
- '20'/'10' //2
- '20'/'one' //NaN
再来看看一组 == 的.
1.undefined 等于 null
2. 字符串和数字比较时, 字符串转数字
3. 数字为布尔比较时, 布尔转数字
4. 字符串和布尔比较时, 两者转数字
- // ==
- undefined == null; //true
- '0' == 0; //true, 字符串转数字
- 0 == false; //true, 布尔转数字
- '0' == false; //true, 两者转数字
- null == false; //false
- undefined == false; //false
引用类型的转换
基本类型间的比较相对简单. 引用类型和基本类型的比较就相对复杂一些, 先要把引用类型转成基本类型, 再按上述的方法比较. 引用类型转布尔全是 true. 比如空数组, 只要是对象就是引用类型, 所以 [] 为 true. 引用类型转数字或者字符串就要用 valueOf()或者 toString(); 对象本身就继承了 valuOf()和 toString(), 还可以自定义 valueOf()和 toString(). 根据不同的对象用继承的 valueOf()转成字符串, 数字或本身, 而对象用 toString 就一定转为字符串. 一般对象默认调用 valueOf().
1. 对象转数字时, 调用 valueOf();
2. 对象转字符串时, 调用 toString();
本次给大家推荐一个免费的学习圈, 里面概括移动应用网站开发, CSS,html,webpack,vue node angular 以及面试资源等.** 获取资料
来源: http://www.bubuko.com/infodetail-3061823.html