zoukankan      html  css  js  c++  java
  • 关于JS的日常工作总结

    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

  • 相关阅读:
    (三)openwrt主Makefile解析
    (二)我的Makefile学习冲动&&编译过程概述
    openwrt修改flash大小
    (一)openwrt源码目录概述
    git_sop 脚本使用说明
    Openwrt LuCI模块练习详细步骤
    openwrt简单ipk生成及Makefile解释
    oracle中比较两表表结构差异和数据差异的方法
    C#泛型集合之Dictionary<k, v>使用技巧
    SQL语句添加,删除主键
  • 原文地址:https://www.cnblogs.com/zwcai/p/7610668.html
Copyright © 2011-2022 走看看