公用方法:

let checkType = (data) => {
if(data){
console.log(true);
}else{
console.log(false);
}
}

一、字符串

checkType('hello~');   // true
checkType(''); // false

总结:

空字符串会被转换为 false,非空字符串会被转换为 true。

二、数值

checkType(10);   // true
checkType(10.5); // true
checkType(-10.5); // true
checkType(0); // false

总结:

非0数值会被转换为 true,0会被转换为 false。

三、数组

checkType([]);   // true
checkType(['tome', 'alice', 'jack']) // true

总结:

数组都会被转换为 true,如果想让空数组返回false怎么办呢?可以利用数组的 length属性,如下:

checkType([].length);   // false
checkType(['tome', 'alice', 'jack'].length) // true

四、对象

checkType({});   // true
checkType({userId: 1001, userName: 'jack', age: 26}); // true

总结:

对象都会被转换为 true,如果想让空空对象返回false怎么办呢?可以利用数组的 length属性,如下:

checkType(Object.keys({}).length);   // false
checkType(Object.keys({userId: 1001, userName: 'jack', age: 26}).length); // true

JavaScript —— 常用数据类型隐式转换的更多相关文章

  1. JavaScript复习之--javascript数据类型隐式转换

    JavaScript数据类型隐式转换.一,函数类    isNaN()    该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true.    alert()    输出的内容隐式的 ...

  2. js数据类型隐式转换问题

    js数据类型隐式转换 ![] == false //true 空数组和基本类型转换,会先[].toString() 再继续比较 ![] == [] //true ![] //false [] == [ ...

  3. js中的数据类型隐式转换的三种情况

    js的数据类型隐式转换主要分为三种情况: 1. 转换为boolean类型 2. 转换为number类型 3. 转换为string类型 转换为boolean类型 数据在 逻辑判断 和 逻辑运算 之中会隐 ...

  4. Oracle数据类型隐式转换小析

    测试使用环境:oracle 11g r1 平常写sql语句时,大大咧咧,不太注意和数字有关的数据类型,有时例如 where c1=111 和 where c1='111'这样混用,却不曾想这里面另有蹊 ...

  5. SQL Server有意思的数据类型隐式转换问题

    写这篇文章的时候,还真不知道如何取名,也不知道这个该如何将其归类.这个是同事遇到的一个案例,案例比较复杂,这里抽丝剥茧,仅仅构造一个简单的案例来展现一下这个问题.我们先构造测试数据,如下所示: CRE ...

  6. JavaScript中关于隐式转换的一些总结

    JavaScript运算符中的隐式转换规律:一.递增递减运算符(前置.后置)1.如果包含的是有效数字字符串或者是有效浮点数字符串,则会将字符串转换(Number())为数值,再进行加减操作,返回值的类 ...

  7. JavaScript学习笔记——数据类型强制转换和隐式转换

    javascript数据类型强制转换 一.转换为数值类型 Number(参数) 把任何的类型转换为数值类型 A.如果是布尔值,false为0,true为1 B.如果是数字,转换成为本身.将无意义的后导 ...

  8. javascript笔记整理(数据类型强制/隐式转换 )

    A.数据类型强制转换 1.转换为数值类型 Number(参数) 把任何的类型转换为数值类型 A.如果是布尔值,false为0,true为1 var a=false;alert(Number(a)); ...

  9. 每天多一点(2016.12.04)》Javascript隐式转换

    乱想 javascript为什么需要隐式转换?如果没有会出现什么情况? 找了一圈没有看到关于这个的讨论,只好自己研究了,可能不一定正确,自行辨知. 郁闷就是郁闷在好好的,为什么要搞个隐式转换,一般来讲 ...

随机推荐

  1. c++ 链接mysql:error LNK2019: 无法解析的外部符号

    使用VS2012编译项目报错如下: error LNK2019: 无法解析的外部符号 _mysql_real_connect@32,该符号在函数 _main 中被引用 error LNK2019: 无 ...

  2. C++11的for循环的新用法

    字符串 string str = "this is a string"; for(auto ch : str) cout << ch << endl; 等价 ...

  3. golang接口的封装

    一.声明接口 type Result interface { LastInsertId() (int64, error) RowsAffected() (int64, error) } 二.实现接口, ...

  4. JAVA面试常见问题之Redis篇

    Redis为单线程 1.Redis 有哪些数据类型 String 哈希 list set 有序set 2.Redis 内部结构 参考:https://www.cnblogs.com/chenpingz ...

  5. 前端(jQuery)(2)-- JQuery选择器和事件

    1.选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  6. 理解es6箭头函数

    箭头函数知识点很少,但是要理解清楚,不然看代码会很不适应的. 1. 最简单的写法 x => x*x 可以理解为 我的x要被转化为x*x,所以实际相当于下边的这个 function (x){ re ...

  7. Boost.Asio基础

    http://www.voidcn.com/article/p-exkmmuyn-po.html http://www.voidcn.com/article/p-xnxiwkrf-po.html ht ...

  8. 学习JDK1.8集合源码之--WeakHashMap

    1. WeakHashMap简介 WeakHashMap继承自AbstractMap,实现了Map接口. 和HashMap一样,WeakHashMap也是一种以key-value键值对的形式进行数据的 ...

  9. oracle创建定时任务

    一.dmbs_job dbms_job涉及到的知识点 1.创建job: variable jobno number; dbms_job.submit(:jobno, —-job号  'your_pro ...

  10. python实例 字典

    #! /usr/bin/python x={'a':'aaa','b':'bbb','c':12} print (x['a']) print (x['b']) print (x['c']) for k ...