• javascipt基础随笔


    javascipt-基础---细节需要注意的地方:

    1、特殊数值:NaN、Infinity、isNaN()、isFinite()

    NaN:

    var a=parseInt('a123');
    window.alert(a); //输出NaN

    Infinity:

    window.alert(6/0);//输出Infinity 无穷大(最好不要这样写)

    isNaN():判断是不是数,不是数返回true,是数返回false

    var a="dd";
    
    window.alert(isNaN(a)); //返回true

     isFinite():用于判断是不是无穷大。如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。

    window.alert(isFinite(6/1)); //返回true
    window.alert(isFinite(6/0)); //返回false

     2、逻辑运算符:

    在逻辑运算中,0""falsenullundefinedNaN均表示false

    (或 || )||  将返回第一个不为false 那个值(对象亦可),或者是最后一个值(如果全部都是false的话)

    这个知识点在javascript框架中运用很多。

    a、

        var a=true;
        var b=false;
        var c=b || a;
    
        window.alert(c); //输出true

    b、

        var a=2;
        var b=0
        var c= a || b;
    
        window.alert(c); //返回第一个值,输出2

    c、

        var a=false;
        var b="";
        var c =0;
        var d =new Object(); //对象
    
        var aa=a || b || c ||d ; //a,b,c 全是false 这返回d
        window.alert(aa); //返回d (对象) 

     4、多分支 switch

        var flag=1;
    
        switch(flag){
            
            default:
            window.alert("啥都不是");
            
            case 'a':
            window.alert("a");
    
            case 'b':
            window.alert("b");  //没有break语句,没有匹配成功, 此时结果都输出
                
        }
        var flag=1;
    
        switch(flag){
            
            default:
            window.alert("啥都不是");
            
            case 'a':
            window.alert("a");
    
            case 1:
            window.alert("b");  //没有break语句 当匹配成功则不再找break语句 此时输出b
                
        }

     5、函数调用

    func.js

    function abc(val){
        
        window.alert("abc()"+val);
    }
    
    //有返回值的函数
    function test(num1,num2){
    
        var res=0;
        res =num1+num2;
    
        return res;
    }
    
    //没有返回值的的函数
    function noVal(num1,num2){
        
        var res=0;
        res=num1+num2;
    }

    函数调用:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <script type="text/javascript" src="func.js"></script>
    <script type="text/javascript">
        
        //函数调用1---普通调用(常用调用函数)
        abc(50);
    
        //函数调用2---变量=函数名; 调用的时候这样调用:变量(实际参数)
        var test1=abc;    //此时变量就相当于函数的引用(指针)
        window.alert(abc);  //输出abc整个函数代码,就能理解了
        test1(500);
    
        //如果调用的函数有返回值,可以在程序中直接返回,没有返回值但是你接收了,这是返回undefined
        //调用有返回值的函数
        var res=test(20,40);
        window.alert(res); 
        
        //调用没有返回值的函数
        window.alert("调用没有返回值的函数");
        var res=noVal(1,1);
        //此时输出undefined
        window.alert(res);
    
    </script>
    </head>
    <body></body>
    </html>

     js支持参数个数可变的函数 

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <script type="text/javascript" src="func.js"></script>
    <script type="text/javascript">
    
        //函数调用--递归
    
    /*    function abc(num){
            
            if(num>3){
                
                abc(--num);
            }
            document.writeln(num);
        }
        
        //调用函数
        abc(5);   //输出 3 3 4
    */
    
        //js支持参数个数可变的函数 
    
        function abc(){
            //js中提供了一个arguments,可以访问所以传入的值
            window.alert(arguments.length); //传入多少个
            //遍历传入的参数
            for(var i=0;i<arguments.length;i++){
                
                window.alert(arguments[i]);
            }
        }
        
        //调用
        window.alert("abc(12,13,\"hello\",56)");
        abc(12,13,"hello",56)
        
        window.alert("abc(5)");
        abc(5);
    
        window.alert("abc()");
        abc();
    </script>
    </head>
    <body></body>
    </html>

     函数中使用全局变量与局部变量

    <script type="text/javascript">
        //全局变量与局部变量
        var num=90;
    
        function test(){
            
            //在函数里,如果不带var就表示使用全局变量,
            //如果带var,表示在函数中定义一个新的 num变量
            //var num=900;
            num=900;
        }
    
        test();
        window.alert("num="+num); //输出num=900
    </script>

     6、访问对象属性有2中方式

    <script type="text/javascript">
    
    /*  //js中 一切都是对象
        function Person(){}
        window.alert(Person.constructor);
        var a=new Person();
        window.alert(a.constructor);
        window.alert(typeof a);
        window.alert(Person);
    */
        //访问对象属性有2种方式 1、对象名.属性名 2、对象名["属性名"](动态调用)
        function Person(){}
        
        var a=new Person()
        a.name="小明";
    
        window.alert(a.name);//普通方式
        var str="na"+"me";
        window.alert(a[str]);//动态方式
        //window.alert(a["name"]);//输出小明
    
    </script>

     7、创建对象的方式有五种

    1. 工厂方法—使用new Object创建对象并添加相关属性.
    2. 使用构造函数来定义类(原型对象).
    3. 使用prototype
    4. 构造函数及原型混合方式.
    5. 动态原型方式.
  • 相关阅读:
    事务传播机制,搞懂。
    洛谷 P1553 数字反转(升级版) 题解
    洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here 题解
    洛谷 P1055 ISBN号码 题解
    洛谷 P2141 珠心算测验 题解
    洛谷 P1047 校门外的树 题解
    洛谷 P1980 计数问题 题解
    洛谷 P1008 三连击 题解
    HDU 1013 题解
    HDU 1012 题解
  • 原文地址:https://www.cnblogs.com/pwm5712/p/3007177.html
Copyright © 2020-2023  润新知