JavaScript类型转换

JavaScript 类型转换

Number() 转换为数字, String() 转换为字符串, Boolean() 转化为布尔值。

 5 种不同的数据类型:string  number  Boolean   object   function   

3 种对象类型:object  date  array

2 个不包含任何值的数据类型:null   undefined

使用 typeof 操作符来查看 JavaScript 变量的数据类型。

constructor 属性返回所有 JavaScript 变量的构造函数。查看是对象是否为日期或者数组。function  isDate(myDate)   {  return myDate.constructor.toString().indexOf("Date") > -1;  }

 

显示类型转换:

(转化为字符串)

将数字转换为字符串:String(123)       // 将数字 123 转换为字符串并返回    或者 (123).toString() 

将布尔值转换为字符串:String(false)  // 返回 "false"        false.toString()     // 返回 "false"

将日期转换为字符串:String(Date())   // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)     Date().toString() 

自动转换为字符串:当你尝试输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法:数字和布尔值也经常相互转换:var age=11;age.toString());//"11"

(转化为数字)

将字符串转换为数字:字符串包含数字(如 "3.14") 转换为数字 (如 3.14).      其他的字符串会转换为 NaN (不是个数字)。

          null:返回0   ;   undefined,返回NaN        Number(" ") //空字符串转返回0

将布尔值转换为数字:Number(false)     // 返回 0       Number(true)      // 返回 1

将日期转换为数字:d = new Date();       Number(d)          // 返回 1404568027739     或者    d = new Date();        d.getTime() 

 

当设置为“null”时,可以用来清空对象:值为空,但类型是对象

 undefined 是一个没有设置值的变量

 

隐示类型转换:

运算中的隐示转换:

1、递增递减操作符:包含有效数字字符的字符串时,先转换为数字值,再进行运算      s1="1",console.log(++s1);//2

           不包含有效数字字符的字符串时,将其值转换为NaN                    s2="12abc",console.log(++s2);//NaN

           是布尔值时,false转换为数值0,true转换为数值1

           是对象时,先调用对象的valueOf()方法,以取得一个可供操作的值,如果结果是NaN,调用toString() 方法

2、一元加减操作符:

          一元加号(+)放在数值前面,对数值不会产生任何影响。

          一元减号(-)放在数值前面,会改变数值的正负号。

          在对非数值应用一元加操作符时,该操作符会像Number()转型函数一样对这个值执行转换。

+ 可用于将变量转换为数字:var y = "5";      // y 是一个字符串         var x = + y;      // x 是一个数字

               var y = "John";   // y 是一个字符串      var x = + y;      // x 是一个数字 (NaN)   如果变量不能转换,它仍然会是一个数字,但值为 NaN (不是一个数字):

3、 加法

          如果两个操作数都是数值,执行常规的加法计算          如有一个操作数是NaN,结果是NaN

          如果两个操作数都是字符串,将两个字符串拼接          如果只有一个操作数是字符串,将另一个操作数转换为字符串,然后再将两个字符串拼接

          如果有一个操作数是对象、数值或布尔值,则调用它们的toString()方法取得相应的字符串值,在应用上述的字符串规则。对于undefined和null,则分别调用String()函数并取得字符串"undefined"和"null"

4、减法

          如果两个操作数都是数值,执行常规的加法计算          如有一个操作数是NaN,结果是NaN

          如果有一个操作数是字符串、布尔值、null或undefined,先在后台调用Number()函数将其转换为数值,再计算,如果转换结果是NaN,则结果是NaN

          如果有一个操作数是对象,则调用对象的valueOf()方法以取得表示该对象的数值,如果得到的值是NaN,则结果就是NaN。如果对象没有valueOf()方法,则调用toString()方法

巧用+/-规则转换类型

var a =1 +" ";   / /"1"  转换成了字符串

var a ="1"-0; //1  转换成了数字

5、乘性操作符

          3个乘性操作符:乘法、除法、求模

          如果参与乘性操作数不是数值,后台会先使用Number()转型函数将其转换为数值。     也就是说空字符串转为0,true转为1,flase转为0

6、关系操作符  

          关系操作符:<  >   <=   >=

          当关系操作符的操作数有非数值时,要进行数据转换,规则如下

          (1)如两个操作数都是数值,则执行数值比较

          (2)如两个操作数都是字符串,则比较两个字符串对应的字符编码值

          (3)如一个操作数是数值,将另一个操作数转换为数值,然后执行数值比较

          (4)如果一个操作数是对象,则调用对象的valueOf()方法,再按照上面的规则,如没有valueOf()方法,则调用toString()方法

          (5)如一个操作数是布尔值,则先转换为数值,再进行比较,true转换为1,flase转换为0

7、相等操作符

          相等==    不相等 !=    这两个操作符都会先转换操作数,然后再比较它们的相等性   

          (1)如果有一个操作数是布尔值,比较前先转换为数值,false转为0,true转为1

          (2)如果一个操作数是字符串,另一个操作数是数值,比较前先将字符串转换为数值

          (3)如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,

          (4)null==undefined

          (5)在比较相等性前,不能将null和undefined转换为其他任何值

          (6)如果一个操作数是NaN,相等操作返回false,不相等操作返回true 。 NaN不等于NaN

          (7)如果两个操作数是对象,则比较它们是不是同一个对象,如果两个操作数都指向同一个对象,则相等操作返回true

posted @ 2019-02-27 16:59  程序图  阅读(207)  评论(0编辑  收藏  举报