• js6


    Array对象

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <script>
        // 如何创建数组对象
        // 1 数组字面量  []
        // var array = []; // 空数组
        // var numbers = [1, 5, 1];
        // 
        // 2 数组的构造函数Array
        // var array = new Array();   // 空数组
        // var numbers = new Array(4, 1, 6);
        // console.log(numbers);
        // 
        // 获取数组长度
        // console.log(numbers.length);
        // 
        // 
        // 
        // 如何判断一个变量是否是数组对象
        function fn(arr) {
          // 判断参数arr 是否是数组对象
          // instanceof 
          // console.log(arr instanceof Array);
          // 
          // !arr instanceof Array   
          // false instanceof Array
          // 方式1
          // if (!(arr instanceof Array)) {
          //   console.error('参数err 不是数组对象');
          //   return;
          // }
          // 
          // 
          // 方式2  Array.isArray() 浏览器兼容性问题  HTML5
          // console.log(Array.isArray(arr));
          // if (!Array.isArray(arr)) {
          //   console.error('参数err 不是数组对象');
          //   return;
          // }
          console.log('正常执行');
        }
        var d = 1;
        fn(d);
      </script>
    </head>
    <body>
    </body>
    </html>

    Array对象的常用方法

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <script>
        // toString()/valueOf()   每一个对象都具有这两个方法
        // var arr = [5, 1, 8, 0];
        // console.log(arr);
        // // toString() 把数组转换成字符串,并且使用, 分割每一项
        // console.log(arr.toString());
        // // valueOf() 返回数组对象本身
        // console.log(arr.valueOf());
        // 1 栈操作(先进后出)
        // push()
        // pop()     //取出数组中的最后一项,修改length属性
        // // 2 队列操作(先进先出)
        // push()
        // shift()   //取出数组中的第一个元素,修改length属性
        // unshift()   //在数组最前面插入项,返回数组的长度
        // // 3 排序方法
        // reverse() //翻转数组
        // sort();   //即使是数组sort也是根据字符,从小到大排序
        // 
        // 
        // 
        // 1 栈操作  先进后出
        // var array = [1, 2, 3];
        // // array[array.length] = ...
        // array.push(4);
        // // 参数, 可以有多个,将来都会添加到数组最后
        // // 返回值,就是改变后的数组的长度
        // var r = array.push(5, 6, 7);
        // // console.log(r);
        // // console.log(array);
        // // pop 返回数组中的最后一个元素,并且会修改数组的长度
        // var last = array.pop();
        // console.log(last);
        // console.log(array.length);
        // console.log(array);
        // 
        // 
        // 2 队列操作(先进先出)
        // var array = [1, 2, 3];
        // array.push(4);
        // var first = array.shift();
        // console.log(first);
        // console.log(array);
        // array.unshift(0);
        // console.log(array);
        // 
        // 3 排序方法
        // var array = ['e', 'a', 'f', 'b'];
        // // var newArray = array.reverse();
        // // console.log(newArray);
        // // 
        // // sort() 直接在原数组上进行排序
        // array.sort();
        // console.log(array);
        // 如何学习一个方法
        // 1 了解方法的作用
        // 2 方法的参数
        // 3 方法的返回值
        // 4 测试,编写一个demo
      </script>
    </head>
    <body>
    </body>
    </html>

    sort

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <script>
        // sort 
        // var arr = [25, 10, 108, 18];
        // 默认情况下的sort是对字符编码 从小到大排序
        // arr.sort();
        // console.log(arr);
        // ASCII
        // 字符编码    a  >  97
        // 
        // function compare(a, b) {
        //   return a - b;
        // }
        // arr.sort(compare);
        // console.log(arr);
        // arr.sort(function (a, b) {
        //   return b - a;
        // })
        // console.log(arr);
        // 
        // 
        var arr = ['abc', 'ab', 'a', 'abcdef', 'xy'];
        arr.sort(function (a, b) {
          return a.length - b.length;
        });
        console.log(arr);
      </script>
    </head>
    <body>
    </body>
    </html>

    清空数组

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <script>
        var arr = [1, 2, 3];
        // 清空数组
        // arr = [];
        // console.log(arr);
        // 
        // arr.length = 0;
        // console.log(arr);
        // 
        //  第一个参数,是从什么位置开始删除 索引
        //  第二个参数,删除多少个元素
        arr.splice(0, arr.length);
        console.log(arr);
      </script>
    </head>
    <body>
      </body>
    </html>

    数组案例

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <script>
        // 将一个字符串数组输出为|分割的形式,比如“刘备|张飞|关羽”。使用两种方式实现
        // var arr = ['刘备', '张飞', '关羽'];
        // // arr.toString();  ->  刘备,张飞,关羽
        // console.log(arr.join('|'));
        // 将一个字符串数组的元素的顺序进行反转。["a", "b", "c", "d"] -> [ "d","c","b","a"]。使用两种种方式实现。提示:第i个和第length-i-1个进行交换
        // 
        // var arr = ["a", "b", "c", "d"];
        // arr.reverse();
        // console.log(arr);
        // 工资的数组[1500, 1200, 2000, 2100, 1800],把工资超过2000的删除
        // var arr = [1500, 1200, 2000, 2100, 1800];
        // var newArray = arr.filter(function (item) {
        //   // item就是数组中的每一个元素
        //   return item < 2000;
        // })
        // console.log(newArray);
        // ['c', 'a', 'z', 'a', 'x', 'a']找到数组中每一个a出现的位置
        // var arr = ['c', 'a', 'z', 'a', 'x', 'a'];
        // 从前往后找元素
        // console.log(arr.indexOf('a'));
        // // 从后往前找
        // console.log(arr.lastIndexOf('a'));
        // indexOf的第二个参数 设置indexOf查找的开始位置
        // console.log(arr.indexOf('a', 2));
        // 如果没有找到元素 indexOf  会返回-1
        // 
        // while   do...while
        // var index = -1;
        // do {
        //   index = arr.indexOf('a', index + 1);
        //   if (index !== -1) {
        //     console.log(index);
        //   }
        // } while (index !== -1);
        // 编写一个方法去掉一个数组的重复元素['c', 'a', 'z', 'a', 'x', 'a']
        // ['c', 'a', 'z', 'a', 'x', 'a']  -> ['c', 'a', 'z', 'x']
        // 
        // 1 如何获取数组中每一个元素出现的次数
        // 1.1 遍历数组中的每一个元素
        // { c: 1
        // a: 1 + 1 + 1
        // z: 1
        // x: 1 }
        // 1.2 创建一个对象,把数组的元素作为对象的属性,并记录次数
        // 
        // var o = {};
        // console.log(o['c']);  // 我们访问对象中没有的属性,返回值是undefined
        function clear(arr) {
          // 1 如何获取数组中每一个元素出现的次数
          var o = {}; // 记录数组中元素出现的次数
          for (var i = 0; i < arr.length; i++) {
            var item = arr[i]; // 数组中的每一个元素
            // o[item] = 1;
            // 判断o对象是否有当前遍历到的属性
            if (o[item]) {
              // 如果o[item] 存在,说明次数不为1
              o[item]++;
            } else {
              // 如果o[item] 不存在,说明是第一次出现
              o[item] = 1;
            }
          }
          // console.log(o);
          // 2 生成一个新的数组,存储不重复的元素
          var newArray = [];
          // 遍历对象o中的所有属性
          for (var key in o) {
            // 判断o对象中当前属性的值是否为 1  如果为1 说明不重复直接放到新数组中
            if (o[key] === 1) {
              newArray.push(key);
            } else {
              // o对象中当前属性 次数不为1 ,说明有重复的,如果有重复的话,只存储一次
              // 判断当前的newArray数组中是否已经有该元素  
              if (newArray.indexOf(key) === -1) {
                newArray.push(key);
              }
            }
          }
          return newArray;
        } 
        var array = ['c', 'a', 'z', 'a', 'x', 'a'];
        var newArray = clear(array);
        console.log(newArray);   
      </script>
    </head>
    <body>
    </body>
    </html>

    基本包装类型

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <script>
        // 简单类型 没有属性和方法
        // 对象 才有属性和方法
        // var s1 = 'abc';
        // var len = s1.length;
        // console.log(len);
        // // s1.length 执行过程
        // // 把基本类型变成基本包装类型  会创建一个对应的临时对象
        // var _s1 = new String('abc');
        // var len = _s1.length;
        // _s1 = null;  // 销毁对象
        // 基本包装类型:基本类型包装成复杂类型
        // String Number Boolean
        // 
        // PrimitiveValue  原始值
        // var s = new String('123abc');
        // console.log(s);
        // console.log(s1);
        // 
        // 将来我们一般情况下不会使用Number Boolean 基本包装类型
        // PrimitiveValue  16
        // 创建Number的对象
        // var n1 = new Number('16');
        // // 类型转换
        // var n2 = Number('16');
        // console.log(n1);
        // console.log(n2);
        // PrimitiveValue  false
        // var b1 = new Boolean(false);
        // var b2 = Boolean('abc');
        // console.log(b1);
        // console.log(b2);
        var b1 = new Boolean(false);
        var b2 = b1 && true;  //  转换成false的5种情况  0 ''  null NaN undefined
        console.log(b2);
      </script>
    </head>
    <body>
    </body>
    </html>

    字符串的特点

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <script>
        // 字符串的不可变
        // var s = 'abc';
        // s = 'xxxxxxyyy';
        // 当拼接大量字符串的时候,会有性能问题
        var s = '';
        for (var i = 0; i < 100000; i++) {
          // s += i;
          s = s + i;
        }
        console.log(s);
      </script>
    </head>
    <body>  
    </body>
    </html>

    字符串方法

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <script>
        // 1 字符方法
        // charAt()      //获取指定位置处字符
        // charCodeAt()    //获取指定位置处字符的ASCII码
        // str[0]      //HTML5,IE8+支持 和charAt()等效
        // 
        // var s = 'abcdef';
        // console.log(s.charAt(0));
        // for (var i = 0; i < s.length; i++) {
        //   console.log(s.charAt(i));
        // }
        // 
        // console.log(s.charCodeAt(0));
        // 
        // for (var i = 0; i < s.length; i++) {
        //   console.log(s[i]);
        // }
        // // 2 字符串操作方法
        // concat()      //拼接字符串,等效于+,+更常用
        // slice()       //从start位置开始,截取到end位置,end取不到
        // substring()   //从start位置开始,截取到end位置,  end取不到
        // substr()      //从start位置开始,截取length个字符
        // // 3 位置方法
        // indexOf()     //返回指定内容在元字符串中的位置
        // lastIndexOf()   //从后往前找,只找第一个匹配的
        // // 4 去除空白   
        // trim()      //只能去除字符串前后的空白
        // // 5 大小写转换方法
        // to(Locale)UpperCase()   //转换大写
        // to(Locale)LowerCase()   //转换小写
        // // 6 其它
        // search() 
        // replace()
        // split()
      </script>
    </head>
    <body>
    </body>
    </html>
    

    获取url中参数

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <script>
        // 获取url中?后面的内容
        // 例如:http://www.itheima.com/login?name=zs&age=18&a=1&b=2
        var url = 'http://www.itheima.com/login?name=zs&age=18&a=1&b=2';
        // console.log(url.substr(2));
        // var index = url.indexOf('?') + 1;
        // console.log(url.substr(index));
        // {
        //   name: 'zs',
        //   age: 18
        // }
        // 获取url后面的参数
        function getParams(url) {
          // 获取? 后面第一个字符的索引
          var index = url.indexOf('?') + 1;
          // url中?后面的字符串 name=zs&age=18&a=1&b=2
          var params = url.substr(index);
          // 使用& 切割字符串 ,返回一个数组
          var arr = params.split('&');
          var o = {};
          // 数组中每一项的样子 key = value
          for (var i = 0; i < arr.length; i++) {
            var tmpArr = arr[i].split('=');
            var key = tmpArr[0];
            var value = tmpArr[1];
            o[key] = value;
          }
          return o;
        }
        var obj = getParams(url);
        console.log(obj);
        console.log(obj.name);
        console.log(obj.age);
    </script>
    </head>
    <body> 
    </body>
    </html>
    别废话,拿你代码给我看。
  • 相关阅读:
    eclipse中统计代码行数
    vmware ubuntu 最近遇到的一些问题
    Shows how to create and run composites dynamically
    程序员的艺术:排序算法舞蹈
    Apache Mina 网络通信
    OutOfMemoryError汇总
    c++/java/c# 几种编程语言的指针、引用比较
    Silverlight开发工具集合
    web.cong 详解
    ASP.NET中的web.config配置
  • 原文地址:https://www.cnblogs.com/lvxueyang/p/13707431.html
Copyright © 2020-2023  润新知