JS高级程序语言设计(第四版)学习笔记

  • 使用JS直接操作DOM时,浏览器会进行大量的重绘重排
  • JS模块化:拆开js,a.js,b.js React组件化:html,css,js和图片等其他东西都拆开
  • 命令式编码:把id取出来然后设置,声明式编码:可以归纳抽离的实现,开发者要做的事只是描述我要的是什么样子,具体怎么做不需要开发者管。
  • for of字符串的方法以及解构操作符都是通过字符串包装类型String原型链上的@@iterator方法获得的。
  • (正则表达式).exec(字符串)【返回数组,第一个是与整个模式匹配的字符串】 (正则表达式).test(字符串)【返回true或false】 (字符串).match(正则表达式)【返回数组,第一个是与整个模式匹配的字符串】 (字符串).search(正则表达式)【返回数字,表示返回模式第一个匹配的位置索引】
  • 对象属性的读取,可以使用中括号也可以使用点操作符。只能使用中括号的场景是通过变量访问属性或属性中有空格等会导致出现语法错误的字符。
  • Array 的from方法用于将类数组转化为数组,第一个参数是类数组,第二个参数是函数const a = Array.from([1,2,3],x=>x**2)。Array的of方法将一组参数转化为数组,传入的所有参数将作为数组中的参数传出。
  • 数组的length属性并不是只读的,可以通过修改length值删除或添加undefined值。可以用colors[colors.length]='red’来添加最末尾值。
  • 判断某一变量是否是数组,通常使用instanceof,但如果网页中有两个框架,就有两个全局执行上下文,因此有两个不同版本的Array。所以可以用Array.isArray()判断变量是否是数组。
  • 数组的方法如果是遍历数组元素的,如find,every,some,map.forEach, filter,都是传入三个参数,分别为数组元素、索引和数组本身。reduce与reduceRight接收4个参数,分别是上一个归并值pre、当前项cur、当前项索引值index和数组本身array。filter是用来筛选符合条件的元素的,reduce是用来相加的。
  • Map与Object的性能比较:1. 内存方面:Map更优;2. 插入时间方面:Map更优;3. 查找速度方面:Object更优;4. 删除速度方面:Map更优。
  • 对象的属性名定义时用中括号括起来,表示为可计算属性。对象的方法定义时有几种形式:方法名+‘:’+‘function’+‘(传参)’;方法名+‘(传参)’。同时,简写方法名与可计算属性兼容,let person={ [methodKey] (name) {console.log('test');} }
  • 对象的解构赋值。可以用解构语句在一个对象字面量的结构中,将对象的属性值赋值给变量。
let person={
	name:'Matt',
	age:'27'
};
let {name:personName,age:personAge}=person; //赋值personName==='Matt',personAge===;27'
let {name,age}=person; //当变量名与对象的属性名一致时,可以使用简写语法。赋值name==='Matt',age===;27'
let pName,pAge;
({name:pName,age:pAge}=person);//如果是给事先声明的变量赋值,那么赋值表达式必须包含在一对括号中

person.job={title:'Software engineer'};
let { job: { title } }=person;//声明title变量并将person.job.title赋值给它,这是嵌套赋值

function printPerson(foo,{name,age},bar){
	console.log(arguments);
	console.log(name,age);
}
function printPerson2 (foo,{name:pe
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值