获得徽章 0
- 正则的扩展改进:\
u修饰符,对占两个字符特殊字进行识别\
提供了y修饰符,作用是匹配过一次后继续往下匹配\
对于y修饰符,提供了stikcy属性,用来检测是否存在y修饰符\
flags属性,用于返回正则使用的修饰符名称\
.表示匹配所有,除了终止符,回车、换行等使用了s修饰符匹配\
数值的扩展改进:\
明确二进制、八进制和十进制分别用0b、0o、0x作为前缀\
Number.isFinitel()、Number.isNaN()判断无穷大和NaN\
Number.parseInt()、Number.parseFloat()转换整数和浮点数\
Number.isInteger()判断是否是整数\
一个常量值特别小,判断是否得到正确结果\
指数运算符**,并且可以赋值运算展开评论点赞 - 字符串:\
两个字符的异体字,这里用?代替,文档显示不出来,上土下口\
超过两个字的可以有String.fromCodePoint()方法,可以得到上土下口的异体字\
normalize()方法用于音标的符号组合进行统一\
判断字符串的方法:includes()、startsWith()、endsWith()\
repeat()重复字符串 padStart()补全字符串头部 padEnd()补全字符串尾部\
模板字符串:\
字符串夹杂变量通过 + 分离\
可以直接使用(`)和${}模板语法,直接变量解析 \
字符串也可以插入表达式,使用${a+b} \
嵌套模板语法 ${${}}\
可以使用String.raw得到原生字符串展开评论点赞 - 常用的解构方法:\
解构操作,变量互换\
[a,b] = [b,a]; 变量互换\
函数的返回值是数组,直接将函数进行赋值解构\
当函数进行参数传递时,可以用数组和对象字面量方式传参\
除对象和数组可以使用解构,字符串也可以\
函数的参数:\
给参数设置默认值\
参数1是必须传递\
其余参数有默认值,可选传递\
函数参数的默认值,可以是另一个函数的返回值\
p = pi()\
pi()返回值交给p\
如果只传递从第二个参数以后的参数值,第一个参数保持默认值,可以undefined占位\
null,空都不行\
支持第二个参数使用第一个参数做默认值,反之不行\
(y = x,x)报错\
解构变量有不定元素,函数的参数也有不定参数\
不定参数之后不能再有参数\
name属性用于获取函数名\
console.log((new Function()).name); 匿名函数 anonymous展开评论点赞 - 作用域\
全局作用域:\
浏览器环境中有一个顶层对象window,其属性和var全局变量一样\
如果是window对象的内置属性,输出默认值,否则是undefined\
var如果设置了window对象的内置属性作为变量,则会直接覆盖\
undefined,非内置\
var的全局变量即window的属性\
用var内置属性值被覆盖\
块级作用域:\
循环体内和条件体内就是块级作用域,块级作用域是{}\
如果不在块级作用域中使用let,会造成全局变量污染的问题\
{{{}}}块级作用域支持多层嵌套,每一层均为封闭的,只作用于当前作用域内\
ES6之前,采用自我立即执行匿名函数的方式来防止变量污染\
()自我执行\
ES6之前函数必须在顶层声明,违反并不报错,而ES6开始支持\
块级作用域内的函数声明,可以在全局访问\
使用函数表达式的方法去构建函数\展开评论点赞 - 数组和对象的解构\
数组结构:\
数组解构赋值两种写法:1.分行解构 2.单行解构\
单行解构,均可输出name值\
数组层次也需要匹配\
用,作为占位符不赋值\
在变量解构时,数组的元素可以设置一个默认值\
当sex没有赋值时,采用默认值\
还有...var语法,将没有赋值的内容都赋值给这个变量\
通过数组的方式输出\
对象解构:\
定义对象字面量,解构赋值\
解构对象至变量,直接输出变量\
对象变量解构可以设置一个默认值,没有默认值时输出默认值\
没有默认值时是undefined\
如果不想要对象属性名作为解构变量,可以通过键值对的方式更改变量名\
在对象里还嵌套了对象,解构时也是相同方法解构\
对象解构也支持单行简写展开评论点赞 - let:\
var 有变量提升超出块级作用域仍然有效\
let 没有变量提升超出块级作用域无效\
undefined 表示声明变量了没有赋值\
console.log(count); // 报错\
let count;\
let会在块级作用域内调用,如果在let声明前使用变量,此作用域变成暂时性死区\
typeof来判断未声明的变量,会输出undefined\
var 可以重复声明一个变量,后面声明的会替换掉前面的 let 不能重复声明一个变量\
两个let会报错,let和var各一个也会报错,更换顺序也报错\
let一个在作用域外面,一个在作用域里面,都可以调用不会报错\
在循环中var全局有效,let只在块级作用域内有效,再次使用会引起干扰,let不会\
函数:\
在循环内设置函数方法,在循环外输var得不到想要的值\
把var改成let,就会得到想要的值\
list[6](); 不管设置多少,结果都是10\
const:\
const是声明常量的,一旦声明不可以改变\
const和let一样有相同的属性\
const声明的同时必须赋值,否则会报错\展开赞过评论1 - computed:是计算属性,后面要写方function(){},()可以传值\
计算属性:\
形式:方法\
仅在创建vue对象或修改了关联属性时调用1次\
实际存储的是方法的返回值\
后续调用都是直接从内存中取值\展开评论点赞 - v-show:
隐藏display:none 显示:移除display:none
v-if:
隐藏 删除元素
v-model
不需要指定属性名称
双向绑定 vm<=>value
v-bind
必须指定绑定名称
单向绑定 vm=>属性
缩写 :
v-once执行一次性绑定
插值 {{}}
原样输出 不会解析HTML等代码
v-html
解析HTML等代码
属于指令性 写在标签里面
v-bind
鼠标放上可以显示绑定的内容展开赞过评论1 - function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms, 'done');
});
}
timeout(100).then((value) => {
console.log(value);
});
console.log(0);展开2点赞 - padStart(n,m)用于头部补全 n是字符串长度(包括原有字符串的长度) m是要补充的字符串
padEnd()用于尾部补全
at(n) n为负数时从右边开始
for...of最大的有点可以识别大于0xFFFF的码点
()有且只有1条=个参数的时候,可以省略
{}有且只有一条语句的时候,可以省略,单条语句的return必须省略includes() 是否包含
startsWith()以什么开头
endsWith()以什么结尾
repeat()重复 参数为负数报错展开评论点赞