javascript基础学习

Posted solaris-wwf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript基础学习相关的知识,希望对你有一定的参考价值。

js规范
  •     缩进一个tab = 4个空格
  •     +  *  左右都要有一个空格
  •     每一条语句后面都要跟一个;分号

 

        查看js错误
            1.firefox firebug
            2.google  google控制台

 

        字符串类型和其他类型相加,自动转换成字符串类型,所做的就是字符串拼接 
          1.与NaN(not a number)进行算数运算,结果依旧是NaN,包括NaNNaN进行运算也是nun自己 var num=1-"2a"; 结果"2a"转换成数字NaNNaN减去NaN也是NaN,
          2.纯数字的字符串将转换成数字与数字进行相加  var num= 1+ "1"; 结果是转换成了数字2,
          3.任何其他数据类型除了和字符串,和数字进行运算,会自动转换成数字再进行运算,
      true = 1;
      false = 0;
      null = 0;
      undefined = NaN;
      var num = 1 + true;//结果数字2.

 

        强制数据转换  
             var tmp = boolean(-1); 结果为true,0为false
             var tmp = boolean(""); 结果为false,有字符串为truenullundefinedfalse
            Numer()Number(true); 为1,false为0,"20a"结果为NaN,null为0,undefinedNaN,
            ParseInt(),取整,类型为Number,兼容Number功能, ParseInt("20a"); 结果为20,
            ParseFloat();浮点数,类型为Number
             var num = 1 / 0; 结果为infinty,无穷大, var num = -1 / 0; 结果为-infinty,无穷小

 

        1,一元运算符 
            只能操作一个值得运算符,a++,++a,a--,--a
        2,关系运算符 
            如果都是数值,比较大小,如果都是字符串,则比较ASCII字符编码值 alert("abc">"abd"); 从第一个一个一个比较,c<d的编码值,则返回false
    两个操作数如果有一个是数值,则将另一个转换成数值进行比较, alert(2 > true); true为1,
            一个操作数NaNalert(1 == NaN); 返回false,!=返回true,NaN自身不相等, alert(NaN != NaN); ,则返回true.
            全等===,全不等!==, alert(20 === "20"); 返回false,数据类型不同, 
   alert(20 == "20"); 返回true,转换成数值后相比较
        3,逻辑运算符 
            1.与&&,左右都为真,才为真,如果第一个判定为假,则不进行第二个表达式判断,返回假(短路操作),
            2.或||,左右有一个真,返回真,左右都为假,才返回假(断路操作),如果第一个表达式为真,则不进行第二个表达式的判断,返回真,
            3.非!,将任何值先进行布尔运算,取反, alert(!infinity); 返回false, alert(!NaN); 返回true
        位运算:
            应用层开发(面向对象语言),object+c->c语言->汇编->二进制(机器码)
            多个逻辑运算符的时候,先运算&&后运算||year % 400 == 0 || year % 4 == 0 && year % 100 != 0;  
        
        二进制转换 
            1:十进制转换成二进制,除2取余,余数倒序排列得到结果,
            2:二进制转换成十进制,110100 1*2^2+1*2^4+1*2^5=52,从右向左依次0开始,遇到1则算2的几次方相加,
            3:十进制转八进制/十六进制,先将十进制转换成二进制,再将二进制转换成八进制/十六进制。
            二进制转八进制,从右向左,每三个分为一组,不足三位的用0补足,每组转换成十进制,110 011->63
            八进制转十进制,63,3*8^0+6*8^1=51,
            二进制转十六进制,从右向左,每四个分为一组,不足四位的用0补足,每组转换成十进制,0011 0011->33
            十六进制转十进制,33,3*16^0+3*16^1=51,

 

        三目运算符/条件运算符
            表达式:表达式1 ?表达式2 :表达式3;
            如果表达式1为非0(真),则求解表达式2,如果表达式1为0(假),则求解表达式3,
    var num1 = 20;
    var num2 = 10;
     alert(num1 > num2 ? num1 : num2 );//判断num1是否大于num2,如果条件成立,这返回第一个num1,如果条件不成立,则返回num2

 

        breakcontinue再循环语句中的应用,break跳出循环,continue则跳过下面的运算继续下一次循环。

 

        函数
            当他被调用时可执行的重复使用的代码块
             var show = function(); 因为右边没有函数名称,一般称为匿名函数
            function 函数名()函数体;,aguments内置的数组  function sum()alert(aguments[0]);  sum(3,4,5); 输出3,
            函数如果没有返回值,则不能赋值,需要return一个值。return一般放在最后,执行到return后结束,后面的语句不执行
        
    var num = parseInt("20a") ;//num等于20;
       alert(typeof num);//返回num的数据类型number;

 

       判断闰年  
 function leapyear(a)
            if(a % 4 == 0  && a % 100 != 0 || a % 400 == 0  )//条件不能被100整除,并且能被4整除,异或可以被400整除
            return true;
            elsereturn false;
        
        alert(leapyear(2000)); 

 

     判断是否是素数 
 function prime(num)
            var  isyes = true;
            for(i = 2; i <num; i++)
                if(num % i == 0)//如果被小于任何自己的数且这个数大于等于2的数整除
                    return num +"不是素数"+!isyes;//返回不是素数
                    break;
                
            
            return num +"是素数"+isyes;
        
        alert(prime(8));

 

    递归函数
   函数可以自己调用自己,称为递归,特点:必须有参数,必须要return
       工作当中不会使用递归函数,短时间内会导致内存剧增
      
  function sum(n)
            if(n == 1)
                return 1;
            
            return sum(n - 1) + n;
        
        alert(sum(50)); 

 

    斐波拉契函数
        一开始有一对兔子,到四月的时候,兔子会出生一对新的兔子
    1mon     2mon    3mon    4mon
        1        0         0         0
        0        1         0         0
        0        0         1         0
        1        0         0         1 
        1        1         0         1
        4月的总数 = 上个月的三月份兔子 + 这个月新出生的兔子,这个循环同样试用与99月100月
        rabbit(4)sum = rabbit(3) + rabbit(1)
       
 function rabbit(month)
            if(month < 4)
                return 1;
            
            return rabbit(month -3) + rabbit(month - 1);//增加的兔子加上上个月的总数兔子递归,就是这个月的总数兔子,
        
        rabbit(10);

 

 

以上是关于javascript基础学习的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 基础学习1-day14

JavaScript 基础学习

JavaScript 的基础学习

JavaScript基础学习

javascript基础学习

[JavaScript] 学习笔记-JavaScript基础教程