JavaScript进阶

面向对象

  • 万物皆对象,在JavaScript中同样也有面向对象,思想类似。

类的定义和使用

  • 定义格式

    • class 类名{
      	constructor(变量列表){
      	变量赋值;
      	}
      	方法名(参数列表){
      	方法体;
      	return 返回值;
      	}
      }
      
  • 使用格式

    • let 对象名 = new 类名(实际变量值);
      对象名.方法名();
      
字面量类定义和使用
  • 定义格式

    • let 对象名={
      	变量名:变量值,
      	变量名:变量值,
      	...
      	
      	
      	方法名:function(参数列表){
      		方法体;
      		return 返回值;
      	},
      	...
      };
      
  • 使用格式

    • 对象名.变量名
      对象名.方法名();
      
继承
  • 继承就是让类与类产生父子类的关系,子类可以使用父类有权限的成员
  • 继承关键字:extends
  • 顶级父类:Object
内置对象
内置对象Number
  • 方法名说明
    parseFloat()将传入的字符串浮点数转换为浮点数
    parseInt()将传入的字符串整数转换为整数
    isNaN()判断传入的值是否是NaN
  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        
    </body>
    <script>
        //1.parseFloat() 将传入的字符串浮点数转为浮点数
        document.write(Number.parseFloat("3.14")+"<br>");
        
        //2.parseInt() 将传入的字符串整数转为整数
        document.write(Number.parseInt("3")+"<br>");
        document.write(Number.parseInt("312abc")+"<br>");//从数字开始转换,直到不是数字为止
    
        //3. isNan() 判断传入的值是否是NaN
        //document.write(NaN==NaN);//NaN六亲不认,自己都不认
        document.write(Number.isNaN(NaN));
    </script>
    </html>
    
内置对象Math
  • 方法名说明
    ceil(x)向上取整
    floor(x)向下取整
    round(x)把数四舍五入为最近的整数
    random()随机数,返回的是0.0-0.999999999999……之间的范围
    pow(x,y)幂运算x的y次方
  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        
    </body>
    <script>
        //向上取整3.4=4
        document.write(Math.ceil(3.4)+"<br>");
        
        //向下取整3.4=3
        document.write(Math.floor(3.4)+"<br>");
    
        //四舍五入3.4=3
        document.write(Math.round(3.4)+"<br>");
    
        //随机数,取0.0-1.0之间的范围(包头不包尾)
        document.write(Math.random()+"<br>");
    
        //计算2的3次方=8
        document.write(Math.pow(2,3)+"<br>");
    </script>
    </html>
    
内置对象Date
  • 构造方法说明
    Date()根据当前时间创建对象
    Date(value)根据指定毫秒值创建对象
    Date(year,month,[day,hours,minutes,seconds,milliseconds])根据指定字段创建对象(月份是0~11)
  • 成员方法说明
    getFullYear()获取年份
    getMonth()获取月份
    getDate()获取天数
    getHours()获取小时
    getMinutes()获取分钟
    getSeconds()获取秒数
    getTime()返回1970年1月1日至今的毫秒数
    toLocaleString()返回本地日期格式的字符串
  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        
    </body>
    <script>
        //构造方法
        //1.Date() 根据当前时间创建对象
        let d1 = new Date();
        document.write(d1+"<br>");
    
        //2.Date(value) 根据指定毫秒值创建对象
        let d2= new Date(10000);
        document.write(d2+"<br>");
    
        //3.Date(year,month,[day,hours,minutes,seconds,milliseconds])根据指定字段创建对象(月份是0~11)
        let d3 = new Date(2222,2,2,20,20,20);
        document.write(d3+"<br>");
    
        //成员方法
        //1.getFullYear()获取年份
        document.write(d3.getFullYear()+"<br>");
    
        //2.getMonth()获取月份
        document.write(d3.getMonth()+"<br>");
    
        //3.getDay()获取天
        document.write(d3.getDay()+"<br>");
    
        //4.toLocaleString()返回本地日期格式的字符串
        document.write(d3.toLocaleString()+"<br>");
    </script>
    </html>
    
内置对象String
  • 构造方法说明
    String(value)根据指定字符串创建对象
    let s = “字符串”直接赋值
  • 成员方法说明
    length属性获取字符串长度
    charAt(index)获取指定索引的字符
    indexOf(value)获取指定字符串出现的索引位置,找不到为-1
    substring(start,end)根据指定索引范围截取字符串(含头不含尾)
    split(value)根据指定规则切割字符串,返回数组
    replace(old,new)使用新字符串替换老字符串
  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        
    </body>
    <script>
        //1.构造方法创建字符串对象
        let s1 = new String("hello");
        document.write(s1+"<br>");
    
        //2.直接赋值
        let s2="hello";
        document.write(s2+"<br>");
    
        //属性
        //1.length 获取字符串的长度
        document.write(s2.length+"<br>");
    
        //成员方法
        //1.charAt(index) 获取指定索引处的字符
        document.write(s2.charAt(4)+"<br>");
    
        //2.indexOf(value) 获取指定字符串出现的索引位置
        document.write(s2.indexOf("o")+"<br>");
    
        //3.substring(start,end) 根据指定索引范围截取字符串(含头不含尾)
        document.write(s2.substring(2,4)+"<br>");
    
        //4.split(value) 根据指定规则切割字符串,返回数组
        let s3="王老五,28,女";
        let arr=s3.split(",");
        for(let i=0;i<arr.length;i++){
            document.write(arr[i]+"<br>");
        }
    
        //5.replace(old,new) 使用新字符串替换老字符串(骂人的脏话转为换“富强 文明 和谐 自由 平等 公正”)
        let s4="你妈还好吗";
        let s5=s4.replace("你妈","富强 文明 和谐 自由 平等 公正");
        document.write(s5);
    </script>
    </html>
    
内置对象RegExp
  • RegExp就是正则表达式,是一种对字符串进行匹配的规则

  • 构造方法说明
    RegExp(规则)根据指定规则创建对象
    let reg=/^规则$/直接赋值
  • 成员方法说明
    test(匹配的字符串)根据指定规则验证字符串是否符合
  • 规则

    • 表达式说明
      [a]只能是a
      [abc]只能是abc中的某一个
      [1]只能是1
      [123]只能是123中的某一个
      [a-z]可以是a-z中的某一个
      [A-Z]可以是A-Z中的某一个
      [0-9]可以是0-9中的某一个
      {5}只能出现5次
      {4,6}只能出现4~6次
  • 需求一:验证手机号

    • 第一位必须为1,第二位必须为3、5、7、8,第三位到是一位必须是数字,总长度为11位

          //手机号  规则:必须1开头 第二位必须是3578,剩余的必须是整数,总共11位数
          let s = /^[1][3578][0-9]{9}$/;
          document.write(s.test("13996950123")+"</br>");
      
  • 需求二:验证用户名

    • 字母、数字、下划线组成,总长度为6~16位

          //用户名
          //规则:字母、数字、下划线组成。总长度6~16
          let s1=/^[a-zA-Z_0-9]{6,16}$/;
          document.write(s1.test("woshinibaba")+"</br>");
      
内置对象Array
  • 很显然这是对数组进行操作的

  • 成员方法说明
    push(元素)添加元素到数组的末尾
    pop()删除数组末尾的元素
    shift()删除数组最前面的元素
    includes(元素)判断数组包含给定的值
    reverse()反转数组中的元素
    sort()对数组元素进行排序
  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        
    </body>
    <script>
        //定义一个数组
        let arr=[1,2,3,4,5,6,7,8,9];
        //1.push(元素) 添加元素到数组的末尾
        arr.push(10);
        document.write(arr+"<br>");
    
        //2.pop() 删除数组末尾的元素
        arr.pop();
        document.write(arr+"<br>");
    
        //3.shift() 删除数组最前面的元素
        arr.shift();
        document.write(arr+"<br>");
    
        //4.includes(元素) 判断数组中是否包含指定的元素
        document.write(arr.includes(3)+"<br>");
    
        //5.reverse() 反转数组
        arr.reverse();
        document.write(arr+"<br>");
    
        //6.sort() 对数组进行排序
        arr.sort();
        document.write(arr+"<br>");
    </script>
    </html>
    
内置对象set
  • JavaScript中的set集合,元素唯一,存取顺序一致。

  • 构造方法

    • 构造方法说明
      Set()创建Set集合对象
  • 成员方法

    • 构成员方法说明
      add(元素)向集合中添加元素
      size属性获取集合长度
      keys()获取迭代器对象
      delete(元素)删除指定元素
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
      </head>
      <body>
          
      </body>
      <script>
          //1.创建集合对象
          let s = new Set();
      
          //2.add 往集合中添加元素
          s.add("a");
          s.add("b");
          s.add("c");
          s.add("d");
          s.add("e");
      
          //3.size属性,获取集合长度
          document.write(s.size+"<br>");
      
          //4.keys() 获取迭代器
          let st = s.keys();
          for(let i=0;i<s.size;i++){
              document.write(st.next().value+"<br>");
          }
      
          //5.delete() 删除指定元素
          document.write(s.delete("b")+"<br>");
      </script>
      </html>
      
内置对象map
  • JavaScript中Map集合,key唯一,存取顺序一致

  • 构造方法

    • 构造方法说明
      Map()创建Map集合对象
  • 成员方法

    • 成员方法说明
      set(key,value)向集合中添加元素
      size属性获取集合长度
      get(key)根据key获取value
      entries()获取迭代器对象
      delete(key)根据key删除键值对
  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        
    </body>
    <script>
        //创建map集合对象
        let m = new Map();
    
        //set(key,value) 添加元素
        m.set("刘备","蜀");
        m.set("关羽","蜀");
        m.set("张飞","蜀");
        m.set("诸葛亮","蜀");
        m.set("曹操","魏");
        m.set("曹丕","魏");
        m.set("曹植","魏");
        m.set("司马懿","魏");
        m.set("孙权","吴");
        m.set("周瑜","吴");
        m.set("甘宁","吴");
        m.set("孙策","吴");
        m.set("周泰","吴");
        m.set("陆逊","吴");
    
        //size属性  获取集合长度
        document.write(m.size+"<br>");
    
        //get(key) 根据key获得value
        document.write(m.get("陆逊")+"<br>");
    
        //entries() 获取迭代器对象
        let et = m.entries();
        for(let i=0;i<m.size;i++){
            document.write(et.next().value+"<br>");
        }
    
        //delete(key) 根据key删除键值对
        document.write(m.delete("周泰")+"<br>");
    </script>
    </html>
    
内置对象JSON
  • JSON(JavaScript Object Notation):是一种轻量级的数据交换格式

  • 它是基于ECMAScript规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据

  • 简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于计算机解析和生成,并有效的提示网络传输效率

  • JSON常用方法

    • 成员方法说明
      stringify(对象)将指定对象转换为json格式字符串
      parse(字符串)将指定json格式字符串解析成对象
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
      </head>
      <body>
          
      </body>
      <script>
          //定义天气对象
          let weather = {
              city:"北京",
              date:"2020-07-04",
              wendu:"23°~40°",
              shidu:"22%"
          };
      
          //1.将天气对象转换为json格式的字符串
          let str =JSON.stringify(weather);
          document.write(str+"<br>");
      
          //2.将json格式字符串解析成js对象
          let weather2 = JSON.parse(str);
          document.write("城市"+weather2.city+"<br>");
          document.write("时间"+weather2.date+"<br>");
          document.write("温度"+weather2.wendu+"<br>");
          document.write("湿度"+weather2.shidu+"<br>");
      </script>
      </html>
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值