JavaScript中一个字符串变量突然变成了false的问题解析
来源:互联网 发布:建筑工程基础知识软件 编辑:程序博客网 时间:2024/05/28 11:30
为了方便调试,写了一个页面未登录时,调试模式下自动登录的功能,发现有一个变量我初始化给它赋值了一个字符串,但是在用的时候发现它变成了false,好神奇。后来仔细检查引用,发现是一个判断条件中少写了一个等号引起的。js代码如下:
var sSessionKey = "test_key";
if (sSessionKey = undefined || sSessionKey == null) {
console.error("the sSessionKey is null.");
return;
var sSessionKey = "test_key";
if (sSessionKey = undefined || sSessionKey == null) {
console.error("the sSessionKey is null.");
return;
}
console.info(sSessionKey);// 1
最后发现1处的打印会是false,仔细检查发现判断sSessionKey时少写了一个等号,导致变成了赋值符号。那为什么会变为false呢?推测是跟JavaScript中的符号运算优先级有关系,赋值运算符的优先级低于求或运算符,所以上述判断条件等价于下列表达式:
if (sSessionKey = (undefined || sSessionKey == null)) {
}
"sSessionKey == null"是false,undefined判断时也是false,所以最后赋给sSessionKey的就是一个false。最后的打印也是false。
每多学一点知识,就少写一行代码。
阅读全文
0 0
- JavaScript中一个字符串变量突然变成了false的问题解析
- 解决:eclipse中双击一个变量,文件中所有这个变量都会变成黄色,现在变不了了的问题。
- eclipse中双击一个变量,文件中所有这个变量都会变成黄色,现在变不了了的问题
- eclipse中双击一个变量,文件中所有这个变量都会变成黄色,现在变不了了的问题。
- 电脑屏幕突然变成绿色的了
- javascript(五)undefined false 字符串变量
- JSON解析字符串,null变成了"null"
- c#中Gridview中数据导出到Excel,导出的突然变成整个页面了,急求高手指点!!
- Eclipse中光标变成一个黑色的长方形了怎么办?
- javascript中如何把类型为object的变量,变成类型为array的变量
- request.getParameter("变量名")获取的字符串中原来的加号变成了空格,url传值
- request.getParameter("变量名")获取的字符串中原来的加号变成了空格,url传值
- JavaScript中,加法变成拼接字符串
- JavaScript变量作用域的一个问题
- VS2005英文版突然变成中文版了?
- webStorm英文字体突然变成这样了
- python判断是否可以只插一个数,让字符串变成回文,返回true/false
- javascript获取checkbox值增加到text的字符串中,为false时减少
- 天使轮为它融资1000万,甚至入驻滴滴专车?事实上它竟是...
- 稳了!小米7将搭载骁龙845 雷军:请期待明年“与众不同”的小米
- 给定两个表示分数的分子和分母的整数,返回字符串格式的分数,如果小数部分重复,则将重复部分括在括号内。
- oracle 11g 卸载步骤
- 最全的Android源码目录结构详解
- JavaScript中一个字符串变量突然变成了false的问题解析
- JavaScript Boolean(逻辑)对象
- MongoDB 存储引擎:WiredTiger和In-Memory
- div模拟textarea文本域轻松实现高度自适应
- Log4j学习汇总(一)
- 基于概率论的分类方法:朴素贝叶斯算法实践学习
- 线程中通过信号和槽函数传递信息的时候,由于用到了自己定义的参数结构,所以使用qRegisterMetaType
- 设计模式(十三)——适配器模式
- NPOI 使用记录