重要纪录一些事情上碰到的题目,不定期跟新
1、由于事情调接口,后端返回字段常常变化,本日碰到如许一个题目。
// 推断返回 arr ,假如是 null 或 [] 空数组就显现''
// 假定返回字段是 usersName
// 初始主意,经由过程if语句,举行推断,确认返回值。
var userName = [];
var str = '';
if (userName) {//空数组为true
alert(123);
str = userName.join();
}
// 如许能够实现需求,然则遽然想到一个细节,这个要领只能推断null为false,然则推断userName 空数组则为ture。
// 假如不是简朴的实行join()要领,逻辑上肯定会报错。其道理是由于,null是对象空指针,布尔值为false
// 而[]空数组是一个数组对象,布尔值为ture,所以会实行if里边的语句。
2、JS对象不能够直接挪用JQ要领
<!-- 运用JQ要领时,注重将DOM对象转换为JQ对象 -->
<!-- 比方,运用jQ推断点击对象是不是包括某一属性值。-->
<span class="cs cs-one" onclick="edit(this)">点击我</span>
<script>
function edit(obj) {
// 会报错
if ( obj.hasClass('cs-one') ) {
alert('ok');
}
}
</script>
<!-- 实行语句会报错,hasClass not function。 -->
<!-- 由于hasClass是JQ要领,而经由过程jS的DOM对象挪用要领就会报错。 -->
<!-- 须要将JS对象转成JQ对象 $(obj) -->
<script>
function edit(obj) {
// 准确
if ( $(obj).hasClass('cs-one') ) {
alert('ok');
}
}
</script>
<!-- 题目:JS对象能够直接挪用JQ要领吗? -->
3、怎样猎取href链接中字符对应的值
var id = GetArgsFromHref(href,"id");//猎取id
function GetArgsFromHref(sHref, sArgName){
var args = sHref.split("?");//将链接切分红数组
var retval = "";//须要返回的字符串
if(args[0] == sHref){//参数为空
return retval;//返回空字符串,无需做任何处置惩罚
}
var str = args[1];//猎取?后边字符串
args = str.split("&");//将字符串以&切分红数组
for(var i = 0; i < args.length; i ++){//遍历切分后的数组
str = args[i];
var arg = str.split("=");//切分数组中的字符串
if(arg.length <= 1) continue;//没有=后边的值跳过
if(arg[0] == sArgName) retval = arg[1];//猎取到对应的值
}
return retval;//返回对应的值
}