js判断空对象函数问题

JavaScript014

js判断空对象函数问题,第1张

如果把对象换成数组你是不是好理解一些?

function nullFlag(obj){

   for(var i=0i<obj.lengthi++){

        return false//数组长度为0时不会进入循环,所以不会返回false

   }

    return true

}

for(var o in obj)这种用法叫“增强的for循环”,用来遍历对象属性的。

其实对象也是一样的,当对象为空时是不会进入循环,所以返回true。

下面的示例是去除末尾的空格,即如果只输入了空格,请求将被拦截:

<script>

//去掉字串右边的空格

function rTrim(str)

{

var iLength

iLength = str.length

if (str.charAt(iLength - 1) == " ")

{

//如果字串右边第一个字符为空格

str = str.slice(0, iLength - 1)//将空格从字串中去掉

//这一句也可改成 str = str.substring(0, iLength - 1)

str = rTrim(str) //递归调用

}

return str

}

//变量

var name = "A A"

//去除空格

name=rTrim(name)

if (name){

alert("内容是:"+name+"")

}

</script>

下面的两个函数提供了去除左边的空格和两端空格的方法:

//去掉字串左边的空格

function lTrim(str)

{

if (str.charAt(0) == " ")

{

//如果字串左边第一个字符为空格

str = str.slice(1)//将空格从字串中去掉

//这一句也可改成 str = str.substring(1, str.length)

str = lTrim(str) //递归调用

}

return str

}

//去两端空格

function jtrim(sstr)

{

var astr=""

var dstr=""

var flag=0

for (i=0i<sstr.lengthi++)

{if ((sstr.charAt(i)!=' ')||(flag!=0))

{dstr+=sstr.charAt(i)

flag=1

}

}

flag=0

for (i=dstr.length-1i>=0i--)

{if ((dstr.charAt(i)!=' ')||(flag!=0))

{astr+=dstr.charAt(i)

flag=1

}

}

dstr=""

for (i=astr.length-1i>=0i--) dstr+=astr.charAt(i)

return dstr

}

当然,把前面两个函数一起调用也可以去掉两端空格

这个问题其实不难,如果你悬赏分高点会很多人帮你解决的

正规写法:

if(id2 === undefined){

//id2没有传参数 注意是3个等号。

}

这是jQuery中源码的写法。