zoukankan      html  css  js  c++  java
  • JavaScript中的常用算法和函数

    0001:
    判断一个计算结果是不是无穷大:if(isFinite(999999999*999999999) == true)
    ----------------------------------------------------------------------------------------------------
    0002:
    判断是不是数字:if(isNaN("Blue") == true),不是数字则为true,是数字则为false。
    ----------------------------------------------------------------------------------------------------
    0003:
    数字的进制转换:
    var num = 10;
    alert(num.toString()) + "<br>";//十进制
    alert(num.toString(2)) + "<br>";//二进制
    alert(num.toString(8)) + "<br>";//八进制
    alert(num.toString(16)) + "<br>";//十六进制
    ----------------------------------------------------------------------------------------------------
    0004:
    将字符串类型转换为数字类型:注意,parseFloat没有进制参数可以选择,都当作十进制处理
    var str = "10";
    alert(parseInt(str,10));//字符串被当作十进制处理
    alert(parseInt(str,2));//字符串被当作二进制处理
    ----------------------------------------------------------------------------------------------------
    0005:
    强制类型转换:
    var str = "10";
    var num = new Number(str);
    ----------------------------------------------------------------------------------------------------
    0006:
    Object类的基本属性和方法:所有类都继承自Object,因此都有这些属性和方法。
    属性:
    ●Constructor:对创建对象的函数的引用。指向构造函数。
    ●Prototype:对该对象的对象原型的引用。
    方法:
    ●HasOwnProperty(property):判断对象是不是有某个属性。
    ●IsPrototypeOf(aobject):判断该对象是不是另一个对象的原型。
    ●PrototypeIsEnumerable(protype):判断属性是否可以用for...in语句枚举。
    ●ToString()
    ●ValueOf()
    ----------------------------------------------------------------------------------------------------
    0007:
    声明数组的几种方法:
    var array1 = new Array();
    var array2 = new Array("Blue","Red","Black");
    var array3 = ["Blue","Red","Black"];
    ----------------------------------------------------------------------------------------------------
    0008:
    创建日期类型的方法:var myDate = new Date(Date.parse("2007/1/2"));
    ----------------------------------------------------------------------------------------------------
    0009:
    URL的编码和解码:
    var url = new String("http://www.qpsh.com?name=smartkernel");
    //编码:将非标准字符全部编码
    var enUrl = encodeURIComponent(url);//encodeURI(url);
    //解码:转换为原始形式
    var deUrl = decodeURIComponent(enUrl);//decodeURI(enUrl);
    ----------------------------------------------------------------------------------------------------
    0010:
    ASP.Net中的编码和解码:
    string url = "http://www.126.com?name=smartkernel";
    string enUrl = this.Server.HtmlEncode(url);
    string deUrl = this.Server.HtmlDecode(enUrl);
    ----------------------------------------------------------------------------------------------------
    0011:
    静态方法:JavaScript的静态函数,就是声明给构造函数的函数
    function Person()
    {

    }
    Person.say = function(msg)
    {
    alert(msg);
    }
    Person.say("你好");
    ----------------------------------------------------------------------------------------------------
    0012:
    创建一个对象:
    function Person(name,age)
    {
    Person.prototype.Name = name;
    Person.prototype.Age = age;
    //this.Name = name;
    //this.Age = age;
    }
    Person.prototype.say = function()
    {
    alert(this.Name + "|" + this.Age);
    }

    var aPerson = new Person("张三",23);
    aPerson.say();
    ----------------------------------------------------------------------------------------------------
    0013:
    StringBuilder的创建:
    function StringBuilder()
    {
    this.arrayData = new Array();
    }
    StringBuilder.prototype.append = function(str)
    {
    this.arrayData.push(str);
    }
    StringBuilder.prototype.toString = function()
    {
    return this.arrayData.join("");
    }

    var aStringBuilder = new StringBuilder();
    aStringBuilder.append("世界");
    aStringBuilder.append("你好");

    alert(aStringBuilder.toString());
    ----------------------------------------------------------------------------------------------------
    0014:
    继承的实现:
    function Person(name)
    {
    this.Name = name;
    this.sayName = function()
    {
    alert(this.Name);
    }
    }

    function MyPerson(name,age)
    {
    this.ctorFun = Person;
    this.ctorFun(name);
    delete this.ctorFun;

    this.Age = age;
    this.sayAge = function()
    {
    alert(this.Age);
    }

    this.say = function()
    {
    alert(this.Name + "|" + this.Age);
    }
    }

    var aMyPerson = new MyPerson("张三",25);
    aMyPerson.sayName();
    aMyPerson.sayAge();
    aMyPerson.say();
    ----------------------------------------------------------------------------------------------------
    0015:
    继承的实现:
    function Person(name)
    {
    this.Name = name;
    this.sayName = function()
    {
    alert(this.Name);
    }
    }

    function MyPerson(name,age)
    {
    Person.call(this,name);//或者Person.apply(this,new Array(name));

    this.Age = age;
    this.sayAge = function()
    {
    alert(this.Age);
    }

    this.say = function()
    {
    alert(this.Name + "|" + this.Age);
    }
    }

    var aMyPerson = new MyPerson("张三",25);
    aMyPerson.sayName();
    aMyPerson.sayAge();
    aMyPerson.say();
    ----------------------------------------------------------------------------------------------------
    0016:
    多重继承:
    function Person1(name)
    {
    this.Name = name;
    this.sayName = function()
    {
    alert(this.Name);
    }
    }
    function Person2(sex)
    {
    this.Sex = sex;
    this.saySex = function()
    {
    alert(this.sex);
    }
    }

    function MyPerson(name,age,sex)
    {
    Person1.call(this,name);
    Person2.call(this,sex);

    this.Age = age;
    this.sayAge = function()
    {
    alert(this.Age);
    }

    this.say = function()
    {
    alert(this.Name + "|" + this.Age + "|" + this.Sex);
    }
    }

    var aMyPerson = new MyPerson("张三",25,"男");
    aMyPerson.say();
    ----------------------------------------------------------------------------------------------------
    0017:
    继承的实现:原型链方式,不支持有参数的构造函数和多重继承
    function Person()
    {

    }

    function MyPerson()
    {

    }
    MyPerson.prototype = new Person();//不能有参数
    ----------------------------------------------------------------------------------------------------
    0018:
    合理的继承机制是混合使用以上的几种方式:
    function Person(name)
    {
    this.Name = name;
    this.sayName = function()
    {
    alert(this.Name);
    }
    }

    function MyPerson(name,age)
    {
    Person.call(this,name);//或者Person.apply(this,new Array(name));

    this.Age = age;
    this.sayAge = function()
    {
    alert(this.Age);
    }

    this.say = function()
    {
    alert(this.Name + "|" + this.Age);
    }
    }
    MyPerson.prototype = new Person();

    var aMyPerson = new MyPerson("张三",25);
    aMyPerson.sayName();
    aMyPerson.sayAge();
    aMyPerson.say();
    ----------------------------------------------------------------------------------------------------
    0019:
    错误处理:
    <head>
    <script type="text/Javascript">
    window.onerror = function(msg,url,line)
    {
    var err = "错误信息:" + msg + "。\n" + "错误地址:" + url + "。\n" + "错误行数:" + line + "。\n";
    alert(err);
    }
    </script>


       本人博客的文章大部分来自网络转载,因为时间的关系,没有写明转载出处和作者。所以在些郑重的说明:文章只限交流,版权归作者。谢谢

  • 相关阅读:
    CSRF 攻击原理及防护
    XSS 攻击原理及防护
    git 基础命令大全
    vue3.0 VS vue2.0
    Android eMMC Booting[wiki百科]
    Android Fastboot[wiki百科]
    Android View.onMeasure方法的理解[转]
    某android游戏逆向小记
    Android网络编程—同时上传参数和文件到服务器 [转载]
    apk自我保护的一种实现方式——运行时自篡改dalvik指令【转载】
  • 原文地址:https://www.cnblogs.com/wzg0319/p/1884558.html
Copyright © 2011-2022 走看看