下面是小实验案例

// 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');
}

通过案例,我们能知道:

  1. undefined,null判断结果是false
  2. 0,false判断是false
  3. ‘0’,‘false’判断是true
  4. {},[]空json,空数组判断是true
  5. 空json中的值,空数组中的值判断是false
  6. 定义的变量没有赋值的,判断是false
  7. 未定义的变量会报错

方法论:这些都是单元测试,经常做些单元测试比较,能够更好的更灵活的更清晰的运用知识。

js的一些常用判断小实验的更多相关文章

  1. 理解JS闭包的几个小实验

    学了JavaScript有一段时间了,但是对闭包还是不太理解,于是怀着心中的疑问做了几个小实验,终于有点明白了. 首先看一下MDN上的定义:闭包是函数和声明该函数的词法环境的组合. 简单来说,闭包是一 ...

  2. JS开发中常用的小技巧

    1.获取指定范围内的随机数 1 2 3 function getRadomNum(min,max){     return  Math.floor(Math.random() * (max - min ...

  3. js中关于事件捕获与事件冒泡的小实验

    1.事件冒泡:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div - ...

  4. js闭包小实验

    js闭包小实验 一.总结 一句话总结: 闭包中引用闭包外的变量会使他们常驻内存 function foo() { var i=0; return function () { console.log(i ...

  5. 3D网页小实验-基于Babylon.js与recast.js实现RTS式单位控制

    一.运行效果 1.建立一幅具有地形起伏和不同地貌纹理的地图: 地图中间为凹陷的河道,两角为突出的高地,高地和低地之间以斜坡通道相连. 水下为沙土材质,沙土材质网格贴合地形,河流材质网格则保持水平. 2 ...

  6. js,jQuery数组常用操作小结

    一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift() ...

  7. Oracle常用知识小总结

    永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! Oracle常用知识小总结 1. 创建自增主键 对于习惯了SQL SERVER的图形化界面操作的SQLer,很长一段时间不用oracle ...

  8. html+css+js实现狼吃羊小游戏

    html+css+js实现狼吃羊小游戏 一.总结 一句话总结:给动的元素下标记,这里表现为将要活动的标签动态增加class,这是一种很好的思想. 1.如何实现棋子走动的时候简单精确定位? 用重构坐标系 ...

  9. 页面加载完毕后调用js方法进行布局操控 已实验

    页面加载完毕后调用js方法进行布局操控 已实验 $(function(){ var check1 = $("[id$=SMS]").is(':checked'); var bl=$ ...

随机推荐

  1. PHP读xml、写xml(DOM方法)

    <?php /** * 读取的xml的格式 * <urlset> * <url> * <loc>http://www.51buy.com/0.html< ...

  2. vue:element-ui时间选择器限制只能点不能输入

    原文链接:点我 <el-form-item label="门店成立日期" prop="storeSetupDate"> <template&g ...

  3. CF1029E Tree with Small Distances (贪心)

    题目大意:给你一棵边权为1的树,让你加入一些边,使得根节点(1号节点)到其他节点的最短距离不大于2 并没有想到贪心...... 正解的贪心思路是这样的 用一个堆维护当前距离最远的点,然后把根节点和它的 ...

  4. Android自己定义处理崩溃异常

    用过安卓手机的用户以及安卓开发人员们会时长碰到程序异常退出的情况.普通用户遇到这样的情况,肯定非常恼火,甚至会骂一生垃圾软件,然后卸载掉.那么开发人员们在开发过程中遇到这样的情况给怎么办呢,当然,你不 ...

  5. scratchIDE使用说明

    scratchIDE使用说明

  6. Java数据库訪问小结

    </pre>1.JDBC訪问方法</p><p></p><p>DBHelper类訪问数据库.Dao类写数据訪问,View类进行应用,初学实例图 ...

  7. ACM数学知识体系

    在盛情收到学弟邀请给他们整理ACM数学方面的知识体系,作为学长非常认真的弄了好久,希望各学弟不辜负学长厚爱!!!非常抱歉因为电脑全盘格式化好多word.PPT都丢失,我尽量具体地给大家找到各知识点学习 ...

  8. java 获取类路劲注意点

    在resin里用MyConstants.class.getResource("/").getPath(),这个方法时,获取到的路劲少[项目名称],最好用MyConstants.cl ...

  9. reverse(两种反向生成url django原生形式和rest_framework中版本的形式)

    reverse(两种反向生成url django原生形式和rest_framework中版本的形式) views.py from django.shortcuts import render,Http ...

  10. Oracle 常用内置函数

    --绝对值 ) --求模 ,) --取整 --四舍五入 )from dual;--123.5 ) --截取 )from dual;--123.4 ) --字符串长度 --截取 select st.sn ...