js 中坑爹的零

简介: <div class="markdown_views"><p>js 中坑爹的0 <br>直接上代码:</p><pre class="prettyprint"><code class=" hljs autohotkey">var <span class="hljs-literal">a</span>=<span class="hljs-number">0</span><s

js 中坑爹的0
直接上代码:

var a=0;
if(a){
  alert(true);
}else{
  alert(false);
}

运行结果是什么呢?
按照正常人的思维,应该为true,因为我们确实给a赋予了值.
但是结果往往是残酷的.
运行结果是false
返回false

var a=0;
if(a==false){
  alert(true);
}else{
  alert(false);
}

运行结果:true

var a=0;
console.log(a=='');//true

运行结果:
true

var a=0;
console.log(a==='');//false

javascript 的类型系统是非常混乱的,类型特性不明显,而且交叉错乱.javascript语法系统拥有一大组假值,如以下代码所示.这些值的布尔值都是false.
0 //Number
NaN //Number
” //String
false //Boolean
null //Object
undefined //Undefined

相关文章
|
4月前
|
JavaScript
分享一款520表白节JS代码
今天给大家分享一款JS表白源码 js会随 随机颜色心形跟随鼠标互动520表白节女神表白利器! 修改的话就搜索:LOVEh 就能找到这个英文了。
21 0
|
5月前
|
JSON JavaScript 安全
JS深浅拷贝
本文介绍了JavaScript中实现数据拷贝的四种方法:`Object.assign()`, 扩展运算符(`...`), `JSON.parse(JSON.stringify())` 和递归深拷贝。`Object.assign()`及扩展运算符对基本数据类型进行深拷贝,而对引用类型则进行浅拷贝。`JSON.parse(JSON.stringify())`对所有类型的数据都执行深拷贝,但存在一些限制如日期类型被转为字符串等。递归深拷贝则避免了这些问题,并支持循环引用,是一种更安全的选择。
JS深浅拷贝
|
7月前
|
JavaScript 前端开发 Java
JS经常碰见的报错问题
JS经常碰见的报错问题
|
JavaScript 前端开发
JS第二课(JS几个常用的单词)
JS第二课(JS几个常用的单词)
72 0
JS第二课(JS几个常用的单词)
|
存储 JavaScript
js -深浅拷贝
针对引用类型而言,浅拷贝指的是复制对象的引用,即直接给引用类型赋值,如果拷贝后的对象发生变化,原对象也会发生变化。而深拷贝是真正地对对象进行拷贝,修改拷贝后的新对象并不会对原对象产生任何影响。
|
存储 JavaScript 前端开发
重温js——js语法基础
在变量声明这里,大家肯定还记得。所有的js 在使用的时候需要进行声明。也就是在内存地址中开辟一个空间。然后等待数据的"入住"
重温js——js语法基础
|
存储 Web App开发 自然语言处理
JS 到底是在干嘛:一文搞懂JS 执行上下文
JS 到底是在干嘛:一文搞懂JS 执行上下文
237 0
JS 到底是在干嘛:一文搞懂JS 执行上下文
|
JavaScript 前端开发
细读 JS | this 详解
细读 JS | this 详解
125 0
细读 JS | this 详解
|
算法 JavaScript 前端开发
细读 JS | 相等比较详解
细读 JS | 相等比较详解
144 0
细读 JS | 相等比较详解