一、字符串方法

所有用单引号,双引号,反引号包起来的都是字符串

  1. let str = 'zhufangpeixun';
  2. // 每一个字符串都是由0到多个字符组成的
  3. str.length // 字符串长度
  4. str[0] // 获取索引为0的(第一个)字符
  5. str [str.length-1] // 获取最后一个字符 str.length-1 最后一项索引
  6. str[1000]; // undefined 不存在这个索引
  7. // 循环输出字符串中的每一个字符
  8. for (let i = 0; i < str.length; i++) {
  9. let char = str[i];
  10. }

获取索引 charAt / charCodeat

  • charAt():根据索引获取指定位置的字符 找不到的时候 chaoAt 不会得到 undefined
  • charCodeat():获取指定字符的 ASCII 码值,(Unicode 编码值)

substr / substring / slice 实现字符串截取(在原来字符串中查找我们想要的)

  • substr(n, m);
    从索引 n 开始截取 m 个字符,m 不写就截取到末尾(后面的方法也是)
  • substring(n, m);
    从索引 n 开始找到索引为 m 处,不含 m
  • slice(n, m);
    和 substring 一样,都是找到索引为 m 处,但是 slice 可以支持负数作为索引,其余两个方法是不可以的
    负数索引:我们可以按照 str.length + 负索引的方式找。

indexOf(x, y) / lastIndexOf(x) 验证字符是否存在

  • indexOf(x, y) : 获取 x 第一次出现位置的索引,y 是控制查找的起始位置索引
  • lastIndexOf(x) : 最后一次出现位置的索引
    注意:如果没有这个字符,返回的结果是-1。

toUpperCase / toLowerCase 大小写转换

  • toUpperCase() :字母转大写
  • toLowerCase() :字母转小写

split([分隔符]) 可以和正则搭配使用

  • 把字符串按照指定的分割符拆分成数组,(和数组中 join 对应)
  1. // 需求:把 | 变成 , 分隔符
  2. let str = 'mousic | movie | eat | sport';
  3. let ary = str.split('|') => ["mouve", "movie", "eat", "sport"]
  4. str = ary.join(',');
  5. console.log(str); => "music, movie, eat, sport"

replace(old,new) 实现字符串替换(总是伴随着正则而用)

  1. // 需求:把 @ 变为 - 。
  2. let str = '@杨帆@起航';
  3. str = str.replace('@','-')
  4. // 在不使用正则表达式的情况下,执行一次 replace 只能替换一次字符

match

  1. match(匹配内容或者正则) 匹配;如果匹配到会返回一个数组,匹配不到返回 null
  2. var str14 = 'ABCabcEfg';
  3. var st14 = str14.match('ABC');
  4. console.log(st14);
  5. console.log(Object.prototype.toString.call(st14)); // "[object Array]"
  6. /* 匹配到的结果
  7. * [
  8. * 0: "ABC"
  9. groups: undefined
  10. index: 0
  11. input: "ABCabcEfg"
  12. length: 1
  13. * ]
  14. *
  15. * */
  16. var st15 = str14.match('ABCD');
  17. // console.log(st15);

localCompare
trim / trimleft / trimRight

  • 字符串.trim() 去除字符串首尾空格的

控制台输出 String.prototype, 即可解锁更多姿势。

补充:

  1. 如何将字符串转换成对象?
  2. // 数字 字符串 布尔值 分别对应 Number String Boolean 三个类,可以通过原型上的方法把基本类型的值变成对象
  3. let a = new String('6666');
  4. valueOf() // 返回实例对应的原始类型的值
  5. toString() // 转换为字符串
  6. let b = str.includes("Hello", 2) // 从第2位索引值开始查找
  7. let c = str.startsWith("Hello") // 返回布尔值 标识参数字符串是否在原字符串头部
  8. let d = str.startsWith("World", 6) // 从第6个索引值开始查找
  9. let e = str.endsWith("World"); // 返回布尔值 标识参数字符串是否在原字符串尾部
  10. let f = str.endsWith("Hello", 5); // 从第5个索引值开始查找
  11. let g = str.repeat(3) // 将字符串重复 3遍
  12. let h = str.padStart(20, "a") // 重复第二个参数来补全 字符串 直到字符串位数为 20 在前面补全
  13. let i = str.padEnd(20, "a") // 重复第二个参数来补全 字符串 直到字符串位数为 20 在后面补全

实现一些常用需求

事件字符串的处理

  1. let time = '2019-7-14 12:6:25';
  2. // 变为自己需要呈现的格式,例如'2019年7月14日 12时6分25秒'
  3. // "2019年7月14日"
  4. // "07/14 12:25"
  5. // 不足十位补零方法
  6. let addZero = val => val.length < 2 ? '0' + val : val;
  7. // 处理方式
  8. let ary = time.split(/(?: | - |:)/g);
  9. time = ary[0] + '年' + addZero(ary[1]) + '月' + addZero(ary[2]) + '日';
  1. // 实现一个方法:queryURLParameter 获取一个 URL 地址问号后面传递的参数信息
  2. // 基于正则封装:
  3. function queryURLParams(url) {
  4. let result = {};
  5. reg1 = /([^?=&#]+)=([^?=&#])/g,
  6. reg2 = /#([^?=&#]+)/g;
  7. url.replace(reg1,(n, x, y) => result[x] = y);
  8. url.replace(reg2,(n, x) => result['HSAH] = x);
  9. return result;
  10. }
  11. let aa = 'http://www.zhufengpeixun.cn/index.html?lx=1&name=zhufeng&teacher=aaa#box';
  12. let paramsObj = queryURLParams(aa);
  13. console.log(parmasObj);

把一个单词倒过来

  1. // 把一个单词倒过来
  2. // 方法1
  3. var str = 'word'; // 'drow'
  4. var s = '';
  5. for (var i = str.length - 1; i >= 0; i--) {
  6. s += str[i];
  7. }
  8. console.log(s);
  9. // 方法2
  10. // var s2 = str.split('').reverse().join('');
  11. console.log(s3);
  12. // 方法3
  13. var ary2 = str.split('');
  14. ary2.reverse();
  15. var s3 = ary2.join('');
  16. console.log(s3);

二、Math方法

常用的属性和方法:Math 是一个对象,通过对象.属性名调用

  • Math.abs([number value]);
    获取绝对值(绝对值永远是正数或者0),如果传的不是数字类型的值,通过 Number()转换为数字再处理
  • Math.ceil / floor([number value]);
    把一个数向上取整或 / 向下取整
  • Math.round([number value]);
    四舍五入 负数 . 5 属于舍
  • Math.max / min([val1],[val2], …);
    获取一堆数中的最大值 / 最小值
  • Math.sqrt / pow( )
    sqrt:给一个数开平方
    pow:计算一个数的多少次幂
    Math.pow(2 , 10); 1024
  • Math.random()
    获取0-1之间的随机小数

  • Math.PI 获取圆周率

    1. var PI = Math.PI; // 3.1415926....<br /> var PIFixed = PI.toFixed(2); // toFixed (保留几位小数)<br /> console.log(PI, PIFixed);

扩展:获取 [n ~ m] 之间的随机整数 包含 n 也包含 m,n < m; Math.round(Math.random()*(m - n) + n);

三、日期方法

  1. let time = new Date();
  2. /*
  3. * 获取当前客户端(本机电脑)本地的时间
  4. * 这个时间用户是可以自己修改的,所以不能作为重要的参考依据
  5. *
  6. * Fri Jul 26 2019 10:02:17 GMT+0800 (中国标准时间)
  7. * 获取的结果不是字符串是对象数据类型的,属于日期对象(或者说是 Date 这个类的实例对象)
  8. */
  9. typeof time; // "object"

标准日期对象中提供了一些属性和方法,供我们操作日期信息

  • getFullYear() 获取年
  • getMonth() 获取月 结果是0~11代表第一月到第十二月
  • getDate() 获取日
  • getDay() 获取星期 结果是0~6代表周日到周六
  • getHours() 获取时
  • getMinutes() 获取分
  • getSeconds() 获取秒
  • getMilliseconds() 获取毫秒
  • getTime() 获取当前日期距离 1970/1/1 00:00:00 这个日期之间的毫秒差
  • toLocaleDateString() 获取年月日(字符串)
  • toLocaleString() 获取完整的日期字符串