美文网首页js
js不同类型数据之间的运算的转换方法

js不同类型数据之间的运算的转换方法

作者: world_7735 | 来源:发表于2018-07-12 15:12 被阅读71次

javascript不同类型数据之间的运算的转换方法
这篇文章主要介绍了javascript不同类型数据之间的运算的转换方法,需要的朋友可以参考下
js中不同类型的基础数据之间可以转换,这种转换是有规则可寻的,并非随意的随机的。在js中有5种基础类型数据:string、number、boolean、null、undefined,其中,常用于计算或者比较的类型是前面三种。
基础数据之间的转换

原始数据类型 目标类型Number
undefined NaN
null 0
false 0
true 1
数字串 相应的数字
不能转化的字符串 NaN
原始数据类型 目标类型Number
undefined undefined
null null
false false
true true
数字 数字字符串


//如果username是null、undefined、false、0、""或者NaN,那么给它赋一个新值
if(!username)username="John Doe";

if(username==null)//如果username是null或者undefined
username="John Doe";//对其进行定义

不同类型的基础数据之间的加法,数据先转换为number,然后转换为string(如果有string类型数据参与运算)

null + undefined // 0+NaN 
null + false // 0+0 
1 + true // 1+1 
1 + '1' //'11';数字与字符串相加结果是字符串 
1 + 2 + '3'  //'33';(1+2)的结果然后与'3'相加;这里要把每一步加法单独拆开来看,否则变成和下面一样的结果了. 
1 + (2 +'3') //'123';先运算2+'3',然后1+'23' 
's' + null //'snull' 
's' + undefined // 'sundefined' 
's' + true //'strue' 
1 + true + undefined + 's' // 1+1+NaN+'s'=2+NaN+'s'=NaN+'s'=NaNs

类型转换——不同数据类型比较

[] == 0;=============================================================true 
[] ==false; ==========================================================true 
[] == undefined;======================================================false 
[] ==null; ===========================================================false 
[] == '';=============================================================true 
0 ==false; ==========================================================true 
0 == undefined;======================================================false 
0 ==null; ==========================================================false 
0 == '';=============================================================true 
false == undefined; ===================================================false 
false == null; ========================================================false 
false == '';  ==========================================================true 
false == 'false'; =======================================================false 
undefined == null; =====================================================true 
undefined == ''; =======================================================false 
undefined == 'undefined';================================================false 
null == ''; ============================================================false 

两个不同类型数据比较时隐式转换规则

1)  数字和字符串、布尔类型、数组进行比较时,字符串(或布尔类型、或数组)先转换为数字(Number),再进行比较;数组转数字请参看后文。
  123 == '123asd';//false 
  123 == '123';//true 
  123 ==false; //false 
  123 ==true; //false   

使用 if(num) 和 if(num == true) 结果不一样。前者使用Boolean()转换Num, 后者使用Number转换true。

var num = 123; 
if(num) { 
  console.log(1); //输出1 
 } 
if(num == true) { 
  console.log(2); //无输出 
} 
var str = "qwe"; 
if(str) { 
  console.log(1); //输出1 
} 
if(str == true) { 
  console.log(2); //无输出 
} 
  1. 字符串和布尔类型比较,看完下面的代码我疯了。如果一定要给一个解释,那么一定是进行比较的两个数据同时经过Number()的洗礼后再进行比较。数组和布尔类型的比较也如此。
"qwe" ==false;  //false 
"qwe" ==true;   //false 
"" ==false;     // true 
"" ==true;      //false 
[]  == false;   //true 
[0] ==false;    //true 
[00] ==false;   // true 
[0,0] ==false ; //false 
  1. undefined 除了和null进行非全等比较返回true,其它均返回false。null 除了和 undefined进行非全等比较返回true,其它均返回false。
  2. 数组(或对象)和字符串进行比较时,数组(或对象)会转换成字符串再进行比较。
[] == "";//true 
[0] == "";//false 
[0] == "0";//true 
var obj = {a: 1}; 
obj  == ""; //false 
obj == "[object Object]";//true 

相关文章

  • js不同类型数据之间的运算的转换方法

    javascript不同类型数据之间的运算的转换方法这篇文章主要介绍了javascript不同类型数据之间的运算的...

  • JS初步,类型及转换

    js里运算时会进行判断,自动进行数据类型的转换。也有手动方法进行转换。 类型转换 任意类型转字符串 任意类型转数字...

  • JavaScript 01 (JS引入/变量/数据类型/类型转换

    JS的引入及调试,常量,字面量,变量,JS中的数据类型,JS的运算符,JS的运算符之隐式类型转换,强制类型转换,M...

  • js中的类型转换

    在js中数据转换分为3种:隐式类型转换,强制类型转换,函数转换 1.隐式类型转换 (1):运算符转换 js中的值在...

  • JavaScript的显式转换和隐式转换

    js的显式转换和隐式转换都是数据类型的转换;js的数据类型是弱类型的,即可以给变量赋值为任意的数据类型,当进行运算...

  • JS 里的数据类型转换

    一、数据类型转换 不同数据类型之间转换方法: (一)、任意数据类型转为string 1.number转为strin...

  • javaScript中数据类型转换方法

    JS 数据类型转换 方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了...

  • 数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了...

  • JavaScript基础总结

    ✍目录总览:(JS概念与组成、JS格式规范、JS基本语法【输入、输出、变量、数据类型、数据类型转换、运算符、流程控...

  • Java day02 运算符

    代码小谈 数据类型的转换不同类型的变量可以在一起运算。 数据类型转换方式 运算符 1、算术运算符 ++和--使用规...

网友评论

    本文标题:js不同类型数据之间的运算的转换方法

    本文链接:https://www.haomeiwen.com/subject/ieimeftx.html