JavaScript知识点简单总结

循环

  • while 循环
    while (条件){
    循环操作;
    }
    特点:先判断,再执行
  • do-while 循环
    do{
    循环操作;
    }while(循环条件);
    特点:先执行,再判断
  • for循环
    for(初始化变量 ;循环条件 ;变量更新 ){
    循环操作;
    }

特点:先判断,再执行
初始化变量 —> 循环条件(true) —> 循环操作 —>更新变量

内置对象

数学对象

  • Math.PI 圆周率
  • Math.floor(参数) 向下取整
    返回一个 小于或等于参数 的证书
  • Math.ceil(参数) 向上取整
    返回一个大于或等于参数的整数
  • Math.round(参数)四舍五入取整
  • Math.max(数值1,数值2,数值3.。。。)
    返回一组数里的较大值
  • Math.min(数值1,数值2,数值3.。。。)
    返回一组数里的较小值
  • Math.abs(参数)取绝对值
  • Math.pow(想x,y)
    返回x的y次方
  • Math.random()
    返回一个0-1之间的数字

日期对象

获取var mydate = new Date()
  • mydate.toLocaleDateString()
    根据本地时间把 Date 对象的日期部分转换为字符串,并返回结果
  • mydate.toLocaleTimeString()
    根据本地时间把 Date 对象的时间部分转换为字符串,并返回结果
  • mydate.toLocaleString()
    根据本地时间把 Date 对象的日期与时间部分转换为字符串,并返回结果
  • mydate.getFullYear() 获取年份
  • mydate.getMonth() 获取月份 0-11
    0–>1月份 1–>2月份
  • mydate.getDate() 获取日期
  • mydate.getHours() 获取小时
  • mydate.getMinutes() 获取分钟
  • mydate.getSeconds() 获取秒
  • mydate.getMilliseconds() 获取毫秒
  • mydate.getDay() 获取星期 0-6
    0–>星期日 1–>星期一
  • mydate.getTime() 获取距离1970年1月1日的毫秒数
设置var mydate = new Date(“yyyy/mm/dd hh:mm:ss”)
  • mydate.setFullYear(yyyy) 设置年份
  • mydate.setMonth(mm) 设置月份 0-11
    0–>1月份 1–>2月份
  • mydate.setDate(dd) 设置日期
  • mydate.setHours(hh) 设置小时
  • mydate.setMinutes(mm) 设置分钟
  • mydate.setSeconds(ss) 设置秒
  • mydate.setMilliseconds(ms) 设置毫秒
  • mydate.setTime(tt) 设置距离1970年1月1日的毫秒数

字符串对象

创建字符串

构建函数
var str = newString();
字面量
var str = ‘字符串’

属性

strObj.length 字符串长度
字符串索引 [0 , strObj .length -1]

方法
  • strObj .indexOf(参数1 ,参数2)
    从参数2位置开始检索参数1子串,在整个字符串中第一次出现的位置
    参数1:必须 检索的字符
    参数2 :可选 开始查找的位置 若省略从0开始
    返回值 数字【-1 ,字符串长度-1】
    若检索到字符串,返回该字符串所在位置的索引,若查不到返回-1
  • strObj .lastIndexOf(参数1 ,参数2)
    从参数2位置开始检索参数1子串,在整个字符串中最后一次出现的位置
  • strObj .replace(参数1 ,参数2)
    用参数2替换参数1
    参数1:必须 被替换的字符串或正则表达式 /正则/g g全局匹配
    参数2:必须用来替换参数1
  • strObj.substr(参数1 , 参数2)
    从参数开始截取长度为从参数2的子串
    参数1;必须写 开始位置 可为负 -1倒数第一个字符 -2倒数第二个字符
    参数2 ;可选 截取长度 若省略截取到整个字符末尾
    返回值 :截取到的子串
  • strObj.substring(参数1 , 参数2)
    从参数1(包含参数1位置的字符)开始截取到参数2(不包含参数2位子字符)的子串
    参数1;必须写 开始位置 不可为负
    参数2 ;可选 结束截取位置 若省略截取到整个字符末尾
    返回值 :截取到的子串
    • 概要
      参数1位置截取 ,参数2位置不截取
      当参数1 == 参数2 ,截取空字符
      当参数1 > 参数2 ,截取前先交换位置
  • strObj.slice(参数1 , 参数2)
    从参数1(包含参数1位置的字符)开始截取到参数2(不包含参数2位子字符)的子串
    参数1;必须写 开始位置 可为负
    参数2 ;可选 结束截取位置 若省略截取到整个字符末尾
    返回值 :截取到的子串
    • 注意点
      参数1位置截取 ,参数2位置不截取
  • strObj.charAt(索引号)
    根据索引号查询子串
  • strObj.charCodeAt(索引号)
    根据索引号返回字符对应的编码
  • strObj.toLowerCase()转换为小写字母
  • strObj.toUpperCase()转换为大写字母
  • strObj.split(参数1 , 参数2)
    参数1:必须写 分隔符
    参数2: 可选 分割分数
    返回值数组
  • strObj.match(参数)
    参数:正则表达式
    返回值:返回匹配结果构成的数组或null(匹配失败)
  • strObj.trim() 删除字符串左、右空格
  • strObj.trimLeft()删除左侧空格
  • strObj.trimRight()

数组对象

创建

构造函数
var arr=new Arr();
arr [0]=10; 在数组内部添加元素
arr[1]=1;
arr[5]=5; 数组长度为6
var arr=new Arr(10,7);
var arr=new Arr(4);
创建了一个长度为4的数组
字面量
var arr=[ ];
var arr=[1,2,3 ];

属性

arrObj.length 获取数组长度
[0,arrObj.length-1]

方法
  • 遍历
    arrObj.forEach(function(item,index,arr){
    item 遍历的数组的每个元素
    index 当前遍历元素的索引
    arr 数组
    })
  • 过滤
    arr.obj.filter(function(total,item,index,arr){
    total 初始值的返回值
    return 返回值;
    })
    数组中的每个值(从左到右)开始缩减,最终计算为一个值
  • 迭代
    arrObj.reduce(function(total , item,index,arr){
    total 初始值或函数的返回值
    return 返回值;
    },初始值);
    数组中的每个值(从左到右)开始缩减,最终计算为一个值
  • 映射
    arrObj.map(function(item,index,arr){
    return item * 2
    });
    返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
  • 删除
    arrObj.pop( ) 删除数组最后一个元素
    arrObj.shift( ) 删除数组da第一个元素
    返回值:删除的元素
  • 添加
    arrObj.push(元素1,元素2) 尾部添加元素
    arrObj.unshift(元素1,元素2) 头部添加元素
    返回值:新数组的长度
  • 排序
    arrObj.sort(参数)
    参数:可选 函数 若省略,按字符编码的升序排序
    函数里形参的相对顺序来决定按照升序还是降序排列
    arrObj.sort(function(a,b){
    return a-b;//升序
    return b-a;//降序
    })
    返回值:排序后的数组
  • 颠倒
    arrObj.reverse()
  • 链接数组
    arrObj.concat(参数)
    参数:必需 待连接的的数组或元素 多个数组或元素用逗号隔开
    返回值:连接后的数组
  • 分割
    arrObj.join(参数) 数组分割为字符串
    参数:可选 分隔符 若省略 默认用逗号隔开
    返回值:字符串
  • 删除与添加
    arrObj.splice(参数1,参数2,参数3)
    从 参数1 的位置开始删除 参数2 个元素,并在 参数1 位置添加参数 3 里的元素
    参数1:必选 开始删除的位置
    参数2:必选 删除元素的个数
    参数3:可选 添加的元素,多个元素之间用逗号隔开
    返回值:删除的元素组成的数组
  • 拷贝
    arrObj.copyWithin(参数1,参数2,参数3)
    用于从数组的指定位置拷贝元素到数组的另一个位置中
    参数1:必需,复制到指定目标索引位置
    参数2:可选,元素复制的起始位置
    参数3:可选,停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数
    返回值:数组
  • arrObj.every(function(参数1,参数2,参数3){
    return 条件;
    });
    用于检测数组所有元素是否符合指定条件(通过函数提供)
    如果所有元素都满足条件,返回true
    如果数组中检测到有一个元素不满足,返回false,且剩余的元素不会再检测
    参数1 : 必需,当前元素的值
    参数2:可选,当前元素的索引值
    参数3:可选,当前元素属于的数组对象
  • arrObj.some(function(item,i,arr){
    return 条件;
    });
    用于检测数组所有元素是否都符合指定条件(通过函数提供)
    如果所有元素都不满足条件,则返回 false
    如果数组中检测到有一个元素满足条件,则整个表达式返回 true,且剩余的元素不会再进行检测
    返回值:布尔值
  • arrObj.find(function(item,i){
    return 条件;
    });
    返回第一个满足条件的元素,如果无满足条件的元素,返回undefined
  • arrObj.findIndex(function(item,i){
    return 条件;
    });
    返回第一个满足条件元素的位置(索引),如果无满足条件的元素,返回-1
  • Array.isArray(参数) 判断参数是否是数组如果是数组,返回true,否则返回false
  • Array.from(参数1,参数2)
    通过拥有length属性的对象或可迭代的对象来返回一个数组
    参数1:必需 转换为数组的对象
    参数2:可选 数组中的每个元素调用的函数
    返回值:数组

正则对象

  • 创建正则对象
    构造函数
    var reg=new RegExp(“正则表达式”,“修饰符”)
    字面量
    var reg=/正则表达式/修饰符
  • 方括号
    [0-9] 匹配数字0-9里的任意一个数字
    [^0-9] 匹配除了0-9之外的其他的字符
    [abc] 匹配字符a或b或c
    [^abc] 匹配除字符a或b或c的其他字符
    (red|blue|green) 匹配red blue green 的任何模式
    [A-Z] 匹配A-Z的任何一个大写字母
    [a-z] 匹配a-z的任何一个小写字母
    [A-z] 匹配A-z的任何一个字符
  • 元字符
    \d 匹配数字0-9里的任何一个数字[0-9]
    \D 匹配除0-9之外的其他字符 非数字[^0-9]
    \w 匹配字符A-Z或a-z或0-9或_字符[A-Za-z0-9_]
    \W 匹配字符A-Z或a-z或0-9或_字符之外的其他字符[^A-Za-z0-9_]
    \s 匹配空白符
    \S 匹配除空白符之外的其他字符
    . 查找单个字符,除了换行和结束符
  • 量词
    {m} 匹配前一项m次
    {m , } 匹配前一项至少m次
    {m , n} 匹配前一项至少m次,至多n次
    ^a 匹配任何开头为a的字符串
    a$ 匹配任何结尾为a的字符串
    * 匹配前一项0次或多次{0,}
    + 匹配前一项至少1次{1,}
    ? 匹配前一项0次或1次{0,1}
  • 正则对象方法
    • regobj.test(参数)
      用于检测字符串是否匹配正则表达式
      参数:字符串
      返回值:布尔值
      如果字符匹配正则表达式返回true,否则返回false
    • regObj.exec(参数)
      用于检测字符串是否匹配正则表达式
      参数:字符串
      返回值:数组/null
      如果字符匹配正则表达式返回true,否则返回false
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    // 1 - 10;
    // for (var i = 1; i <= 10; i++) {
    //   console.log(i);
    // }

    // for (var i = 0; i < 10; i++) {
    //   console.log(i + 1);
    // }

    // var str = "abcdef";
    // for (var i = 0; i < str.length; i++) {
    //   console.log(str[i]);
    // }

    // var arr = [10, 7, 1, 2, 19];
    // for (var i = 0; i < arr.length; i++) {
    //   console.log(i);
    //   console.log(arr[i]);
    // }

    // var arr = [2, 7, 2, 2, 1];
    // for (var i in arr) {
    //   console.log(i);//属性名  字符串
    //   console.log(arr[i]);
    // }

    // for (var item of arr) {
    //   console.log(item);
    // }

    // arr.forEach(function (item, i, array) {
    //   console.log(item);
    //   console.log(i);
    //   console.log(array);
    // });

    // var arr2 = arr.map(function (item, i, array) {
    //   return 2 * item;
    // });

    // var arr2 = arr.filter(function (item, i, array) {
    //   if (item % 2 === 0) {
    //     return true;
    //   }
    // });

    // var arr2 = arr.filter(function (item, i, array) {
    //   return item % 2 === 0;
    // });

    // 去重方法1
    // arr.filter(function(item,i){
    //     if(arr.indexOf(item) === i){
    //         return true;
    //     }
    // })

    // var arr2 = arr.filter(function (item, i) {
    //   return arr.indexOf(item) === i;
    // });

    // 去重方法2
    // var s = new Set(arr); //集合
    // var arr2 = Array.from(s);

    // 去重方法3
    // var arr2 = [];
    // for (var i = 0; i < arr.length; i++) {
    //   if (arr2.indexOf(arr[i]) === -1) {
    //     arr2.push(arr[i]);
    //   }
    // }

    // 去重方法4
    // for (var i = 0; i < arr.length; i++) {
    //   for (var j = i + 1; j < arr.length; j++) {
    //     if (arr[i] === arr[j]) {
    //       arr.splice(j, 1);
    //       j--;
    //     }
    //   }
    // }
    // console.log(arr);

    // var arr = [2, 7, 2, 2, 1];
    // var res = arr.reduce(function (total, item, i) {
    //   //   console.log(total);
    //   return total + item;
    // }, 0);
    // console.log(res);

    // 数组删除
    // console.log(arr.pop());
    // console.log(arr.shift());

    // 数组添加
    // console.log(arr.push("hello")); //返回新数组的长度
    // console.log(arr.unshift("hello")); //返回新数组的长度

    // console.log(arr.splice(0, 2, "abc", 100, 8));

    // var arr2 = arr.sort(function (a, b) {
    //   return a - b;
    //   return b - a;
    // });

    // 冒泡排序  冒泡排序的原理
    // for (var i = 0; i < arr.length - 1; i++) {
    //   for (var j = 0; j < arr.length - 1 - i; j++) {
    //     if (arr[j] > arr[j + 1]) {
    //       var temp = arr[j];
    //       arr[j] = arr[j + 1];
    //       arr[j + 1] = temp;
    //     }
    //   }
    // }

    // 反转数组
    // arr.reverse();

    // var str = arr.join("-");
    // var str = arr.join("");

    // 字符串反转
    // var str = "hello world!";
    // 把字符串转换为数组
    // var arr = str.split("");
    // 把数组进行反转
    // arr.reverse();
    // 把数组转换为字符串
    // str = arr.join("");
    // console.log(str); //反转后的字符串

    // 字符方法
    // var str = "hello4 world,6hello 2China";
    // var str = "小明:100;校花:80;小草:97;张三:101";
    // console.log(str.indexOf("o", 6));

    // str = str.replace("hello", "你好");
    // str = str.replace(/hello/g, "你好");
    // str = str.replace(/\d/g, "数");
    // var arr = str.match("hello");
    // var arr = str.match(/\d{2,}/g);
    // var res = arr.reduce(function (total, item) {
    //   return item * 1 + total;
    // }, 0);
    // console.log(arr);
    // console.log(res);

    // var str = "小明:100;校花:80;小草:97;张三:101";
    // 截取
    // console.log(str.substring(3, 6));
    // console.log(str.substr(3, 3));
    // console.log(str.startsWith("小明"));
    // console.log(str.endsWith("小明"));
    // console.log(str.includes("小明"));

    // strObj.substring(开始截取位置, 结束截取的位置);
    // strObj.substr(开始截取位置, 截取长度);
    // strObj.slice(开始截取位置, 结束截取的位置);

    // var arr = new Array(12,89);
    // console.log(arr);
    // arr.push(11);

    // function box() {
    //   console.log(this); //window
    // }
    // window.box();

    // 构造函数;
    // function Animal(name) {
    //   this.name = name;
    //   //   console.log(this);
    //   this.speak = function () {
    //     console.log("给大爷拿食物来");
    //   };
    // }

    // var b = new Animal("狗蛋"); //实例化对象
    // console.log(b);
    // console.log(b.name);
    // b.speak();

    // 工具类   静态方法
    // Math.max(3,8,2);
    // 一个数组里的较大值
    // var arr = [0, 9, 10, 7, 2];
    // console.log(Math.max.apply(null, arr));

    // 取整
    // 1.向上取整
    // Math.ceil(9.801);
    // Math.ceil(-9.801);

    // 2.向下取整
    // Math.floor(9.801);
    // Math.floor(-9.801);

    // 3.四舍五入取整
    // Math.round(8.911);

    // 随机数
    // Math.floor(Math.random() * 10); // [0,10)

    // Math.round(Math.random() * 10 + 5); // [5,15]
    // Math.floor(Math.random() * 11 + 5); // [5,15]

    // Math.pow(2,8)  // 2 ** 3

    // var mydate = new Date();
    // var mydate2 = new Date("2022/6/1 00:00:00");
    // var mils = mydate2 - mydate;
    // console.log(mils);
    // var d = parseInt(mils / 1000 / 60 / 60 / 24);
    // console.log(d);
    // var h = parseInt((mils / 1000 / 60 / 60) % 24);
    // var m = parseInt((mils / 1000 / 60) % 60);
    // var s = parseInt((mils / 1000) % 60);
    // console.log(s);

    // console.log(mydate);
    // console.log(mydate.toLocaleString());
    // console.log(mydate.toLocaleDateString());
    // console.log(mydate.toLocaleTimeString());
    // console.log(mydate.getFullYear());
    // console.log(mydate.getMonth() + 1);
    // console.log(mydate.getDate());
    // console.log(mydate.getDay());
    // console.log(mydate.getHours());
    // console.log(mydate.getMinutes());
    // console.log(mydate.getSeconds());
    // console.log(mydate.getTime()); //时间戳
    // console.log(Date.now());

    // 自定义对象
    // var obj = new Object();
    // obj.name = "甜心教主";
    // obj.gender = "女性";
    // obj.sing = function () {
    //   console.log("爱你");
    // };

    // var obj = {};
    // var obj = {
    //   name: "twins",
    //   sing: function () {
    //     console.log("莫斯科没有眼泪");
    //   },
    // };
    // console.log(obj);
    // obj.name
    // for (var i in obj) {
    //   //   console.log(i);
    //   console.log(obj[i]);
    // }

    // delete obj.name;

    // console.log(obj);

    // 缺点:对象不能复用
  </script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值