淘先锋技术网

首页 1 2 3 4 5 6 7

前言,这篇笔记是作者的一个笔记而已,记录的不全,望包涵,持续更新。(阮老师的笔记)

## let && const

在函数作用域或全局作用域中通过关键字var声明的变量,无论实际上是在哪里声明的,都会被当成在当前作用域顶部声明的变量,这就是我们常说的提升(Hoisting)

//变量提升其实不是进入判断之后猜创建value,在es6中,let和const完美的解决了此问题。
function getValue(condition){
   if(condition){
       var value = 'blue';
       return value;
   } else {
       return null; 
   }
}
//实际被浏览器解析为:
function getValue(condition){
   var value;
   if(condition){
       var value = 'blue';
       return value;
   } else {
       return null;
   }
}

## String

字符串中的子串识别,自javaScript首次被使用以来,开发者们就使用indexOf() 方法来在一段字符串中检测另一段子字符串,在ES6中,提供了3个类似的方法可以达到相同效果。

  • includes()方法,如果在字符串中检测到指定文本则返回 true ,否则返回 false 。
  • startsWith()方法,如果在字符串的起始部分检测到指定文本则返回 true ,否则返回 false 。
  • endsWith()方法,如果在字符串的结束部分检测到指定文本则返回 true , 否则返回 false 。

示例:

let s = 'Hello world!';

s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true

**************************************

let s = 'Hello world!';

s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false

以上的3个方法都接收2个参数:第一个参数是指定要搜索的文本,第二个参数是可选的,指定一个开始搜索的位置的索引值。如果指定了第二个参数,则 includes() 方法和 startsWith() 方法会从这个索引值的位置开始匹配,endsWith() 方法则从这个索引值减去欲搜索文本长度的位置开始正向匹配。(优化了搜索的速度)