博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS判断时特殊值与boolean类型的转换
阅读量:6487 次
发布时间:2019-06-24

本文共 1680 字,大约阅读时间需要 5 分钟。

扒开JQuery以及其他一些JS框架源码,常常能看到下面这样的判断,写惯了C#高级语言语法的我,一直以来没能系统的理解透这段代码。

var test; //do something...  if(test){   //do something...  }

此处就系统的记录一下这个JS特殊值与boolean类型的转换,测试代码与结果如下

window.onload = function () {  var minusNum = -1;  var zero = 0;  var one = 1;  var stringEmpty = '';  var stringNotEmpty = '111';  var objFunc = function () { };  console.group("JS中特殊值与bool的转换");  undefined ? console.info("undefined is true") : console.info("undefined is false");  null ? console.info("null is true") : console.info("null is false");  minusNum ? console.info("负数 is true") : console.info("负数 is false");  zero ? console.info("zero(数字0) is true") : console.info("zero(数字0) is false");  stringNotEmpty ? console.info("stringNotEmpty is true") : console.info("stringNotEmpty is false");  stringEmpty ? console.info("stringEmpty is true") : console.info("stringEmpty is false");  objFunc ? console.info("objFunc is true") : console.info("objFunc is false");  NaN ? console.info("NaN is true") : console.info("NaN is false");  console.groupEnd();}

 

==和===的区别

判断自然离不开==,同时引用记录一下。原文:http://blog.sina.com.cn/s/blog_4b32835b01014iv9.html 

1、对于string,number等基础类型,==和===是有区别的

  1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等

  2)同类型比较,直接进行“值”比较,两者结果一样

2、对于Array,Object等高级类型,==和===是没有区别的

  进行“指针地址”比较

3、基础类型与高级类型,==和===是有区别的

  1)对于==,将高级转化为基础类型,进行“值”比较

  2)因为类型不同,===结果为false

typeof和instanceof

1、typeof用于检查变量的数据类型,返回一个字符串。

  typeof 返回字符串,有7种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined" 、"symbol",

  typeof 检查的变量是一个对象,或者是 Null,那它就会返回 object。

2、instanceof是为了看一个变量是否是某个对象的实例,返回一个布尔值。

  instanceof只能用来判断对象和函数等对象类型,不能用来判断字符串和数字等基础类型。

 

转载于:https://www.cnblogs.com/xurongjian/p/7286416.html

你可能感兴趣的文章
[LeetCode] Reverse String 翻转字符串
查看>>
学习iOS【3】数组、词典和集合
查看>>
Hessian 原理分析--转
查看>>
转: 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端
查看>>
easyui传入map的数据前台展示出tree格式数据
查看>>
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!
查看>>
Vitamio中文API文档(4)—— VitamioInstaller
查看>>
yii框架常用url地址
查看>>
python3.4学习笔记(十六) windows下面安装easy_install和pip教程
查看>>
MyGUI 解析
查看>>
Linux中的ls命令详细使用
查看>>
graph-tool文档(一)- 快速开始使用Graph-tool - 2.属性映射、图的IO和Price网络
查看>>
GraphicsLab Project之辉光(Glare,Glow)效果 【转】
查看>>
Linux Curl命令
查看>>
-27979 LoadRunner 错误27979 找不到请求表单 Action.c(73): Error -27979: Requested form not found...
查看>>
[LeetCode] Minimum Depth of Binary Tree
查看>>
,net运行框架
查看>>
Java 中 Emoji 的正则表达式
查看>>
Mixin Network第一届开发者大赛作品介绍- dodice, diceos和Fox.one luckycoin
查看>>
中金易云:为出版社找到下一本《解忧杂货店》
查看>>