zoukankan      html  css  js  c++  java
  • Javascript 知识点精简

    如何在HTML中引入JS?

        所有重定向的HTML标签内都可以嵌入javascript代码,例如:
            <a href="javascript:alert('OK')"></a>
            <form action="javascript:alert('OK')"></form>
            <script>alert("Hello")</script>
            <script src="test.js"></script> 可以导入多个js

    浮点数不要用 == 来进行判断

        var num=0;
        for(var i=0;i<10;i++){
            num += 0.1;
        }
        alert(num); // num:0.9999999999999

        boolean 类型

            不同于.NET只判断true或false,JS里 0, 0.00, "", null 返回的都是 false

    函数

    普通声明:

    function test(){};
    function test(arg1,arg2..argN){}

    匿名函数:

    var test = function(){
                   }

    回调函数:(仅靠传递变量搞不定的,可以传递函数)

    function test(a,b,funA){
        return funA(a,b); //  方法执行由用户传入的函数决定 最典型的示例是 数组的sort()方法可以接收指定的排序规则
    }

    函数调用方式:

    function test(){
        alert("Hello");
    }
    test();

    var fun1 == test;
    fun1();  //  函数也能赋值给变量,因此函数也是数据类型的一种
    alert(fun1); // result:输出整个函数的声明(这里指的声明包括 函数名 和 代码段)

    函数参数:

    function numAdd(num1,num2){
        return num1 + num2;
    }
    numAdd(3,5) // 常规调用
    numAdd(2,4,6,8,10) // 非常规调用呢?其实fun也可以改写成下面这样:
    function numAdd(){
        var result = 0;
        for(var i=0;i<arguments.length;i++){
            result += arguments[i];
        }
        return result;
    }
    alert(numAdd(2,4,6,8,10)); // result:30

    参数的默认值

    function test(a,b){
        if(typeof(a) == "undefined")
            a=1;
        if(typeof(b) == "undefined")
            b=2;
    }
    function test(a,b){
        if(!a)
            a=1;
        if(!b)
            b=2;
    }
    function test(a,b){ // 最简洁的方式   

        a = a? a:1;
        b = b? b:2;
    }

    我们在Javascript中声明的函数被加载到哪了?

    答案是:window 对象。JS中,函数也是基于对象调用的,由于 window 对象可以省略,因此我们可以直接调用自己写过的函数!

    global对象的 eval()方法

    global 对象的 eval()方法相当于JS程序中的代码解析器 可以执行合法的字符串,示例:

    var str = "var a="+ f +";a+=a"
    var f = 5;
    eval(str);
    alert(a); // 10

    注:如果不执行 eval 方法是获取不到变量a的

    自定义对象

    由于没有Class的类的概念,而对象又是要new出来的 因此要通过函数才能创建出对象。

    方式一:这个方法是最初设计的原型和构思

    function person(){

    }
    var p = new person();
    p.name = "XJ"; // property
    p.age = 30;
    p.play = function(){ // method
        document.write("Playing......");
    }

    方式二

    var person = new Object();
    person.name = "XJ"; // property
    person.age = 30;
    person.play = function(){ // method
        document.write("Playing......");
    }

    方式三

    function person(){
        var p = new Object();
        p.name = "XJ"; // property
        p.age = 30;
        p.play = function(){ // method
            document.write("Playing......");
        }
        return p;
    }
    获取对象: var p = person();

    方式四:

    function person(name,age,play){
        this.name=name;
        this.age=age;
        this.play=play;//method
    }
    var p = new person("xj","30",function{
        document.write("Playing......");
    });
    alert(p.name);
    p.play();

    遍历对象的所有元素(属性,方法)

    for(var tmpName in p){     

        alert(p[tmpName]);
    }

    注意:这里获得的都是元素名,而不是元素的值,for..in对于数组而言获取的是索引。这是有别于C#中foreach的。

    with 结构的用法

    with(document){
        write("Hello");
    }

    with 语句块可以让使用对象的属性和方法变的语法更为简单,适用于多次操作一个对象的成员时。

  • 相关阅读:
    浅析 KMP
    【GOJ 3049】玩具
    较详细的gdb入门教程
    【GOJ 2963】记者
    【GOJ 2961】数数
    GF OIer's Talk 维护笔记
    Linux 中 UFW 的使用
    开源是什么?能吃吗?
    个人介绍
    NOIP2020 爆零记
  • 原文地址:https://www.cnblogs.com/SkySoot/p/2454003.html
Copyright © 2011-2022 走看看