@paynev
2020-04-29T15:20:20.000000Z
字数 2656
阅读 233
Work
onfocus
当input 获取到焦点时触发
onblur
当input失去焦点时触发,注意:这个事件触发的前提是已经获取了焦点再失去焦点的时候会触发相应的js
onchange
当input失去焦点并且它的value值发生变化时触发
onkeydown
在 input中有键按住的时候执行一些代码
onkeyup
在input中有键抬起的时候触发的事件,在此事件触发之前一定触发了onkeydown事件
onclick
主要是用于 input type=button,当被点击时触发此事件
onselect
当input里的内容文本被选中后执行一段,只要选择了就会触发,不是非得全部选中
oninput
当input的value值发生变化时就会触发,不用等到失去焦点(与onchange的区别)
以上事件可以直接放到input的属性里,例如:<input type="text" onfocus="a();" onblur="b()" onchange="c();" onkeydown="d();" />
,也可以通过js给input dom元素添加相应的事件,如:document.getElementByTagName('input').onfocus = function();
在jquery中each循环中,要用return false
代替break,return true
代替continue。
$.each(data, function (n, value) {
if(value.status==1){
return false;//相当于break
}
else if(value.status==2){
return true;//相当于continue
}
});
js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值。
!可将变量转换成boolean类型,null、undefined和空字符串取反都为false,其余都为true.
1 !null=true
2
3 !undefined=true
4
5 !''=true
6
7 !100=false
8
9 !'abc'=false
!!常常用来做类型判断,在第一步!(变量)之后再做逻辑取反运算,在js中新手常常会写这样臃肿的代码:
判断变量a为非空,未定义或者非空串才能执行方法体的内容
var a;
if(a != null && typeof(a) != undefined && a != ''){
//a有内容才执行的代码
}
实际上我们只需要写一个判断表达:
if(!!a){
//a有内容才执行的代码...
}
就能和上面达到同样的效果。a是有实际含义的变量才执行方法,否则变量null,undefined和''空串都不会执行以下代码。
可以总结出来,“!”是逻辑与运算,并且可以与任何变量进行逻辑与将其转化为布尔值,“!!”则是逻辑与的取反运算,尤其后者在判断类型时代码简洁高效,省去了多次判断null、undefined和空字符串的冗余代码。
转载于:https://www.cnblogs.com/tison/p/8111712.html%22%E5%87%BA%E5%A4%84%22
在JavaScript中存在这样两种原始类型:Null与Undefined。
这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined?
Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
var oValue;
alert(oValue == undefined); //output "true"
这段代码显示为true,代表oVlaue的值即为undefined,因为我们没有初始化它。
alert(null == document.getElementById('notExistElement')); // output "true"
当页面上不存在id为"notExistElement"的DOM节点时,这段代码显示为"true",因为我们尝试获取一个不存在的对象。
alert(typeof undefined); //output "undefined"
alert(typeof null); //output "object"
第一行代码很容易理解,undefined的类型为Undefined;
第二行代码却让人疑惑,为什么null的类型又是Object了呢?
其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来。
在今天我们可以解释为,null即是一个不存在的对象的占位符,但是在实际编码时还是要注意这一特性。
alert(null == undefined); //output "true"
ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。
但是,如果在一些情况下,我们一定要区分这两个值,那应该怎么办呢?
可以使用下面的两种方法:
alert(null === undefined); //output "false"
alert(typeof null == typeof undefined); //output "false"
使用typeof方法在前面已经讲过,null与undefined的类型是不一样的,所以输出"false"。
而===代表绝对等于,在这里null === undefined输出false。
转载于:http://www.cnblogs.com/eastday/archive/2010/03/03/1677324.html%22%E5%87%BA%E5%A4%84%22
var jsonStr = '{"name":"V","sex":"male"}';
JSON.parse(jsonStr);//字符串转换成json对象
$.parseJSON(jsonStr);//jQuery 字符串转json对象
JSON.stringify(jsonObj);//json对象转换为字符串