码迷,mamicode.com
首页 > 编程语言 > 详细

javascript基础学习

时间:2019-10-03 14:26:44      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:开发   语句   break   没有   对象   数据转换   ref   转换   需要   

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;}
            else{return 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基础学习

标签:开发   语句   break   没有   对象   数据转换   ref   转换   需要   

原文地址:https://www.cnblogs.com/solaris-wwf/p/11619599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!