1 .js == 没有传递性:
var a=‘‘,b=‘0‘,c=0
b==c; //true
a==c; // true
a==b; // false
2.js判断是否为数字
???isNaN(‘12346543‘); //false
???isNaN(‘12346543q‘); //true
???isNaN(‘ ????‘); //false ?需要自行判断
??a: var b=function(a){a=a+‘‘;
????if(isNaN(a)||a.startsWith(‘ ‘)||a===‘‘){
?????????console.log(‘!number‘)}else{console.log(‘number‘)
?????}}
??b: function check(s){
????var temp=/^\d+(\.\d+)?$/;
???if(temp.test(s)==false)
????console.log("输入错误");
???}
3.查看jQuery版本
???$.fn.jquery
4.input元素实时监听
???$(function()
???????????????{
???????????????????????var jsUserName = "";
???????????????????????if($.browser.msie) ???????// IE浏览器
???????????????????????{
???????????????????????????????$("#userName").get(0).onpropertychange = setJsUserName;
???????????????????????????????$("#jsUserName").get(0).onpropertychange = handle;
???????????????????????}
???????????????????????else ???????// 其他浏览器
???????????????????????{
???????????????????????????????var intervalName; ???????// 定时器句柄
???????????????????????????????$("#userName").get(0).addEventListener("input",setJsUserName,false);
???????????????????????????????// 获得焦点时,启动定时器
???????????????????????????????$("#userName").focus(function(){
???????????????????????????????????????intervalName = setInterval(handle,1000);
???????????????????????????????});
???????????????????????????????// 失去焦点时,清除定时器
???????????????????????????????$("#userName").blur(function()
???????????????????????????????{
???????????????????????????????????????clearInterval(intervalName);
???????????????????????????????});
???????????????????????}
???????????????????????// 设置jsUserName input的值
???????????????????????function setJsUserName()
???????????????????????{
???????????????????????????????$("#jsUserName").val($(this).val());
???????????????????????}
???????????????????????// jsUserName input的值改变时执行的函数
???????????????????????function handle()
???????????????????????{ ????
???????????????????????????????// IE浏览器此处判断没什么意义,但为了统一,且提取公共代码而这样处理。
???????????????????????????????if($("#jsUserName").val() != jsUserName)
???????????????????????????????{
???????????????????????????????????????$("#toolTip").remove();
???????????????????????????????????????$("#jsUserName").parent().append("<span id=‘toolTip‘>看到这里的信息表明,通过js改变input的值也能响应相应事件:<span ?style=‘color:red;‘>" + $("#jsUserName").val() + "</span></span>");
???????????????????????????????????????jsUserName = $("#jsUserName").val();
???????????????????????????????}
???????????????????????}
});
5.&& || 返回值
???&&
???首先计算其左边的表达式,如果它的值为false或可被转换为false(null、NaN、0或undefined),那么将返回左边表达式的值,否则,它将计算右边的表达式, 并返回这个表达式结果作为 &&运算的结果。
???||
???首先计算其左边的表达式,如果它的值不为false或不可被转换为false(null、NaN、0或undefined),那么将返回左边表达式的值,否则,它将计算右边的表达式, 并返回这个表达式结果作为||运算的结果。
6.js闭包计数:
var setup=function(){
?var count=0;
?return function(){
???return count=count+1;
?}
}
var next=setup();
next()
1
next()
2
next()
3
next()
4
7.执行后自销毁:
function a(){
???a=undefined ;
???return 100 ;
}//也可用于第一次使用时初始化在调用;
function a(){ var b=1; a=function(){alert(b)} ;}
//不可复制给其他变量。否则失效
即时函数
(function(){
????alert(‘123‘)
}())
8.js a=b:
var a={},b=a;
a.a=100;
b.a//100
a={a:200};
b.a//100
9.计时器
<html>
<head>
???<script>
???????x = 0
???????y = 0
???????function count1() {
???????????x = x + 1
???????????document.display1.box1.value = x
???????????meter1 = setInterval("count1()", 1000)
???????}
???????function count2() {
???????????y = y + 1
???????????document.display2.box2.value = y
???????????meter2 = setInterval("count2()", 1000)
???????}
???</script>
</head>
<body bgcolor=lightcyantext =red>
???<p>
???????</br>
???????<form name=display1>
???????????<input type="text" name="box1" value="0" size=4>
???????????<input type=button value="停" onclick="clearInterval(meter1)">
???????????<input type=button value="继续" onclick="count1() ">
???????</form>
???<p>
???????<form name=display2>
???????????<input type="text" name="box2" value="0" size=4>
???????????<input type=button value="停" onclick="clearInterval(meter2) ">
???????????<input type=button value="继续" onclick="count2( ) ">
???????</form>
???????<script>
???????????count1()
???????????count2()
???????</script>
</body>
</html>
10. for if switch 等方法不会创建新的作用域:
for(var i=0;i<10;i++){
?for(var i=0; i<10;i++){
var abc=100;
?console.log(‘in‘+i) ??
}
console.log(‘out‘+i) ??????
}
VM529:5 in0
...
VM529:5 in9
VM529:7 out10
abc //100
关于JS的日常工作总结
原文地址:http://www.cnblogs.com/zwcai/p/7610668.html