js数据类型及类型转换

一、基本数据类型

js定义了6种基本数据类型

  • null: 空。表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象,转为数字时为0,把一个对象的属性赋值为null,表示删除该属性
    1.作为函数的参数,表示该函数的参数不是对象。
    2.作为对象原型链的终点。
  • undefined 表示未定义, 声明变量却没有赋值时会显示该值,当声明的变量还未被初始化时,变量的默认值为undefined,转为数值时为NaN
    1.变量被声明了,但没有赋值时 就等于undefined
    2.调用函数时,应该提供的参数没有提供,该参数等于undefined
    3.对象没有赋值的属性,该属性的值为undefined
    4.函数没有返回值时,默认返回undefined
  • number: 数值
  • string: 字符串
  • boolean: 布尔值
  • object:对象

null属于object数据类型的一种特殊形式

function是object数据类型的一种特殊对象

二、强、弱类型转换

隐式类型转换

1.“+”运算符

当运算符“+”两边一个是数字类型,一个是字符串类型时,js引擎规定进行字符串连接运算而非算术加运算。

可将通过此方法将number转换成string

2.“-”运算符

当运算符“-”,js引擎规定进行算术减运算。

可通过此方法将string类型转化为number

3.if/while会把参数隐式的转换成boolean类型

4.for in 定义对象字面量时 会出现 从标示符到字符串的隐式转换,遍历数组时也会把数组的索引转换为字符串

5.alert 

String.prototype.fn = function(){return this};
var a = 'hello';
alert(typeof a.fn()); //-->object
alert(a.fn()); //-->hello
// 该方法返回this,this可以理解成当前类的实例对象,既然是对象那么typeof a.fn()自然返回是object。

Number.prototype.fn
= function(){return this}; var a = 10; alert(typeof a.fn());//-->object alert(a.fn()); //-->10

强制类型转换

1、转换函数

parseInt(),有基模式,二进制、八进制、十六进制。。
parseFloat(),字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。

2、强制类型转换 

Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。

3、利用弱类型转换




参考
原文地址:https://www.cnblogs.com/fire-passiontao/p/5957539.html