【ES6】04-对象 + 类 + 模板字符串 + 解构 + 字符串

打印 上一主题 下一主题

主题 979|帖子 979|积分 2937

本文先容对象+类+解构赋值+字符串的操作和方法。
目次
1. 对象
1.1 创建对象
1.2 添加属性
1.3 删除
1.4 判定是否存在
1.5 属性名数量
1.6 for...in遍历
1.7 forEach遍历
1.8 清空对象
2. 类
2.1 创建对象和模板字符串
2.2 私有属性值
2.3 继承extends
3. 解构
3.1 数组解构
3.2 对象解构
4. 字符串
4.1 长度 & 转巨细写
4.2 索引字符 & 转数组 & 转int
4.3 替换 & 去除两侧 & 判定
4.4 返回位置 & 前缀后缀
4.5 分割 & 截取
4.6 重复 & 前后添加

   1. 对象

  1.1 创建对象

  1.         // 1.创建对象
  2.         let teacher = {
  3.             name : 'zzz',
  4.             gender : '男',
  5.             web : 'baidu.com'
  6.         }
  7.         console.log(teacher);  // Object
复制代码

1.2 添加属性

  1.         // 2.添加属性
  2.         teacher.height = 185;
  3.         console.log(teacher);
  4.         // 修改
  5.         teacher.name = 'aaa';
  6.         console.log(teacher);
复制代码

1.3 删除

  1.         // 3.delete删除
  2.         delete teacher.gender;
  3.         console.log(teacher);
复制代码

1.4 判定是否存在

  1.         // 4.判断是否存在
  2.         let has = 'gender' in teacher;  // 'XX' in Object 并将结果返回给一个变量
  3.         console.log(has);
  4.         let has1 = 'name' in teacher;
  5.         console.log(has1);
复制代码

1.5 属性名数量

  1.         // 5.获取对象属性名的数量
  2.         // 首先获取对象属性名的数组 Object.keys(对象名)
  3.         let arr = Object.keys(teacher);
  4.         console.log(arr);  // 返回的是数组
  5.         console.log(arr.length);  // 3
复制代码

1.6 for...in遍历

  1.         // 6.for...in遍历对象
  2.         // 对象不是可迭代的 所以不能用for...of
  3.         for(let key in teacher){
  4.             console.log(key,':',teacher[key]);  //可以用数组的方式获取属性值
  5.         }
复制代码

1.7 forEach遍历

  1.         // 7.forEach循环遍历
  2.         // Object.entries(对象名)用于获取对象的键值对数组
  3.         let arr1 = Object.entries(teacher);
  4.         console.log(arr1);  // 打印的是键值对的二维数组
  5.         // 利用解构的形式
  6.         // 是对arr1遍历 所以参数是数组形式
  7.         arr1.forEach(([key,value]) => {
  8.             console.log(key,value);
  9.         })
复制代码

1.8 清空对象

  1.         // 8.清空对象
  2.         teacher = {};  // 直接赋值一个空对象形式
  3.         console.log(teacher);
复制代码

   2. 类

  2.1 创建对象和模板字符串

  1.     <script>
  2.         class Person {
  3.             // 若在类中没有显式声明属性
  4.             // 但在构造函数或方法中引用了未声明的属性,会自动将其视为实例对象
  5.             name  // 声明姓名
  6.             web  // 声明网站
  7.             // 类中的构造函数 对属性进行初始化
  8.             constructor(name,web){
  9.                 this.name = name;
  10.                 this.web = web;
  11.                 // this 指向正在创建的这个实例对象,给这个对象赋值属性值
  12.             }
  13.             // 类中的方法,用于返回这些信息
  14.             info(){
  15.                 // return '姓名:' + this.name + '网站:' + this.web
  16.                 return `姓名:${this.name},网站:${this.web}`;  // 模板字符串
  17.             }
  18.         }
  19.         // 面向对象的编程中,实例 是 根据 类 创建的具体对象
  20.         // 使用new关键字可以创建一个具体对象
  21.         // 上面已经创建了一个person类 实例中传入 姓名和网站 参数
  22.         let person = new Person('zzz','baidu.com');
  23.         console.log(person);
  24.         console.log(person.web);
  25.         console.log(person.info());  // 调用刚刚创建的实例对象的方法
  26.     </script>
复制代码

2.2 私有属性值

仅在类的内部可以访问和操作的属性,外部无法直接访问和修改
  1.     <script>
  2.         class Person {
  3.             name  // 声明姓名
  4.             #web  // #私有属性网站
  5.             constructor(name,web){
  6.                 this.name = name;
  7.                 this.#web = web;  // 私有属性
  8.             }
  9.             // 存取器 getter 获取私有属性
  10.             // get 私有属性名(){}
  11.             get web(){
  12.                 return this.#web;
  13.             }
  14.             // 存取器 setter 设置私有属性
  15.             // set 私有属性名(新值){ this.#私有属性名 = 新值}
  16.             set web(value){
  17.                 this.#web = value;
  18.             }
  19.             // 类中的方法,用于返回这些信息
  20.             info(){
  21.                 // return '姓名:' + this.name + '网站:' + this.web
  22.                 return `姓名:${this.name},网站:${this.web}`;  // 模板字符串
  23.             }
  24.         }
  25.         let person = new Person('zzz','baidu.com');
  26.         console.log(person.web);  // 没有web() 时 undefined 外部无法获取
  27.         // 有get web()后 可以获取私有属性
  28.         // 修改私有属性
  29.         // 类中有了set方法后可以修改
  30.         person.web = 'www.baidu.com';  // 将这个新的值传回给value
  31.         console.log(person.web);
  32.     </script>
复制代码

2.3 继承extends

  1.     <script>
  2.         // 先创建一个人的类Person
  3.         class Person {
  4.             name
  5.             gender
  6.             constructor(name,gender) {
  7.                 this.name = name;
  8.                 this.gender = gender;
  9.             }
  10.             // 定义类中的休息方法
  11.             sleep(){
  12.                 return `${this.name}正在休息...`
  13.             }
  14.         }
  15.         // 继承 某个人继承人这个大类
  16.         // Zzz 子类 Person 父类
  17.         class Zzz extends Person {
  18.             // 自己的属性
  19.             web
  20.             constructor(name,gender,web){
  21.                 // super关键字调用父类的构造函数
  22.                 super(name,gender);  // 将父类中已经有的参数 传递给它
  23.                 // 自己初始化自己的属性
  24.                 this.web = web;
  25.             }
  26.             // 自己的方法
  27.             eat(){
  28.                 return `${this.name}在吃东西`;  // 继承的父类的属性name
  29.             }
  30.         }
  31.         let zzz = new Zzz('Zzz','男','baidu.com');
  32.         console.log(zzz.web);   // 子类的属性
  33.         console.log(zzz.eat());  // 子类的方法
  34.         console.log(zzz.gender);  // 父类的属性
  35.         console.log(zzz.sleep());  // 父类的方法
  36.     </script>
复制代码

   3. 解构

  解构 可以从数组或对象中提取值并赋给变量
3.1 数组解构

  1.         // 1.1数组解构
  2.         let [x, y] = [1, 2];
  3.         console.log("x:", x, "y:", y);
  4.         // 不写变量就不赋值 用逗号隔开
  5.         let [, , c] = [10, 20, 30];
  6.         console.log("c:", c);
  7.         // 1.2扩展运算符
  8.         let [A, ...B] = [1, 2, 3, 4, 5, 6];
  9.         console.log("A:", A, "B:", B);
  10.         let [x2, y2 = 200] = [100]; //默认值
  11.         console.log("x2:", x2, "y2:", y2);
  12.         // 1.3解构进行两数交换
  13.         let x3 = 10;
  14.         let y3 = 20; // 这里的分号必须加
  15.         //注意:!!不加分号会报错
  16.         [x3, y3] = [y3, x3];
  17.         console.log("x3:", x3, "y3:", y3);
复制代码

3.2 对象解构

  1.         // 2.1对象解构
  2.         let person = {
  3.             name: 'zzz',
  4.             gender: '男',
  5.             web: 'baidu.com'
  6.         }
  7.         // {}内部表示对象的解构
  8.         let { name } = person
  9.         console.log("name:", name)
  10.         // 2.2重命名
  11.         // 原名: 重命名
  12.         let { name: userName, gender, web } = person
  13.         console.log("userName:", userName, "gender:", gender, "web:", web)
  14.         // 2.3默认值
  15.         let { address = "安徽" } = person
  16.         console.log("address:", address)
复制代码

   4. 字符串

  4.1 长度 & 转巨细写

  1.         let web = "baidu.com";
  2.         // 字符串长度 将其返回给一个变量
  3.         let len = web.length;
  4.         console.log("字符串长度:", len);
  5.         // str.toLowerCase()转小写
  6.         let str1 = "DAVID".toLowerCase();
  7.         console.log("转小写:", str1);
  8.         // str.toUpperCase()转大写
  9.         let str2 = "luna".toUpperCase();
  10.         console.log("转大写:", str2);
复制代码

4.2 索引字符 & 转数组 & 转int

  1.         // 返回字符串在索引处的字符
  2.         // srt[num] 从0开始 并将其返回给一个新的字符串
  3.         let str3 = web[2];  
  4.         console.log("返回字符串在索引处的字符:", str3);
  5.         console.log(typeof str3)
  6.         // 字符串转为字符数组
  7.         // 利用拓展运算符...将字符串内容一个个存入数组
  8.         // [...str]转为数组 返回的是一个数组
  9.         let arr1 = [...web];
  10.         console.log("字符串转为字符数组:", arr1);
  11.         console.log(typeof arr1);  // Object 数组也是对象
  12.         // 字符串转 int
  13.         // parseInt(str)  字符串转int型
  14.         let number = parseInt("168");
  15.         console.log("字符串转int:", number);
  16.         console.log(typeof number);
复制代码

4.3 替换 & 去除两侧 & 判定

  1.         // 字符串替换
  2.         // str.replaceAll('原字符','新字符')
  3.         let str6 = web.replaceAll("ba", "c");
  4.         console.log("替换全部字符串:", str6);  // cidu.com
  5.         let str7 = web.replace("a", "y");
  6.         console.log("替换1个字符串:", str7); // byidu.com
  7.         // 去除字符串两侧指定的字符
  8.         // str.trim()去除字符串两侧的空白字符 如空格 制表符
  9.         let str8 = "    baidu.com   ".trim();
  10.         console.log("去除字符串两侧指定的字符:", str8);
  11.         // 判断是否包含某个字符串
  12.         // str.includes('指定字符串') 返回布尔值
  13.         let result = web.includes("baidu") // true
  14.         console.log("是否包含某个字符串:", result);
复制代码

4.4 返回位置 & 前缀后缀

  1.         // 返回字符串中第一次出现某个字符串的位置,若不存在则返回-1
  2.         // str.indexOf('指定字符串') 返回这个字符串的开头的索引
  3.         let result2 = web.indexOf("baidu");
  4.         console.log("返回字符串中第一次出现某个字符串的位置:", result2);
  5.         let result3 = "www.baidu.com".indexOf("baidu");
  6.         console.log("返回字符串中第一次出现某个字符串的位置:", result3);
  7.         // 判断一个字符串是否以指定的前缀开头
  8.         // str.startsWith('某字符串')  返回一个布尔值
  9.         let result4 = "www.baidu.com".startsWith("www");
  10.         console.log("判断一个字符串是否以指定的前缀开头:", result4);
  11.         // 判断一个字符串是否以指定的后缀结尾
  12.         // str.endsWith('某字符串')  返回一个布尔值
  13.         let result5 = "www.baidu.com".endsWith("net");
  14.         console.log("判断一个字符串是否以指定的后缀结尾:", result5);
复制代码

4.5 分割 & 截取

  1.         // 将字符串按照指定字符分割成数组
  2.         // str.split(',') 按照,分隔
  3.         // 如果字符串是以|分隔 则split('|')
  4.         let arr = "a|b|c|d".split("|")
  5.         // 分割后返回的是一个数组
  6.         console.log("将字符串按照指定字符分割成数组:", arr)
  7.         // 字符串截取 substr(开始位置,截取长度)
  8.         // str.substr(起始索引,终止索引)
  9.         // 返回的是 [0,7)
  10.         let subStr = web.substr(0, 7) // 注意不包含索引7
  11.         console.log("截取字符串的前7个字符:", subStr)
  12.         // str.substr(-X) 代表截取后面的X的字符
  13.         let subStr2 = web.substr(-3) //com
  14.         console.log("截取字符串的最后3个字符:", subStr2)
  15.         // str.substr(X) 代表截取从0开始的X个字符
  16.         let subStr3 = web.substr(4) //ruicode.com [字符串下标是从 0 开始]
  17.         console.log("从字符串的第5个位置开始截取直至字符串末尾:", subStr3)
复制代码

4.6 重复 & 前后添加

  1.         //重复字符串
  2.         // str.repeat(X) 代表将这个字符串重复X次 并返回给一个新的数组
  3.         let repeatstr = "David".repeat(3);
  4.         console.log("重复3次字符串", repeatstr);
  5.         // 在字符串前面添加指定数量的填充字符
  6.         // 直到,该字符串达到指定的长度
  7.         // str.padStart(指定长度,'前面指定添加的字符')
  8.         let padStart = "David".padStart(15, "-");
  9.         //由于 David 占 5 个字符, 因此只需要再添加 10 个横线, 即可达到总长度 15
  10.         let padStart1 = "David".padStart(10);
  11.         // 不写指定添加的字符时,默认空格
  12.         console.log("padStart:", padStart1);
  13.         // 在字符串后面添加指定数量的填充字符
  14.         // 直到该字符串达到指定的长度
  15.         // str.padEnd(指定长度,'指定添加的字符')
  16.         let padEnd = "David".padEnd(10, "-");
  17.         console.log("padEnd:", padEnd);
复制代码

本文先容对象+类+解构赋值+字符串的操作和方法。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表