javascript

文章目录

    console.log(“Hello world!”);

    定义一个类

    格式类似于定义一个函数:

    var Person = function() {
        // property
        this.name = "Zhongwei";
        this.age = 28;
       
        // method 
        this.start_running = function() {
            alert("running...");
        }
    }
    

    使用

    var zhongwei = new Person();
    console.log(zhongwei.name);
    zhongwei.start_running();
    

    宿主对象

    浏览器提供了两个对象:

    • window 对象 -> BOM (Browser Object Model)
    • document 对象 -> DOM (Document Object Model)

    window 对象用于控制浏览器窗口,获取浏览器窗口属性,例如窗口大小。

    document 对象用于获取和控制网页内容。

    var title = document.getElementById("title");
    

    javascript 中使用 sleep

    javascript 中没有 sleep 这个函数,但是可以使用

    setTimeout(some_function(), 3000);
    

    即,3秒后调用 some_function 这个函数。

    http://stackoverflow.com/questions/1141302/is-there-a-sleep-function-in-javascript

    确认 json 里某个 key 是否存在

        if(json_object.hasOwnProperty('name')){
            //do struff
        }
    

    email 地址格式验证

      function validate_email(email) {
        var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return re.test(email);
      }
    

    域名格式验证

      function validate_hostname_or_ip(hostname) {
        if (hostname.indexOf(".") === -1) {
          return false
        }
        // http://stackoverflow.com/questions/9208814/validate-ipv4-ipv6-and-hostname
        var expression = /((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))|(^\s*((?=.{1,255}$)(?=.*[A-Za-z].*)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?)*)\s*$)/;
        return expression.test(hostname);
      }
    

    防止联系提交两次

    按下按钮之后,应防止一次返回之前,又点击了一次。

    遍历

    遍历数组

    var myStringArray = ["Hello","World"];
    for (var i = 0; i < myStringArray.length; i++) {
        alert(myStringArray[i]);
        //Do something
    }
    

    遍历对象属性

    var obj = {
      "a": 1,
      "b": 2,
      "c": 3
    };
    
    for (var prop in obj) {
      if (obj.hasOwnProperty(prop)) { 
      // or if (Object.prototype.hasOwnProperty.call(obj,prop)) for safety...
        alert("prop: " + prop + " value: " + obj[prop])
      }
    }
    

    参考:

    • http://stackoverflow.com/questions/3010840/loop-through-array-in-javascript

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式