• 学习js截止到1/5/2018总结


    js概念:.javaScript是一种脚本语言,语法和java类似

    js引入方式

      1.使用<Script></Script>标签内部样式

      2.使用外部js文件

      3.直接在HTML标签中的行内样式。

    js基本数据类型

    1,数值型(整数型和浮点型,NaN)

    2,字符串型(string)

    3,布尔类型(Boolean)

    4,undefined

    5,null
    基本类型转换

    1,强制转换:parseInt    parseFloat    Boolean    String    Number;

    1. Boolean(value):把值转换成Boolean类型;                                                                                                                                                                                                                         var t1 = Boolean(“”);//返回false,空字符串 
                 var t2 = Boolean(“s”);//返回true,非空字符串 
                 var t3 = Boolean(0);//返回false,数字0 
                 var t3 = Boolean(1),t4 = Boolean(-1);//返回true,非0数字 
                 var t5 = Boolean(null),t6 = Boolean(undefined);//返回false            

    2. Number(value):把值转换成数字;

                 Number(false) 0 
                 Number(true) 1 
                 Number(undefined) NaN 
                 Number(null) 0 
                 Number(“1.2”) 1.2

                 Number(“12”) 12 
                 Number(“1.2.3”) NaN 
                 Number(new Object()) NaN 
                 Number(123) 123

    3. 转化为整型(parseInt ) 

       parseInt() 会将字符串中转换为整数类型。

      Ⅱ. 若遇到非整数字符,则停止转换。

      Ⅲ.若没有进行任何一个字符的转换(即转换一开始就遇到非数字字符),则为 NaN 。

      parseInt() 还有可选的第二参数 radix(值介于 2 ~ 26 之间),它可以实现转换为二进制,八进制,十进制,十六进制等。

      未设置第二参数的特殊情况:

      ①若参数字符以 0x 开头,第二参数就会被默认为十六进制;

      ②若首选参数以 0 开头,第二参数就会被默认为八进制。

                 parseInt("1234blue");   //returns   1234
                 parseInt("0xA");   //returns   10
                 parseInt("22.5");   //returns   22
                 parseInt("blue");   //returns   NaN                                                                                                                                                                                                                             parseInt("AF",   16);   //returns   175
                 parseInt("10",   2);   //returns   2
                 parseInt("10",   8);   //returns   8
                 parseInt("10",   10);   //returns   10
    4. 转换为浮点数( parseFloat)注意:浮点型没有基数                                                                                                                                                                                                         parseFloat("1234blue");   //returns   1234.0
                 parseFloat("0xA");   //returns   NaN
                 parseFloat("22.5");   //returns   22.5
                 parseFloat("22.34.5");   //returns   22.34
                 parseFloat("0908");   //returns   908
                 parseFloat("blue");   //returns   NaN
    5. String(value):把值转换成字符串。(加引号!)


    2,隐式转换:通过运算

    下面先讲加减乘除:

    1.字符串加数字,数字就会转成字符串。

    2.数字减字符串,字符串转成数字。如果字符串不是纯数字就会转成NaN。字符串减数字也一样。两个字符串相减也先转成数字。

    3.乘,除,大于,小于跟减的转换也是一样。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //隐式转换 + - * == /
    // +
    10 + '20'    //2010
    // -
    10 - '20'    //-10
    10 - 'one'   //NaN
    10 - '100a'  //NaN
    // *
    10*'20'      //200
    '10'*'20'    //200
    // /
    20/'10'      //2
    '20'/'10'    //2
    '20'/'one'  //NaN

    再来看看一组 == 的。

    1.undefined等于null

    2.字符串和数字比较时,字符串转数字

    3.数字为布尔比较时,布尔转数字

    4.字符串和布尔比较时,两者转数字

    1
    2
    3
    4
    5
    6
    7
    // ==
    undefined == null;    //true
    '0' == 0;            //true,字符串转数字
    0 == false;           //true,布尔转数字
    '0' == false;       //true,两者转数字
    null == false;       //false
    undefined == false;  //false
     

    要进行各种各样的运算,就要使用不同的运算符号。

    1、算术运算符:+-*/%++--

           (1)“%”取余运算符,两个数相除,取余数。

                  A = 10 % 3;  // A = 1,如果余数不为0,则两个不能整除

               A = 10 % 2;  // A = 0,如果余数为0,则两个数能除尽

           (2)“++”加1运算符、自加1

                  “++”可以作前缀(++i),也可以作后缀(i++)。

                  如果不赋值的话,i++和++i的结果是一样的。

          如果要赋值的话,i++和++i的结果就不一样了

           (3)“--”减1运算符,自减1

                  “--”可以作前缀(--i),也可以作后缀(i--)。

                  如果不赋值的话,i--和--i的结果是一样的。

                  如果要赋值的话,i++和++i的结果就不一样了

    2、赋值运算符:=+=-=*=/=

           “+=”先加后等。如:a += 10  //展开后  a = a + 10

           “-=”先减后等。如:a -= 10   //展开后  a = a - 10

           “*=”先乘后等。如:a *= 10  //展开后  a = a * 10

           “/=”先除后等。如:a /= 10   //展开后  a = a / 10

    3、字符串运算符:++=

           字符串只能进行“连接”运算,不能进行其它运算。

           var a = “abc”;

           var b = a + “def”;   // 结果b = a + “def” = “abc” + “def” = “abcdef”

          

           var a = “abc”;

           a += 10;   // 结果a = a + 10 = “abc” + 10 = “abc10”

    4、比较运算符:><>=<===!====!==

           比较运算符的运算结果是布尔值(true或false)

           A = 10 > 20;       // 结果A=false

           A = 20>=20;       // 结果A=true

           A = 10%2 == 0;    // 结果A=true

           A = 10%2 == “0”;  // 结果A=true

           A = 10%3 != 0;    // 结果A=true

           A = 10%2 === “0”;  //结果A=false

          

           “=”是赋值号。如:a = 10

           “==”等于。只比较两个变量的,而不管类型。只要值一样,就返回true,否则返回false。

           “===”全等于。既比较变量,也判断类型。如果类型和值都一样,返回true,否则返回false。

    5、逻辑运算符:&&||!

           逻辑运算符的运算结果有两个true或false

           “&&”逻辑与(并且关系)。如果左右两个操作数都为true,则结果为true,否则,结果为false。

                         逻辑与,就是两个条件同时满足时,则结果为true。

      “||”逻辑或。左右两个条件,只要有一个满足,则返回true,否则,返回false。

      “!”取反运算。!true = false  、   !false = true  、 !100 = false

    6、三元运算符:?:

           所谓“三元运算符”就是指三个操作数。

           语法:条件表达式 ? 结果1 : 结果2

           语法:操作数1 ? 操作数2 : 操作数3

           含义:如果条件为true,则执行“结果1”的代码;如果条件为false,则执行“结果2”的代码。

           其实:三元运算符,就是if else的变形形式。


    7,type of运算符:type of就是用来判断变量的类型的


    声明变量
    命名规范:驼峰式;开头字母、下划线、 $;注意:关键字 保留字                                                                                                                                                                                        1、变量命名必须以字母、下划线”_”或者”$”为开头。其他字符可以是字母、_、美元符号或数字。
    2、变量名中不允许使用空格和其他标点符号,首个字不能为数字。
    3、变量名长度不能超过255个字符。
    4、变量名区分大小写。(javascript是区分大小写的语言)
    5、变量名必须放在同一行中
    6、不能使用脚本语言中保留的关键字、保留字、true、false 和 null 作为标识符。


    控制流程
    一,控制语句
    if else ; switch case;

    1.做判断(if语句)

    if语句是基于条件成立才执行相应代码时使用的语句。

    语法:

    if(条件)
    { 条件成立时执行代码}

    注意:if小写,大写字母(IF)会出错!

    假设你应聘web前端技术开发岗位,如果你会HTML技术,你面试成功,欢迎加入公司。代码表示如下:

    <script type="text/javascript">
      var mycarrer = "HTML";
      if (mycarrer == "HTML")
      {
        document.write("你面试成功,欢迎加入公司。");
      }
    </script>

    2.二选一 (if...else语句)

    if...else语句是在指定的条件成立时执行代码,在条件不成立时执行else后的代码。

    语法:

    if(条件)
    { 条件成立时执行的代码}
    else
    {条件不成立时执行的代码}

    假设你应聘web前端技术开发岗位,如果你会HTML技术,你面试成功,欢迎加入公司,否则你面试不成功,不能加入公司。

    代码表示如下:

    <script type="text/javascript">
      var mycarrer = "HTML"; //mycarrer变量存储技能
      if (mycarrer == "HTML")
        { document.write("你面试成功,欢迎加入公司。");  }
      else  //否则,技能不是HTML
        { document.write("你面试不成功,不能加入公司。");}
    </script>

    3.多重判断(if..else嵌套语句)

    要在多组语句中选择一组来执行,使用if..else嵌套语句。

    语法:

    if(条件1)
    { 条件1成立时执行的代码}
    else  if(条件2)
    { 条件2成立时执行的代码}
    ...
    else  if(条件n)
    { 条件n成立时执行的代码}
    else
    { 条件1、2至n不成立时执行的代码}

    4.多种选择(Switch语句)

    当有很多种选项的时候,switch比if else使用更方便。

    语法:

    switch(表达式)
    {
    case值1:
      执行代码块 1
      break;
    case值2:
      执行代码块 2
      break;
    ...
    case值n:
      执行代码块 n
      break;
    default:
      与 case值1 、 case值2...case值n 不同时执行的代码
    }

    语法说明:

    Switch必须赋初始值,值与每个case值匹配。满足执行该 case 后的所有语句,并用break语句来阻止运行下一个case。如所有case值都不匹配,执行default后的语句。


    二,循环语句

    js中的循环语句可分为三种:1.while;2.do……while;3.for。

    while的语法为

    while (exp) {
        //statements;
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var a=1,b=0;
            while(a<=1000){
               if(a%2==0){
                   if(b%20==0)
                   {
                        document.write("<br>第"+parseInt(b/20+1)+"行偶数");
                    }
                    document.write(a+"&nbsp"+"&nbsp");
                    b++;
                }
               a++;
            }

    其中,exp为一条件判断语句,最终的结果都可以用一个布尔值表示,若其结果为true则进行下面{}里的语句,然后继续判断exp,直到exp的结果为false为止,若exp的结果为false,则跳过这条循环语句,执行接下来的代码。需要注意的是在{}里的语句必须存在对exp的结果产生影响的代码,否则循环会一直重复下去,形成死循环。

    do……while语句与while语句大体上相同,唯一的不同之处是do……while语句会先执行语句,然后对条件进行判断。其语法为

    do {
        //statements;
    }while (condition);
    同样是上面的例子,其结果变为

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var a=1,b=0;
            do{
                if(a%2==0){
                    if(b%20==0)
                    {
                        document.write("<br>第"+parseInt(b/20+1)+"行偶数");
                    }
                    document.write("<u>"+a+"</u>"+"&nbsp"+"&nbsp");
                    b++;            
                }
                a++;
            }while(a<=1000)

     相较于上面的两种循环,for循环显得更为地简洁有效。

    for (变量=开始值;变量<=结束值;变量=变量+步进值) {
             需执行的代码 
        } 
    ()里的三条语句中,第二条为判断语句,只有其结果为真时循环才会执行。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    for(var a=1,b=0;a<=100;a++){
        if(a%2==0){
            if(b%20==0)
            {
                document.write("<br>第"+parseInt(b/20+1)+"行偶数");
            }
            document.write("<u>"+a+"</u>"+"&nbsp"+"&nbsp");
         }
    }


    三,循环控制

     在循环中,有时候我们急需跳出整个循环或某一次的循环语句不进行执行,这时我们需要用到break语句和continue语句。这两个语句都存在于循环语句中,前者终止整个循环,后者阻止某次循环的执行。如

     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    var n=0,m=0;
    for(var i = 1; i < 10; i++){
            if(i == 4){
                continue;
            }
     
            n++;
        }
    alert(n);//8
     for(var i = 1; i < 10; i++){
            if(i == 4){
                break;
            }
            m++;
        }
    alert(m);//3


    break(停止循环语句) continue(跳出当前循环进入下一次循环)
    函数的定义:

    1,完成某一功能的代码段
    2,重复利用
    3,方便维护和优化
    function定义函数命名注意事项:
    1,函数通过return返回值,否则可能出现undefined
    2,不能包括特殊字符
    3,要有语义化
    4,最好驼峰和下划线
    5,严格区分大小写
    6,名字注意覆盖
    7,可以写参数也可以不写,但要注意传参、
    8,通过事件(驱动)调用函数
    调用函数:
    1,通过事件(方法调用)

    <input type="button" value="Button 1" id="btn1"  />

    <input type="button" value="Button 2" id="btn2"  />
    <input type="button" value="Button 3" id="btn3"  onclick="buttonClicked();"/>
     
    <script type="text/javascript">
    function buttonClicked(){
        var text = (this === window) ? 'window' this.id;
        alert( text );
    }
    var button1 = document.getElementById('btn1');
    var button2 = document.getElementById('btn2');
     
    button1.onclick = buttonClicked;
    button2.onclick = function(){   buttonClicked();   };
    </script>


    2,使用构造函数调用函数

    如果函数调用前使用了 new 关键字, 则是调用了构造函数。

    这看起来就像创建了新的函数,但实际上 JavaScript 函数是重新创建的对象:

       function Person () {
            // new了 进入构造函数时, p 对象的原型 就指向了 构造函数 Person, 
            // p.__proto__.constructor = function Person() {};
            // 而 this 指的的是 p 对象
            this.name = 'jim',
            this.age = 19;
            this.gender = 'male';
        }
        var p = new Person();

    3,回调函数return一个函数在调用一个函数,(call apply)

    你越多的使用JavaScript的函数,你就越多的发现你需要传递函数并在不同的上下文里调用他们,就像Qjuery在事件处理函数里所做的一样,你往往经常需要重置this的值.记住我告诉你的,在Javascript中函数也是对象,函数对象包含一些预定义的方法,其中有两个便是apply()和call(),我们可以使用它们来对this进行重置.

    1
    2
    3
    4
    5
    var gasGuzzler = { year: 2008, model: 'Dodge Bailout' };
    makeArray.apply( gasGuzzler, [ 'one''two' ] );
    // => [ gasGuzzler, 'one' , 'two' ]
    makeArray.call( gasGuzzler,  'one''two' );
    // => [ gasGuzzler, 'one' , 'two' ]


    4,全局调用window

    最常用的方法,但不幸的,全局的函数调用
    当我们学习Javascript时,我们了解到如何用上面示例中的语法来定义函数。
    ,我们也知道调用这个函数非常的简单,我们需要做的仅仅是:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    makeArray('one''two');
    // => [ window, 'one', 'two' ]
     
    Wait a minute. What's that window
     
     
    alert( typeof window.methodThatDoesntExist );
    // => undefined
    alert( typeof window.makeArray);
    // =>
     
     
    window.makeArray('one', 'two');
    // => [ window, 'one', 'two' ]


    测试代码URI:

        函数功能介绍:
            
            escape()   :     采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都会转化成%xx格式的字符编码(xx代表此字符在字符集表里编码的16进制数字)。比如,空格符的对应编码是%20。不会对ASCII字符和数字进行编码。不会被此方法编码的字符:@ * / +,反向编码函数:unescape()
     
            encodeURI():    把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $ & ( ) = : / ; ? + ',反向编码函数:decodeURI()
            
            encodeURIComponent():把URI字符串采用URF-8编码格式转化成escape格式的字符串。与encodeURI相比,这个函数会将更多的字符进行编码,比如"/"等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个来进行编码。否则“/”字符被编码后将URL显示错误。不会被此方法编码的字符:! * ( ),反向编码函数:decodeURIComponent()
       具体用法:
     
            escape()函数用于js对字符串进行编码。不常用
     
            encodeURI()用于整个url跳转,比如:
                   转化前: location.href = "http://localhost:8080/pro?a=1&b=张三&c=aaa";
                   转化后: location.href = "http://localhost:8080/pro?a=1&b=%E5%BC%A0%E4%B8%89&c=aaa"
                   本例中只是将中文转成%...,传过去再解码就可以拿到中文
     
            encodeURIComponent()用于参数的传递,参数包含特殊字符可能会造成间断。比如:
                   var paramUrl = "http://localhost:8080/aa?a=1&b=2&c=3";
                   var url = "http://localhost:8080/pp?a=1&b="+ paramUrl ;
                    应该使用encodeURIComponent()进行转码,
                    结果:http://localhost:8080/pp?a=1&b=http%3A%2F%2Flocalhost%3A8080%2Faa%3Fa%3D1%26b%3D2%23%26c%3D3
  • 相关阅读:
    02-SpringCloud 基础框架搭建
    01-SpringCloud 理论
    ES7 语法详解(async 与 await(重点))
    ES6 语法详解(Set和Map(重点))
    ES6 语法详解(对象扩展)
    ES6 语法详解(数组扩展)
    ES6 语法详解(数值扩展)
    ES6 语法详解(字符串扩展)
    ES6 语法详解(class关键字)
    ES6 语法详解(Generator函数)
  • 原文地址:https://www.cnblogs.com/Cc-ll/p/8228885.html
Copyright © 2020-2023  润新知