ES6中字符串的扩展】的更多相关文章

一.查找字符串 在ES5中,可以使用 indexOf 方法和 lastIndexOf 方法查找字符串: let str = 'hello world'; alert(str.indexOf('o')); alert(str.lastIndexOf('o')); alert(str.lastIndexOf('z')); // -1 ES6中,又新增了3个方法用于特定字符的查找. 1.includes() 该方法传入一个字符串参数,然后返回一个布尔值,表示是否在指定字符串中找到了该字符串片段. le…
1. 字符的Unicode表示法 JavaScript允许采用 \uxxxx 形式表示一个字符,其中 xxxx 表示字符的 Unicode 码点. "\u0061" // 表示小写字母"a" 但是这种表示法只限于码点在 \u0000-\uFFFF 之间的字符,有些字符的 Unicode 编码超出了这个范围,那么就必须使用2个双字节的形式表示. "\uD842\uDFB7" // "…
ES6中字符串扩展 ① for...of 遍历字符串: 例如: for(let codePoint of 'string'){ console.log(codePoint) } 运行结果: ②  includes(),startsWith(),endsWith() 说明:三个方法都接收两个参数,第一个参数为检索的值,第二个参数为检索的起始位置,返回布尔值 例如: let s = 'Hello world!'; const [a, b, c] = [ s.startsWith('Hello', 2…
1.String.fromCodePoint(); String,fromCodePoint()方法可以认为是对String.fromCharCode()方法的扩展,这两个方法的共同点在于都是用于Unicode码点返回对应字符,但是差异在于String.fromCharCode()该方法不能识别大于0xFFFF的码点,ES6中提供了String.fromCodePoint()就很好的弥补了String.fromCharCode()的不足.它可以识别码点大于0xFFFF的对应字符. 上面是在chr…
ES6不仅为字符串.数值和数组带来了扩展,也为对象带来了很多新特性.这一节,我们来一起学习一下对象的扩展. 对象的传统表示法 我们回顾一下,对象的传统表示法: let person = { "name":"张三", "say":function(){ alert("你好吗?"); } } 上面的案例很简单,变量person就是一个对象,对象含有name属性和一个say方法.表示法是用键值对的形式来表示,这就是传统的表示法. E…
一.设置默认参数 ES6之前,给函数设置默认参数是这样做的: function fn(a) { if(typeof y === undefined){ a = a || 'hello'; } console.log(a); } fn('hi'); // 'hi' fn(false); // false 这里之所以要判断一下,是因为我们本意是函数没有传值时才给参数 a 设置为 'hello',但是如果调用函数时传入了布尔值 false,也会把参数 a 设置为 'hello'. 在 ES6 中允许为…
反撇号(键盘上Tab键上面那个)基础知识 ES6引入了一种新型的字符串字面量语法,我们称之为模板字符串(template strings).除了使用反撇号字符代替普通字符串的引号 ‘ 或 ” 外,它们看起来与普通字符串并无二致.在最简单的情况下,它们与普通字符串的表现一致.但是我们并没有说:“原来只是被反撇号括起来的普通字符串啊”.模板字符串名之有理,它为JavaScript提供了简单的字符串插值功能,从此以后,你可以通过一种更加美观.更加方便的方式向字符串中插值了. 字符串模板示例 下面给出一…
1.Object.is() es5比较两个值是否相等,只有两个运算符,相等(==) 和 严格相等(===),他们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0 等于 -0.es6提出了Object.is()方法,它用来比较两个值是否相等,与严格运算符(===)的行为基本一致 Object.is('foo', 'foo')  //false  Object.is({} , {}) //false 不同之处只有两个, Object.is(+0, -0) // true  Obje…
1.函数可以设置参数默认值 function test1(x,y=1){ console.log(x,y) } test1(10)//10 1 2.rest参数:形式为...变量名 function test2(a,...b){ for(let i of b){ a+=i } console.log(a) } // 说明传入的参数是一个一个的传入,而不是数组形式 test2(100,1,2,3) test2(100,[1,2,3,4])//1001,2,3,4 注意:如果有rest参数,那么它一…
在ES6中新增了扩展运算符可以对数组和对象进行操作.有时候会遇到数组和对象的拷贝,可能会用到扩展运算符.那么这个扩展运算符到底是深拷贝还是浅拷贝呢? 一..使用扩展运算符拷贝 首先是下面的代码. let a = [1,2,3]; let b = [...a];a == b // false 结果是false,这是很容易知道的,毕竟这个赋值操作符是由区别的.接下来将数组的只进行改变,又会怎样呢: let a = [1,2,3]; let b = [...a]; a[0] = 11; console…