关于js中空值比较和传值的问题
昨天写导出功能时,有个条件审核状态,其中一个审核状态的key为0,我也是醉了。
然后我注意到这方面的问题,在网上找了找,我的理解可能有点问题。但是目前也就是这样了,以后在学习吧!
正文:
js中各种类型都是有个默认空值的,这个空值转成boolean类型的时候就是false
null、undefined、0、"" 这些数值都是其对应数据类型上的无效值或空值。还有这五个值作!运算,结果全为:true。
还有如果是json请求传值的话,就是说如果转成string类型的话:
String(undefined) -> "undefined"
String(null) -> "null"
String("") -> ""
String(0) -> "0"
String(false) -> "false"
这个转换关系在做字符串累加时需要特别的注意。
相等运算符 (==、!=)
如果两表达式的类型不同,则试图将它们转换为字符串、数字或 Boolean 量。
NaN 与包括其本身在内的任何值都不相等。
负零等于正零。
null 与 null 和 undefined 相等。
相同的字符串、数值上相等的数字、相同的对象、相同的 Boolean 值或者(当类型不同时)能被强制转化为上述情况之一,均被认为是相等的。
其他比较均被认为是不相等的。
恒等运算符 (===、!==)
除了不进行类型转换,并且类型必须相同以外,这些运算符与相等运算符的作用是一样的。这个也就是说如果类型不一致。就算是1==="1"都是false
关于js中空值比较和传值的问题的更多相关文章
- js中 函数参数的 传值/传引用 问题
如果 传入function的参数是 (数值.字符串.布尔值) 此时是以 传值 的方式 进行. 如果 传入function的参数是 (数组.对象.其他函数) 此时是以 传引用 的方式 进行. 1
- 【2017-05-21】WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性、Js中getAttribute和超链接点击弹出警示框。
一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值,方式: href="地址?key= ...
- js中的undefined与null、空值的比较
最近在修改一个项目,总是报Js错误: 无法获取属性“length”的值: 对象为 null 或未定义 点开调试之后,惊奇的发现markerArr的值是undefined 所以我就将代码改成如下形式: ...
- 解决js中传值,Action获取是乱码问题
1.先在js中进行编码 var str = $("mytext").val(); //转码,两次 str = encodeURI(str); str = encodeURI(str ...
- JS 中判断空值 undefined 和 null
1.JS 中如何判断 undefined JavaScript 中有两个特殊数据类型:undefined 和 null,下节介绍了 null 的判断,下面谈谈 undefined 的判断. 以下是不正 ...
- 当Thymeleaf遇到向js中传值的操作
在使用Thymeleaf的时候.关于一些点击操作非常头疼.往往需要向JS里面传递各种东西. 然而,在用Thymeleaf的时候.js操作需要拼接语句.但是又不好拼接. 关于一些操作,一般也是在表格中. ...
- JS 中没有按地址(引用)传递,只有按值传递
很多人,包括我,受书本知识消化不彻底的影响,认为 JS 中参数有两种传递方式:数字.字符串等按值传递:数组.对象等按地址(引用)传递.对此种观点,我们要谨慎. var v1 = [] var v2 = ...
- JS调用OC方法并传值,OC调用JS方法并传值////////////////////////zz
iOS开发-基于原生JS与OC方法互相调用并传值(附HTML代码) 最近项目里面有有个商品活动界面,要与web端传值,将用户在网页点击的商品id 传给客户端,也就是js交互,其实再说明白一点 ...
- 关于JS中作用域的销毁和不销毁的情况总结
window全局作用域->页面关掉才销毁函数执行会形成私有的作用域 1)作用域的销毁 一般情况下,函数执行形成一个私有的作用域,当执行完成后就销毁了->节省内存空间 2)作用域的不立即销毁 ...
随机推荐
- JS实现登陆验证的主要代码及思路
window.onload = function(){ // 获取input标签 var alInput = document.getElementsByTagName("input&quo ...
- as3 代码优化之pmd
首先下载com.abobe,ac.pmd.eclipse_...jar 和 flex-pmd-all-in-one...zip俩文件 前面一个装在xx\adobe flash builder xx\e ...
- 杭电ACM1002
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1002 #include <stdio.h> #include <string.h> ...
- 去除 UINavigationController.navigationBar下方的横线
self.navigationController.navigationBar.clipsToBounds=YES;
- 使用eclipse搭建maven项目
一.安装插件 如果安装的eclipse 4.0及以上的版本或是MyEclipse就不用安装插件,可以在工具栏->windows->preferences里面搜索maven,看是否有搜索结果 ...
- Spark相关错误汇总
前面介绍了Spark开发环境的搭建,下面将在实际开发过程中遇到的一些问题汇总一下: 1.Exception in thread "main" com.typesafe.config ...
- 【DB】database introduction
database applications: – Banking System,– Stock Market,– Transportation,– Social Network,– Marine Da ...
- volatile关键字和mutable关键字
如果不用volatile关键字会如何?可能会造成一个后果就是:编译器发现你多次使用同一个变量的值,然后它可能会假设这个变量是不变的值,并且把这个变量的值放入寄存器中,方便下一次使用,提高存取速度. 一 ...
- array_filter函数
利用array_filter函数轻松去掉多维空值,而数组的下标没有改变, 如果自定义过滤函数返回 true,则被操作的数组的当前值就会被包含在返回的结果数组中, 并将结果组成一个新的数组.如果原数组是 ...
- redis主从复制搭建
1. 安装redis-2.4.6-setup-32-bit.exe 2. 打开一个cmd窗口,使用cd命令切换到指定目录(F:\Redis) 运行 redis-server.exe redis.con ...