javaScript的诞生就是个非常仓促的过程,但是却在诞生短短一年半就发布了国际标准,以至于有缺陷没来得及修复就已经被置顶为国际标准,反观c语言,是在诞生20多年才统一了国际标准.但是javaScriptr虽然漏洞很多,但是却随着web的迅猛发展,一路高歌猛进.
浅谈JavaScript中的神奇现象(漏洞)
1.null 和 undfined
先来说一下神奇的null和undfined,null属于对象(object)的一种,意思是该对象为空;undefined则是一种数据类型,表示未定义。
typeof null; // object
typeof undefined; // undefined看起来貌似很正常,那么我们申明一个变量
var variable;
alert(variable== null); // true
alert(variable== undefined); // true如果我们用===来判断的话
var variable;
alert(variable== null); // false
alert(variable== undefined); // true2.==和===
==用来判断两个值是否相等。当两个值类型不同时,会发生自动转换,得到的结果非常不符合直觉。
"" == "0" // false
0 == "" // true
0 == "0" // true
false == "false" // false
false == "0" // true
false == undefined // false
false == null // false
null == undefined // true
" \t\r\n" == 0 // true所以任何时候都推荐用===做比较符
3.分号问题
在写js代码时,每一行都必须以分号结尾。但是,如果你忘记加分号,解释器并不报错,而是为你自动加上分号。有时候,这会导致一些难以发现的错误。
function(){
return
{
i=1
};
}这几行代码报错的原因就是,在return后面自动加了分号
4.+号问题
+既可以用来在加法的运算符,又可以用来拼接字符串.这就很神奇了
alert(1+1); // 2
alert("1"+"1"); // 11如果被操作的一方是字符串,一方是数字
alert(1+'2'); // 12
alert(1+"10"); // 110这种情况就会造成,如果我们不知道数据类型的情况下非但不会报错.还会得到我们预期之外的结果.
戏谈戏谈!! 日后更新!!
JavaScript的奇妙世界
本文探讨了JavaScript中的几个有趣且令人困惑的现象,包括null与undefined的区别、双等号与三等号的区别、分号的重要性以及加号的多用途特性。通过这些例子展示了JavaScript的独特之处。
1209

被折叠的 条评论
为什么被折叠?



