先來說一說:undefined 和 null
null: Null類型庆聘,代表“空值”胜臊,代表一個空對象指針,使用typeof運算得到 “object”伙判,所以你可以認為它是一個特殊的對象值象对。
undefined: Undefined類型,當一個聲明了一個變量未初始化時宴抚,得到的就是undefined勒魔。
null是javascript的關鍵字,可以認為是對象類型菇曲,它是一個空對象指針冠绢,和其它語言一樣都是代表“空值”,不過 undefined 卻是javascript才有的常潮。undefined是在ECMAScript第三版引入的弟胀,為了區(qū)分空指針對象和未初始化的變量,它是一個預定義的全局變量蕊玷。沒有返回值的函數(shù)返回為undefined邮利,沒有實參的形參也是undefined。
javaScript權(quán)威指南: null 和 undefined 都表示“值的空缺”垃帅,你可以認為undefined是表示系統(tǒng)級的延届、出乎意料的或類似錯誤的值的空缺,而null是表示程序級的贸诚、正常的或在意料之中的值的空缺方庭。
哈哈哈!酱固!是不是感覺不是在說人話械念。如果和我一樣不是很能聽懂,請看下面运悲。
javaScript高級程序設計: 在使用var聲明變量但未對其加以初始化時龄减,這個變量的值就是undefined。 null值則是表示空對象指針班眯。
最后希停,我的理解就是: undefined是訪問一個未初始化的變量時返回的值,而null是訪問一個尚未存在的對象時所返回的值署隘。因此宠能,可以把undefined看作是空的變量,而null看作是空的對象磁餐。
在定義一個想保存對象的變量時违崇,就可以讓該變量先保存null值,這樣既能體現(xiàn)null是一個空指針對象,也能更好的區(qū)分null和undefined羞延。
接下來說一下:
js判斷輸入字符串是否為空渣淳、空格、null的方法總結(jié)
判斷字符串是否為空
var strings = '';
if (string.length == 0)
{
alert('不能為空');
}
判斷字符串是否為“空”字符即用戶輸入了空格
var strings = ' ';
if (strings.replace(/(^s*)|(s*$)/g, "").length ==0)
{
alert('不能為空');
}
判斷輸入字符串是否為空或者全部都是空格
function isNull( str ){
if ( str == "" ) return true;
var regu = "^[ ]+$";
var re = new RegExp(regu);
return re.test(str);
}
如果有null時上面代碼就無法正常判斷了伴箩,下面代碼是判斷為null的情況
var exp = null;
if (exp == null)
{
alert("is null");
}
exp 為 undefined 時水由,也會得到與 null 相同的結(jié)果,雖然 null 和 undefined 不一樣赛蔫。
注意:要同時判斷 null 和 undefined 時可使用本法。 代碼如下
var exp = null;
if (!exp)
{
alert("is null");
}
如果 exp 為 undefined泥张,或數(shù)字零呵恢,或 false,也會得到與 null 相同的結(jié)果媚创,雖然 null 和二者不一樣渗钉。注意:要同時判斷 null、undefined钞钙、數(shù)字零鳄橘、false 時可使用本法。代碼如下
var exp = null;
if (typeof exp == "null")
{
alert("is null");
}
為了向下兼容芒炼,exp 為 null 時瘫怜,typeof null 總返回 object,所以不能這樣判斷本刽。
<script type="text/javascript">
function testuser(){
var i= document.getElementByIdx_x("aa");
if (i.value=="null")
{
alert("請登錄后再發(fā)表留言!")
return false;
}
else
{
alert(i.value)
return true;
}
}
</script>
參考文章:https://www.cnblogs.com/ly0612/p/6696982.html
https://www.jb51.net/article/86543.htm