js的一些常用判断小实验
下面是小实验案例
// 0
if(undefined) {
    console.log('1');
} else {
    console.log('0');
}
// 0
if(null) {
    console.log('1');
} else {
    console.log('0');
}
// 0
if('') {
    console.log('1');
} else {
    console.log('0');
}
// 0
if(0) {
    console.log('1');
} else {
    console.log('0');
}
// 1
if('0') {
    console.log('1');
} else {
    console.log('0');
}
// 0
if(false) {
    console.log('1');
} else {
    console.log('0');
}
// 1
if('false') {
    console.log('1');
} else {
    console.log('0');
}
var json = {};
// 1
if (json) {
    console.log('1');
} else {
    console.log('0');
}
// 0
if (json.val) {
    console.log('1');
} else {
    console.log('0');
}
var val;
// 0
if (val) {
    console.log('1');
} else {
    console.log('0');
}
var arr = [];
// 1
if (arr) {
    console.log('1');
} else {
    console.log('0');
}
// 0
if (arr[0]) {
    console.log('1');
} else {
    console.log('0');
}
if (undefined_val) { // 报错
    console.log('1');
} else {
    console.log('0');
}
通过案例,我们能知道:
- undefined,null判断结果是false
- 0,false判断是false
- ‘0’,‘false’判断是true
- {},[]空json,空数组判断是true
- 空json中的值,空数组中的值判断是false
- 定义的变量没有赋值的,判断是false
- 未定义的变量会报错
方法论:这些都是单元测试,经常做些单元测试比较,能够更好的更灵活的更清晰的运用知识。
js的一些常用判断小实验的更多相关文章
- 理解JS闭包的几个小实验
		学了JavaScript有一段时间了,但是对闭包还是不太理解,于是怀着心中的疑问做了几个小实验,终于有点明白了. 首先看一下MDN上的定义:闭包是函数和声明该函数的词法环境的组合. 简单来说,闭包是一 ... 
- JS开发中常用的小技巧
		1.获取指定范围内的随机数 1 2 3 function getRadomNum(min,max){ return Math.floor(Math.random() * (max - min ... 
- js中关于事件捕获与事件冒泡的小实验
		1.事件冒泡:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div - ... 
- js闭包小实验
		js闭包小实验 一.总结 一句话总结: 闭包中引用闭包外的变量会使他们常驻内存 function foo() { var i=0; return function () { console.log(i ... 
- 3D网页小实验-基于Babylon.js与recast.js实现RTS式单位控制
		一.运行效果 1.建立一幅具有地形起伏和不同地貌纹理的地图: 地图中间为凹陷的河道,两角为突出的高地,高地和低地之间以斜坡通道相连. 水下为沙土材质,沙土材质网格贴合地形,河流材质网格则保持水平. 2 ... 
- js,jQuery数组常用操作小结
		一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift() ... 
- Oracle常用知识小总结
		永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! Oracle常用知识小总结 1. 创建自增主键 对于习惯了SQL SERVER的图形化界面操作的SQLer,很长一段时间不用oracle ... 
- html+css+js实现狼吃羊小游戏
		html+css+js实现狼吃羊小游戏 一.总结 一句话总结:给动的元素下标记,这里表现为将要活动的标签动态增加class,这是一种很好的思想. 1.如何实现棋子走动的时候简单精确定位? 用重构坐标系 ... 
- 页面加载完毕后调用js方法进行布局操控 已实验
		页面加载完毕后调用js方法进行布局操控 已实验 $(function(){ var check1 = $("[id$=SMS]").is(':checked'); var bl=$ ... 
随机推荐
- 紫书 习题 8-24 UVa 10366 (构造法)
			又是一道非常复杂的构造法-- #include<cstdio> #include<algorithm> #define REP(i, a, b) for(int i = (a) ... 
- 2015 Multi-University Training Contest 2 hdu 5306 Gorgeous Sequence
			Gorgeous Sequence Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ... 
- wipefs进程是啥,占用了百分之90多的cpu
			http://www.cnblogs.com/liuchuyu/p/7490338.html 
- nodejs02---demo
			1.Hello World 打一个一个文本编辑器,在其中输入 console.log('Hello World'); 并保存为helloworld.js.打开dos窗口进入该文件的目录运行 node ... 
- poj_1195Mobile phones,二维树状数组
			#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ... 
- MinGW - 安装和配置 / MinGW - Howto Install And Configure
			MinGW在线安装程序下载地址:http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get- ... 
- 7. 关于IntelliJ IDEA删除项目
			转自:https://www.cnblogs.com/zhangqian27/p/7698148.html 刚开始使用IDEA . 自己创建项目玩,结果发现IDEA无法删除,我也是醉了,Eclipse ... 
- HTML5,CSS3新特性,与旧版的区别
			HTML5新特性 (1)语意化更好的内容元素,比如 article.footer.header.nav.section (2)本地存储.sessionStorage.localStorage和inde ... 
- pyton写购物车
			pyton写购物车 基本要求: 用户输入工资,然后打印购物菜单用户可以不断的购买商品,直到余额不够为止退出时打印用户已购买的商品和剩余金额.. 1.这个程序功能不完整,bug很多,练手之作. good ... 
- NodeJS学习笔记 (17)集群-cluster(ok)
			cluster模块概览 node实例是单线程作业的.在服务端编程中,通常会创建多个node实例来处理客户端的请求,以此提升系统的吞吐率.对这样多个node实例,我们称之为cluster(集群). 借助 ... 
