美文网首页
前端一周02 JavaScript 字符串、 数组

前端一周02 JavaScript 字符串、 数组

作者: 尘榆骡厌 | 来源:发表于2017-11-21 21:42 被阅读0次
       字符串
      String 用来处理文本(字符串)
      
                字符串的创建
        1. 字面量的创建方式
        //  字面量的声明
        var str = "sfssfsf";   //  用""或者是''括起来的字段就叫字符串
        2.通过new的方式  (构造函数创建)
        //  构造函数创建
        var str = new String('hello');   //  新创建一个对象,并且把存放的值赋予给对象
        3. 直接使用String()创建   
        //  直接使用String() 来去创建
        var str = String('hello');   //  直接办存放的值转换为最原始的字符串并返回值
        属性:length   
        字符串的length是其字符串中所有字符的长度
        获取字符串的长度
        var str = 'www.baidu.com';
        console.log(str.length)
        
       方法:
       
       1.charAt()
            在字符串中获取某个位置的字符
        //  charAt()
            var s = str.charAt(10);
            console.log(s);
        2. charCodeAt()
            获取字符串中某个位置的字符对应的Unicode编码
        
        3.indexOf()
                // 对字符串进行检索
                //  返回回来的值是检索字符在字符串中的下标,没有检索到返回值是-1
                //  检索时时把检索的字符当做是一个整体来处理
            var str = 'www.baidu.com';
            var ind = str.indexOf('comn');
            console.log(ind);
            
        4.match()
            找到匹配正则表达式的集合
            var str = '苏久福今年25,苏久福是男生,苏久福身高190';
            var reg = /苏久福/g;
                
            var arr = str.match(reg);
            console.log(arr);
            
        5.replace()
            替换匹配正则表达式的字符
            var str = '苏久福今年25,苏久福是男生,苏久福身高190';
            var reg = /苏久福/g;
            var newStr = str.replace(reg,'王瑞');
            console.log(newStr);
        6.slice()
            //  截取字符串,可以传入两个参数,一个是startSlice,一个是endSlice
            //  如果只传入一个参数,那么就会默认从参数对应的下标开始截取一直到结束
            var str = '苏久福今年25,苏久福是男生,苏久福身高190';
            var ss = str.slice(0,3);   //  [start,end)  
            console.log(ss);
        
        7.split()
            将字符串分割为数组,通过制定的字符来分割
            var str = '苏久福今年25,苏久福是男生,苏久福身高190';
            var arr = str.split(',');
            console.log(arr);
        
        8. substr()  substring()
            提取指定位置在字符串中的字符
            //   substr()   substring()
            //  这两个方法如果只传入一个参数,他们结果是一致的
            //  substr  第二个参数代表从第一个参数位置开始截取的字符长度
            //  substring  第二个参数也是提取字符的下标,从小的开始提取到大的下标位置
            var str = 'www.baidu.com';
                
            var newstr = str.substr(5,1);
            console.log(newstr);
            var newstr1 = str.substring(5,0);  // [5,10)
            console.log(newstr1);
            console.log(newstr == newstr1);   // true
        
        9. toUpperCase()   toLowerCase()
            toUpperCase()   将字符转换为大写
            toLowerCase()   将字符转换为小写
            
        //  toUpperCase()
            
            var str = 'www.baidu.com';
            
            var newstr = str.toUpperCase();
            console.log(newstr);
    

           数组
        Array 用于单个变量存储多个值
        var arr = [1,2,3,4,5];    
            找值通过下标去寻找
        创建
            1.  字面量
            var arr = [];   //  字面量创建
            
            2.  new 
            var arr = new Array();      // 返回一个空数组
            
            var arr1 = new Array(2);    //   返回一个规定了size(元素个数)的数组
            
            var arr2 = new Array(1,3,5,10,9);   //   返回了一个定义了初始值的数组
                
            console.log(arr,arr1,arr2);
       
        属性:
            length   返回数组的长度/返回数组元素的总个数
       
        方法:
            1. concat()
               将多个数组合并并返回合并后的数组
               var arr1 = [1,2,3];
                var arr2 = [4,5,6];
                var arr3 = [7,8,9];
                
                var arr = arr1.concat(arr2,arr3);
                console.log(arr);
            
            2.push()
                       将要添加的元素作为数组最后一个添加到数组中
                var arr = [];
                arr.push(1);
                
                arr.push(3);
                console.log(arr);       
                       
            3.pop()
                删除最后一个元素并返回
                //   push   pop
                    
                var a = arr.pop()
                console.log(a);
                console.log(arr);
            
            4. unshift()
                将要添加的元素作为数组的第一个元素添加到数组中
                
            5. shift()
                删除数组的第一个元素并返回
            
            6.reverse()
                将数组元素反序来排列
                //  reverse
                var arr = [1,2,3,4,5,6,7,8,9];
                var newArr = arr.reverse()
                console.log(newArr);
            7.slice()
                在已有的数组中返回制定的元素
                // slice
                var arr = [1,2,3,4,5,6,7,8,9];
                var newArr = arr.slice(5,7);  //  [5,7)
                console.log(newArr);
            8.sort()
                对数组进行排序
                //  sort
                var arr = [12,2,34,34,13,1000,24];
                var arr1 = arr.sort(function(b,a){
                    return b-a;     //  函数中的第一个参数 - 函数中的第二个参数  代表正序排列(从小到大)
                                    //  函数中的第二个参数 - 函数中的第一个参数  代表反序排列(从大到小)
                })
                console.log(arr1);
            9.splice()
                删除元素并向数组中添加新元素
                //  splice
                var arr = ['sss','aaa','bbb'];
                var arr1 = arr.splice(1,1,'ccc');   //  返回删除的元素
                //  splice 第一个参数删除的开始下标  ,第二个参数代表删除元素的个数 , 第三个参数 代表要想数组中添加的新元素、位置为删除元素在原来数组中的位置
                console.log(arr,arr1);
                
            10. join()    toString()
                将数组转换为字符串
                //  join
                var arr = ['hello','world','sujiufu'];
                var str = arr.join("====");
                // 通过制定的字符将数组中所有的元素链接成一个字符串返回
                console.log(str);
                //  toString
                var str = arr.toString();
                //  把所有的元素直接转换为字符串返回,
                              并且数组中元素分隔符也加到了字符串中
                console.log(str);
    

       数据传输格式
       
       JSON
            JSON ?
            JSON 指Javascript对象表示法,  JavaScript Object Notation
            JSON 是轻量级的文本数据传输格式
            JSON 独立于语言
                JSON使用了javascript语法来描述数据对象,但是JSON仍旧独立于语言和平台,JSON解析器和JSON库支持许多不同的编程语言。
            JSON 具有自我描述性,更容易的去理解。
            
            为什么要使用JSON?
                JSON对于我们应用来说,JSON比XML更容易的去使用
                
            JSON语法?怎么去书写?
                JSON 主要是以键值对的形式存在
                
            JSON的值可以接收哪几种类型?
                String
                Number
                Boolean
                Array
                Object
                Null
                
            //  复杂类型
            
            Array
            Object
            
            JSON中Array?
                数组不止是接受简单的数据,还可以接受对象作为元素
            JSON中Object?
                对象里也可以接受对象作为元素,但注意的是需要以键值对的方式存在
            
            怎么使用JSON?
    
            //   datasrc["键的名字"]              //  [] 这里面可以接收变量
            var name = "ObjectType";
            
            var obj = datasrc[name];
            
            console.log(obj["option"]);
            
            //   datasrc.ObjectType               // 不能接受变量
            var name = "ObjectType";
            
            var obj = datasrc.ObjectType;
            
            console.log(obj["option"]);
            
            js方式去引入的
            
            JSON文件?
              .json  扩展名 
              不能使用单引号,必须得使用双引号,
              每一个键值对之间必须的使用,隔开
              
            JSON两个重要的方法?
            
                JSON 转换为字符串的方法
                    JSON.stringify(json);
              
              
                字符串转换为JSON
                    JSON.parse(str);
       
                注意:字符串转换为JSON,那么字符串必须是json严格格式的字符串
       
       
       XML
       
            和HTML很像很像
            XML  被设计用来传输和存储数据的
            
            XML  可扩展标记语言  (EXtensible Markup Language)
       
            XML  宗旨是传输数据      HTML 是用来显示数据
            
            XML  中可以自由的定义标签
            
            XML  也具有自我描述性
            
            XML文件?
                标志      <?xml version="1.0" encoding="utf-8"?>
                标签一定是闭合双标签
                    <root> </root>
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <form>
                <input type="text" id="username" />
                <input type="password" id="password" />
                <button id="login">登录</button>
                <button id="regist">注册</button>
            </form>
            
            <script>
            //   后台
            var database = {};     //  database  是数据库
            
            database.users = [];      //  创建一个表
            
            database.users.push({           //  向表中插入一条数据
                "id":1,
                "username":"admin",
                "password":"123456",
                "type":"admin"
            })
            
            //   注册的registFun
            function registFun(option){        //   注册接受数据
                var flag = true;
                database.users.forEach(function(e,i){//传一个函数 e代表每一个元素i每个元素的索引值
                    if(e.username == option.name){
                        flag = false;
                    }
                })
                if(flag){
                    var lenOld = database.users.length;
                    database.users.push({           //  注册
                        "id":database.users.length+1,
                        "username":option.name,
                        "password":option.password,
                        "type":"user"
                    })
                    var lenNew = database.users.length;
                    if(lenNew - lenOld == 1){
                        return '{"ok":true,"mes":"注册成功"}';        //   后台给前台返回一个字符串
                    }else{
                        return '{"ok":false,"mes":"注册失败"}'; 
                    }
                }else{
                    return '{"ok":false,"mes":"用户名存在"}';
                }
                
            }
            
            //   登录的loginFun
            function loginFun(str){    ///   op 就是前台发送过来的数据
                //   查询用户名是否存在
                var obj = null;     //  用户   默认用户是null
                database.users.forEach(function(e){
                    if(e.username == op.name){
                        obj = e;
                    }
                })
                if(obj != null){
                    if(obj.password == op.password){
                        return '{"ok":true,"mes":"登陆成功"}';
                    }else{
                        return '{"ok":false,"mes":"密码错误"}';
                    }
                }else{
                    return '{"ok":false,"mes":"用户不存在"}';
                }
            }
            
            
            
            
            //   前台
            
            var regist = document.getElementById('regist');
            var login = document.getElementById('login');
            var username = document.getElementById('username');
            var password = document.getElementById('password'); 
            
            //  注册
            regist.onclick = function(){           //  注册完成
                var user = username.value;
                var pass = password.value;
                if(user !== "" && user.length>=3 && pass != "" && pass.length>=6){
                    var result = registFun({            //   后台发送数据    并接受返回的消息
                            "name":user,
                            "password":pass
                        });
                    var json = JSON.parse(result);
                    if(json.ok){
                        alert(json.mes);
                    }else{
                        alert(json.mes);
                    }
                }
                return false;
            }
            
            
            //   登录
            
            login.onclick = function(){
                var user = username.value;
                var pass = password.value;
                if(user !== "" && user.length>=3 && pass != "" && pass.length>=6){
                    //   往后台发送请求
                    var result = loginFun({     //  {} 向后台发送的数据
                        "name":user,
                        "password":pass
                    });
                    var json = JSON.parse(result);
                    if(json.ok){
                        alert(json.mes);
                    }else{
                        alert(json.mes);
                    }
                }
                return false;
            }
            
            
            /*
             
             *      1.前台获取用户输入的用户名和密码
             *      2.验证用户名和密码的格式是否正确
             *      3.开始往后台发送数据
             * 
             *      4.后台接受数据,并且需要对数据做相应的处理                                 class User{}
             *          //   'username=admin&password=123456'
             *          //   {username:admin,password:123456}
             *          //   '{"username":"admin","password":123456}'
             *      5.处理数据,拿到相应的参数  
             *      6.  login -> 登录功能            public void login(username,password){}
             *          regist -> 注册功能      public void regist(username,password){}
             * 
             *      7. 程序处理完以后返回相应的结果                         //   重定向     登陆成功                      
             *                                       //   重载      登陆失败
             * 
             *      //   需要向前台发送数据          
             * 
             *      7.程序处理完返回相应的结果并发送给前台
             * 
             *      8.接受后台发送回来的消息                   //  '{"ok":true,"mes":"登录成功"}'
             * 
             *      9.处理发送回来的消息                          //     登录成功    跳转页面                       登录失败          显示错信息
             * 
             * 
             * 
             * 
             * 
             * 
             * */
            
            
            </script>
            
            
        </body>
    </html>
    

    相关文章

      网友评论

          本文标题:前端一周02 JavaScript 字符串、 数组

          本文链接:https://www.haomeiwen.com/subject/uprgvxtx.html