我觉得多看几本进阶的书

与其十本书读一遍,不如一本书读十遍

读书的启示:

  • 读好书(看推荐)
  • 精读(重复看)
  • 能读厚书(javascript权威指南)

Object.keys

Object.keys=Object.keys||function(obj){
var a=[];
for(a[a.length] in obj);
return a;
}
-----理解
obj={a:1, b: 2};
let a=[];
for (i in obj) {
//a[a.length] a.length=0 添加a
a[0]=a;
a[1]=b;
}

合并多个对象

let o1 = {a: 1};
let o2 = {b: 2,c:2};
let o3 = {c: 3};
console.log(Object.assign(o1, o2, o3));
因为是浅拷贝 如果想深拷贝JSON.stringify let o1 = {a: 1};
let o2 = {b: 2,c:2};
extends1=(target,source)=>{
for (let obj in source){
target[obj]=source[obj]
}
return target
};
console.log(extends1(o1, o2));

类数组

Array.from([1,2,3,4],v=>v+v)
Array.from({length:4},(v,i)=>i)
Array.prototype.slice.call()//切割字节
//[].slice.call('123') //[1,2,3]

类型判断

typeof null //"object"
typeof document.all //"undefined"
instanceof 判断复杂类型
Object.prototype.toString
isNaN 的问题
* Number.isNaN来解决
* Object.is() 来解决

数组查找

indexOf   找到返回索引  没找到返回-1
[1,2,3,4].indexOf(1) find 找到返回目标值,没找到返回undefined
console.log([1, 2, 3, 4].find(v => v == 100)); findIndex 找到返回索引,没找到返回-1
console.log([1, 2, 3, 4].find(v => v == 100)); every 返回值Boolean,全部查找,找到返回true,没找到返回false(全部)
some 找到就返回Boolean(至少) filter 返回一个数组
includes 返回Boolean 找到返回true 没找到返回false
console.log([1, 2, 3, 4, 5, 5].includes(100)); startsWith() 返回Boolean, 匹配开头
endsWith() 返回Boolean,匹配结尾
repeat() 复制几份
trimStart() trimeEnd() trim() charAt(1) 返回字符串第1位的数字
substr() 参数: 开始的位置,个数
substring() 参数: 开始的位置,结束的位置

模块

Comjs
let a=require('./xxx')
模块特点:
* 扩展性
* 高可用
* 稳定性

p79页

.......................................................................................................................................................................................................#

javascript框架设计(读书笔记)的更多相关文章

  1. JS框架设计读书笔记之-核心模块

    随笔记录一下读书心得 1. 框架模块-核心模块 该模块是框架最先执行的部分,jQuery与vue中都有初始化的代码. 模块的功能主要是:对象扩展.数组化.类型判定.事件绑定和解绑.无冲突处理.模块加载 ...

  2. JS框架设计读书笔记之-动画

    基础概念 CSS样式可分为两种,一种值接近无限的集合(color,width),一种值只有几种(display),可以进行计算的样式,产生了动画效果.\ 1. 动画的第一步是获得元素的精确样式值. 2 ...

  3. JS框架设计读书笔记之-节点模块

    节点的创建 浏览器提供了多种手段创建API,从流行程度依次是document.createElement.innerHTML.insertAdjacentHTML.createContextualFr ...

  4. JS框架设计读书笔记之-异步

    setTimeout/setInterval 1. 如果回调执行时间大于间隔时间,真正的间隔时间会大一些. 2. 存在一个最小的时间间隔,即使seTimeout(fn,0),在IE6-IE8中大概为1 ...

  5. JS框架设计读书笔记之-选择器引擎02

    选择器引擎涉及相关概念 概念 以Sizzle的主函数声明为例,来说明引擎的相关概念. function Sizzle(selector, context, results, seed) { //... ...

  6. JS框架设计读书笔记之-选择器引擎01

    选择符 选择符是指CSS样式规则最左边的部分,例如 p{},#id{},.class{},p.class{} 等等 总共可以分为四大类: 并联选择器 => 逗号 => $('div,spa ...

  7. JS框架设计读书笔记之-小知识

    这一篇写一点小知识 JS中0.1+0.2为什么不等于0.3? 关于这个问题之前也很疑虑,老师也只是笼统的讲这是JS的语言问题,但是内部具体的情况却没有讲,看了书才发现原理如此简单. 简单来讲,计算机识 ...

  8. JS框架设计读书笔记之-函数

    这次写一些函数 1.模拟Object.keys方法 Object.keys = Object.keys || function(obj){ var a = []; // a[0],a[1]...分别赋 ...

  9. JS读书心得:《JavaScript框架设计》——第12章 异步处理

    一.何为异步   执行任务的过程可以被分为发起和执行两个部分. 同步执行模式:任务发起后必须等待直到任务执行完成并返回结果后,才会执行下一个任务. 异步执行模式:任务发起后不等待任务执行完成,而是马上 ...

随机推荐

  1. 企业安全之APT攻击防护

    现在针对企业APT[1]攻击越来越多了,企业安全也受到了严重的威胁,由于APT攻击比较隐匿的特性[2],攻击并不能被检测到,所以往往可以在企业内部网络潜伏很长时间. APT的攻击方式多种多样,导致企业 ...

  2. h5和native测试时的区别

    我们以往的APP是使用原生系统内核的,相当于直接在系统上操作,是我们传统意义上的软件,更加稳定 H5的APP先得调用系统的浏览器内核,相当于是在网页中进行操作,较原生APP稳定性稍差,似乎还没有百万级 ...

  3. error: undefined reference to `vtable for

    出现如下错误: 解决办法 当类中加入Q_OBJECT,需要手动删除中间文件,再构建

  4. YUM方式安装MYSQL5.7

    首先mysql官网下载yum源https://dev.mysql.com/downloads/repo/yum/ 然后将下载好的rpm文件安装并校验 [root@elegant-snap-3 /sta ...

  5. MySQL 错误代码:2003 idea错误:ERROR DruidDataSource:1846 - create connection error

    idea项目一启动就报错: 20:01:13,047 ERROR DruidDataSource:1846 - create connection error com.mysql.jdbc.excep ...

  6. mybatis-plus手记

    项目源码:https://gitee.com/baomidou/mybatis-plus     https://github.com/baomidou/mybatis-plus 文档:https:/ ...

  7. 十八、Python面向对象之魔术方法

    1.类的比较 class A(object): def __init__(self,value): self.value = value def __eq__(self,other): return ...

  8. python常用模块二正则表达式

    正则表达式 常用的正则元字符 # =================================匹配模式================================= #一对一的匹配 # 'h ...

  9. python基础语法17 面向对象4 多态,抽象类,鸭子类型,绑定方法classmethod与staticmethod,isinstance与issubclass,反射

    多态 1.什么是多态? 多态指的是同一种类型的事物,不同的形态. 2.多态的目的: “多态” 也称之为 “多态性”,目的是为了 在不知道对象具体类型的情况下,统一对象调用方法的规范(比如:名字). 多 ...

  10. springtask 基本使用和 cron 表达式

    springtask 的基本使用和 cron 表达式 spring 容器依赖 <dependency> <groupId>org.springframework</gro ...