| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> ES6字符串新增方法、新增数据类型以及类 -> 正文阅读 |
|
[JavaScript知识库]ES6字符串新增方法、新增数据类型以及类 |
一、字符串新增方法1、.repeat() 重复 ?返回新字符串 案例: ????????let str="hello world" ? ? ? ? let result=str.repeat(3) ? ? ? ? console.log(result) //hello worldhello worldhello world 2、?includes() 是否包含指定内容 案例: ???????let str="hello world" ? ? ? ? let result=str.includes("x") ? ? ? ? console.log(result)? //F 3、indexOf() 返回指定元素的对应位置 ?没有返回-1 案例: ???????let str="hello world" ? ? ? ? let result=str.indexOf("x") ? ? ? ? console.log(result) //-1 4、startsWith() 是否以什么开头 案例: ????????let str="hello world" ? ? ? ? let result=str.startsWith("he") ? ? ? ? console.log(result)? //T 5、endsWith() ?是否以什么结尾 案例: ???????let imgUrl="1.jpg" ? ? ? ? let result=imgUrl.endsWith("png") ? ? ? ? console.log(result) //F 6、trim() 清除前后的空格 !!!!! 案例: ????????let str=" hello world " ? ? ? ? console.log(str=="hello world")? //false ? ? ? ? let result=str.trim() ? ? ? ? console.log(result=="hello world")//t 二、新增数据类型1、map类型,是对原有的对象类型的加强版,原本对象类型的key只能是字符串,map类型可以让任意类型的数据作为对象的key。 案例: ????????let bt1=document.getElementById("bt1") ? ? ? ? let m=new Map() //创建一个map对象 ? ? ? ? m.name="王一" ? ? ? ? //如果是特殊的变量,作为key值,需要使用set get方法 ? ? ? ? m.set(bt1,"5") ? ? ? ? console.log(m) ? ? ? ? console.log(m.get(bt1)) 2、symbol类型,独一无二的值,防止出现命名的冲突问题,主要用于作为对象的key值 案例:let s=Symbol("name") ? ? ? ? let obj={ ? ? ? ? ? ? age:21 ? ? ? ? } ? ? ? ? obj[s]="王一" ? ? ? ? obj.name="王二" ? ? ? ? obj.s="哈哈" ? ? ? ? console.log(obj) 备注:现在JavaScript有的数据类型:object、number、null、Boolean、string、undefined、map、symbol 三、类之前的js没有 类这个概念 所以创建对象时只能使用构造函数创建 案例:创建一个人类 name,age,height run方法,继承一个学生类 ?//通过class直接创建类 ? ? ? ? class People{? ? ? ? ? ? ? constructor(name,age,height){? ? ? ? ?//构造函数 ? ? ? ? ? ? ? ? this.name=name ? ? ? ? ? ? ? ? this.age=age ? ? ? ? ? ? ? ? this.height=height ? ? ? ? ? ? } ? ? ? ? ? ? run(){? ? ? ? ? ? ?//原型方法 ? ? ? ? ? ? ? ? console.log("正在跑") ? ? ? ? ? ? } ? ? ? ? } //继承一个学生类 class Student extends People{? ? ?//extends? 继承 ? ? ? ? ? ? constructor(name,age,height,score){ ? ? ? ? ? ? ? ? //super()方法? 调用父级的构造函数 ? ? ? ? ? ? ? ? super(name,age,height) ? ? ? ? ? ? ? ? //super必须写在 自己属性的上方 ? ? ? ? ? ? ? ? this.score=score ? ? ? ? ? ? } ? ? ? ? ? ? showInfo(){? ? ? ? ? ?//自己的方法 ? ? ? ? ? ? ? ? console.log(this.name) ? ? ? ? ? ? } ? ? ? ? ? ? run(){? ? ? ? ? ? ? ? ?//替换父类的方法 ? ? ? ? ? ? ? ? console.log(this.name+"正在跑") ? ? ? ? ? ? } ? ? ? ? } 构造函数与class类的区别1、严格模式 类和模块的内部,默认就是严格模式,所以不需要使用use strict指定运行模式。 只要你的代码写在类或模块之中,就只有严格模式可用。考虑到未来所有的代码,其实都是运行在模块之中,所以 ES6 实际上把整个语言升级到了严格模式 2、不存在提升,类不存在变量提升(hoist),这一点与 ES5 完全不同。 3、方法默认是不可枚举的 ES6 中的 class,它的方法(包括静态方法和实例方法)默认是不可枚举的,而构造函数默认是可枚举的。细想一下,这其实是个优化,让你在遍历时候,不需要再判断 hasOwnProperty 了 4、class 的所有方法(包括静态方法和实例方法)都没有原型对象 prototype,所以也没有[[construct]],不能使用 new 来调用。 5、class 必须使用 new 调用,否则会报错。这是它跟普通构造函数的一个主要区别,后者不用 new 也可以执行。 6、ES5 和 ES6 子类 this 生成顺序不同 ES5 的继承先生成了子类实例,再调用父类的构造函数修饰子类实例。 ES6 的继承先生成父类实例,再调用子类的构造函数修饰父类实例。这个差别使得 ES6 可以继承内置对象。 7、ES6可以继承静态方法,而构造函数不能。 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:38:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |