执行上下文:n+1:调用函数次数+全局
作用域:在函数一书写时就确定了,不能改变;作用域一共有多少:n+1;n为定义了多少函数,1为全局作用域
闭包产生个数:看外部函数调用几次
Es6中规范范围不包括dom事件:
Es6数据类型:
usonb:undefined string symbol object null number boolean
Symbol
symbol()是一个动态值不是一个固定属性,在对象中扩展方法时用:
let youxi={
name:"狼人杀",
[symbol('say')]:function(){
console.log("我可以发言")
},
}
每一个 Symbol() 返回的值都是唯一的。一个Symbol 值能作为对象属性的标识符,这是该数据类型仅有的目的。
Symbol.for(key);返回由给定的 key 找到的 symbol,否则就是返回新创建的 symbol。
Symbol(key);每个从 Symbol() 返回的 symbol 值都是唯一的。
区别:
用Symbol.for()方法创建的 symbol 会被放入一个全局 symbol 注册表中。Symbol.for() 并不是每次都会创建一个新的 symbol,它会首先检查给定的 key 是否已经在注册表中了。假如是,则会直接返回上次存储的那个。否则,它会再新建一个。
有关生成器迭代器内容可看这篇博客:(40条消息) ES6 —— 迭代器,生成器的基本使用_es6迭代器使用场景_最好的人啊的博客-CSDN博客
Symbol("yuan") === Symbol("yuan"); // false
不可以使用 new 操作符
var sym = new Symbol(); // TypeError报错
正则:语法:var 正则对象 = /(正则表达式){量词}/匹配模式;
正则表达式由两部分组成, 正则表达式的主体和正则表达式的修饰符
标准正则表达式的修饰符包含g和i两个 g(global的缩写)-代表全局匹配 i(ignore的缩写)-代表匹配时忽略大小写
量词
通过量词可以设置一个内容出现的次数
量词只对前一个内容起作用
{n}表示整好出现n次
{m,n}表示出现m到n次
{m,}表示出现m次以上
+表示至少一个,相当于{1,}。例如/a+/
*表示0个或多个,相当于{0,}。例如/a*/
?表示0个或1个,相当于{0,1}。例如/a?/
^表示开头(检测一个字符串是否以某个字符开头)。例如/^a/
$表示结尾(检测一个字符串是否以某个字符结尾)。例如/a$/
如果在正则表达式中同时使用^和$(例如/^a$/),则要求字符串完全符合正则表达式(必须为“a”,以a开头后立即以a结尾)
/^a|a$/表示以a开头或以a结尾
.表示任意字符。例如/./
转义字符
在正则表达式中使用\作为转义字符
注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串的转义字符,如果要使用\则需要用\\来代替
\.表示.
\\表示\
\w表示任意字母,数字,_
\W表示除了字母,数字,_
\d表示任意的数字
\D表示除了数字
\s表示空格
\S表示除了空格
\b表示单词边界
\B表示除了单词边界
/A/只能匹配到一个A