Processing math: 0%

12 2020 档案

摘要:class的值可以有多个。 多个事物是同时存在还是此消彼长?可以将多个事物放到一个容器中,可以选对象或者数组。 假设class有a和b两个值可以选择,如果只要a不要b,怎么办? 在计算机世界中,可以给a一个标志,就像是给a贴上一个贴纸,有黑白两种颜色。黑色代表a被抛弃,白色代表a被选中。 这里的黑白 阅读全文
posted @ 2020-12-31 13:47 呈心者 阅读(65) 评论(0) 推荐(0) 编辑
摘要:穷尽毕生所学,只为了彰显自己生命的伟大。 阅读全文
posted @ 2020-12-30 20:41 呈心者 阅读(78) 评论(0) 推荐(0) 编辑
摘要:按部就班 从头到尾,按照顺序来过一遍官方文档。 在过文档过程中,会不断的接触到新的概念,当然这些概念是无法完全弄懂的(短时间),但是如果采用每一个“概念”都完全弄懂的办法会耗费巨大的时间和精力。 可按照我的性子,这些概念我都是要弄懂的,要自己满意为止。 回到最初的目的,学vue学到什么程度? 对各种 阅读全文
posted @ 2020-12-30 11:48 呈心者 阅读(431) 评论(0) 推荐(0) 编辑
摘要:一个函数,可以置身于computed之中,也能置身于methods之中。 在computed之中时,函数作为某属性的值,成为了该属性的getter函数。 响应式依赖 这名字听起来是真的高大上,但本质是很简单的。 现在有一锅油,一个土豆,一个鸡腿。把土豆放进去炸,最后得到炸薯条,把鸡腿放进去炸,最后得 阅读全文
posted @ 2020-12-30 10:00 呈心者 阅读(98) 评论(0) 推荐(0) 编辑
摘要:对象由属性组成 属性 一个属性的结构如下: 属性名+属性值 也有其他描述: 键+值 key+value 上述种种称呼体现了名称的多样性,西红柿和番茄指的不是一个东西吗?喜欢叫tomato也行,其本质丝毫未变。 属性名 属于字符串或symbol 属性值 属性值有多种类型,如数字类型,字符类型,布尔类型 阅读全文
posted @ 2020-12-30 09:08 呈心者 阅读(235) 评论(0) 推荐(0) 编辑
摘要:reverseMessage是计算属性。 reverseMessage: function() { ... } 首先它是一个属性,其次它在computed之中,最后它成为了计算属性。 vm.reverseMessage的getter函数。 阅读全文
posted @ 2020-12-30 09:04 呈心者 阅读(144) 评论(0) 推荐(0) 编辑
摘要:模板: 小明今天生病了,想向老师请一天假,老师欣然同意了。但老师需要小明交一张请假条,但小明不会写。 为什么不会呢?因为请假条是有固定格式的,需要“标准”,于是小明问老师: 老师,你有请假条的模板吗?让我看看。 老师拿了一张小红写的请假条给小明看,对小明说:按照这个模板写。 所以,现在想要创造一个物 阅读全文
posted @ 2020-12-25 19:01 呈心者 阅读(173) 评论(0) 推荐(0) 编辑
摘要:指令本质是属性 作用过程:当表达式的值有所改变,使DOM也发生相应的改变 directives attribute 参数: 位置是指令在指令后 形式是 :args 动态参数: 注意,参数表达式的写法存在一些约束,如之后的“对动态参数表达式的约束”章节所述。 <a v-bind:[attributeN 阅读全文
posted @ 2020-12-25 11:49 呈心者 阅读(324) 评论(0) 推荐(0) 编辑
摘要:{{num}}和{{num+1}} {{ok?'yes' : 'no'}} {{message.split(' ').reverse().join(' ')}} <div v-bind:id=" 'list-' +id"></div> 以上式子都可以,以下式子都不可以。 <!-- 这是语句,不是表达 阅读全文
posted @ 2020-12-25 11:20 呈心者 阅读(67) 评论(0) 推荐(0) 编辑
摘要:文字——{{msg}} 这么个长得像大胡子的东西会变身哦,它变成另一个东西。 至于能变成什么样,取决于我们在另一个地方给msg的定义。 {{}}就像是一面镜子,站在镜子前的人是谁,镜子中的画面就是谁,二者息息相关。 本来无一物,何处惹尘埃 镜子里本身什么也没得,现在彭于晏站到镜子前,镜子里就出现了彭 阅读全文
posted @ 2020-12-24 19:24 呈心者 阅读(119) 评论(0) 推荐(0) 编辑
摘要:如果它是节点,也是一个儿子节点,有老爸的那种,那么就拥有一些和老爸相关的能力,比如说逃跑哈哈。 remove() a.remove(),删除a before() a.before(b),在a前面插入一或多个同级节点(可以是元素节点也可以是文本节点) after() a.after(b),在a后面插入 阅读全文
posted @ 2020-12-24 12:20 呈心者 阅读(138) 评论(0) 推荐(0) 编辑
摘要:如果它是一个节点,也是一个父节点,它就拥有一些和儿子相关的能力,比如说打儿子哈哈。 children a.children返回一个HTMLCollection实例,即子元素节点集合。 firstElementChild 第一个子元素节点 没有就返回null lastElementChild 最后一个 阅读全文
posted @ 2020-12-24 12:13 呈心者 阅读(519) 评论(0) 推荐(0) 编辑
摘要:元素节点对象的集合,它是一个对象,可简称为元素节点集合。 不能使用forEach,只能用for来遍历。 document.links、document.forms、document.images等属性会返回一个元素节点的集合。 元素节点集合是动态的。 元素节点上可能会有id或name属性,元素节点集 阅读全文
posted @ 2020-12-24 11:50 呈心者 阅读(918) 评论(0) 推荐(0) 编辑
摘要:节点对象的集合 Node.childNodes document.querySelectorAll() 使用以上两种方法可以得到NodeList对象 中文简称为节点集合,英文简称为nodelist,是一个对象。 节点集合的length表示节点对象的数量。 节点集合可以变成数组,方法是:Array.p 阅读全文
posted @ 2020-12-24 11:30 呈心者 阅读(736) 评论(0) 推荐(0) 编辑
摘要:1 function DOMComb(parent, callback) { 2 if (parent.hasChildNodes()) { 3 for (var node = parent.firstChild; node; node = node.nextSibling) { 4 DOMComb 阅读全文
posted @ 2020-12-23 17:24 呈心者 阅读(152) 评论(0) 推荐(0) 编辑
摘要:appendChild(obj):使某节点成为另一个节点的最后一个子节点 参数是节点对象。 如果给的是已经在DOM中存在的节点,此方法会将它从原来的位置移动到新位置。 如果给的是DocumentFragment节点,此方法会将它的所有子节点都插入,返回空的Document节点。 hasChildNo 阅读全文
posted @ 2020-12-23 17:18 呈心者 阅读(217) 评论(0) 推荐(0) 编辑
摘要:nodeValue:文本值 text;comment;attr 只有这三种节点有文本值哦,其他节点使用此方法全都返回null。 textContent:当前节点及其后代的文本内容 得到除标签外的文本内容 设置它的值时,如果给了含有标签的内容,没关系,标签同样会被转化为文本。 text;comment 阅读全文
posted @ 2020-12-23 15:10 呈心者 阅读(271) 评论(0) 推荐(0) 编辑
摘要:一段代码:<div id="elem">hello <b>world</b></div> 使用场景:作用于(读取或者替换)一段HTML代码。 div.outerHTML='<p>a new element</p>'; div.innerHTML='<p>a new element</p>'; inn 阅读全文
posted @ 2020-12-22 15:27 呈心者 阅读(732) 评论(1) 推荐(1) 编辑
摘要:使用场景: 手头有个节点,但不知道名字。 不同的节点肯定有不同的名字,元素节点的名字是标签名,就像BODY,用tagName。 其它节点就用nodeName就好了。 阅读全文
posted @ 2020-12-22 14:21 呈心者 阅读(173) 评论(0) 推荐(0) 编辑
摘要:节点官方描述 阅读全文
posted @ 2020-12-22 14:13 呈心者 阅读(138) 评论(0) 推荐(0) 编辑
摘要:document 9 element 1 attr 2 text 3 DocumentType 11 Comment 8 使用场景: 现在手上有一个节点,但真心不知道是什么类型的,用nodeType,得到一个有特定含义的数字,就ok啦。. 阅读全文
posted @ 2020-12-22 14:02 呈心者 阅读(167) 评论(0) 推荐(0) 编辑
摘要:Interface description language 1 // 定义 HTMLInputElement 2 // 冒号 ":" 表示 HTMLInputElement 继承自 HTMLElement 3 interface HTMLInputElement: HTMLElement { 4 阅读全文
posted @ 2020-12-22 13:55 呈心者 阅读(935) 评论(0) 推荐(0) 编辑
摘要:是一个抽象类,从不创建Node类的对象。 阅读全文
posted @ 2020-12-22 13:52 呈心者 阅读(68) 评论(0) 推荐(0) 编辑
摘要:是一个接口 an Eventtarget object represents a target to which an event can be dispatched when something has occurred each EventTarget object has an associa 阅读全文
posted @ 2020-12-22 13:41 呈心者 阅读(95) 评论(0) 推荐(0) 编辑
摘要:什么是节点? 我现在的理解是:有很多事物,ABCD等等,它们有相同点,也有不同点。现在从某个角度看它们,它们居然表现的完全一致,此时它们就像是一样的东西。但别忘了,只有特定的时间,特定的角度,才会出现这样的情况。 这种特定时间,特定空间,特定角度下,不同事物趋向于同一事物的现象,是一种规律。 此时的 阅读全文
posted @ 2020-12-22 12:07 呈心者 阅读(140) 评论(0) 推荐(0) 编辑
摘要:存在于HTML中的内容,在DOM中会有相应的对应。 阅读全文
posted @ 2020-12-20 21:46 呈心者 阅读(438) 评论(0) 推荐(0) 编辑
摘要:文档中的注释,在DOM中也有对应的节点——comment node 阅读全文
posted @ 2020-12-20 21:45 呈心者 阅读(147) 评论(0) 推荐(0) 编辑
摘要:换行符:↵(在 JavaScript 中为 \n) 空格:␣ <head> 之前的空格和换行符均被忽略。 如果在 </body> 之后放置一些东西,那么它会被自动移动到 body 内,并处于 body 中的最下方,因为 HTML 规范要求所有内容必须位于 <body> 内。所以 </body> 之后 阅读全文
posted @ 2020-12-20 21:42 呈心者 阅读(463) 评论(0) 推荐(0) 编辑
摘要:一个文本节点只包含一个字符串 阅读全文
posted @ 2020-12-20 21:34 呈心者 阅读(99) 评论(0) 推荐(0) 编辑
摘要:根节点:<html> 阅读全文
posted @ 2020-12-20 21:32 呈心者 阅读(40) 评论(0) 推荐(0) 编辑
摘要:Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统简洁的模板语法是什么? 声明式是什么? 数据是什么? 渲染是什么? DOM是什么? 数据和DOM建立了关联,所有东西都是响应式的。 我们不再和HTML直接交互,一个 Vue 应用会将其挂载到一个 DOM 元素上 ( 阅读全文
posted @ 2020-12-20 09:38 呈心者 阅读(202) 评论(0) 推荐(0) 编辑
摘要:Vue.set(vm.items,indexOfitem,newValue) vm.$set(vm.items,indexOfitem,newValue) 哪一个数组,哪一项,改成什么样 阅读全文
posted @ 2020-12-19 22:12 呈心者 阅读(94) 评论(0) 推荐(0) 编辑
摘要:构造函数有一个常规的属性:prototype 此属性是它自带的,即便我们不去设置,它也存在。 F.prototype这句话的作用是什么? 这个属性的本质到底是什么?是对象。 默认的prototype是一个只有属性constructor的对象 既然是对象那调用自己的属性就很简单了吧? 总而言之,构造函 阅读全文
posted @ 2020-12-19 20:00 呈心者 阅读(281) 评论(0) 推荐(0) 编辑
摘要:这个对象的[[prototype]]是null。 这个对象是没有原型的,不能使用__proto__属性,它没有任何内建对象的方法。 阅读全文
posted @ 2020-12-19 16:57 呈心者 阅读(65) 评论(0) 推荐(0) 编辑
摘要:Object.prototype 的访问器属性 访问器属性有什么特点? 有getter和setter函数,当使用obj.__proto__时,有两种选择:读取或赋值,对应的正好是getter/setter。 阅读全文
posted @ 2020-12-19 16:51 呈心者 阅读(102) 评论(0) 推荐(0) 编辑
摘要:Object: 是一个构造函数,有prototype属性,此属性的值为一个巨大的对象。 阅读全文
posted @ 2020-12-19 16:47 呈心者 阅读(283) 评论(0) 推荐(0) 编辑
摘要:设置某个对象的原型 阅读全文
posted @ 2020-12-19 16:27 呈心者 阅读(122) 评论(0) 推荐(0) 编辑
摘要:得到某个对象的原型 阅读全文
posted @ 2020-12-19 16:17 呈心者 阅读(84) 评论(0) 推荐(0) 编辑
摘要:proto: 从即将被创建出来的对象的角度来看,叫proto是合理的,因为我需要一个原型。 从原型本身来看,并不合理,因为我就是一个对象并不会因为我有另一个身份而改变自己的本质。所以叫obj是合理的。 [descriptors]: 属性描述器 对象总是具有属性的,而属性都是具有属性特性的。用于存放属 阅读全文
posted @ 2020-12-19 16:13 呈心者 阅读(90) 评论(0) 推荐(0) 编辑
摘要:是一个属性 是默认的prototype对象的属性 值为构造函数 构造函数的实例对象,有一个隐藏的[[prototype]]属性,此属性从何而来? 在对象被创建出来的过程中,构造函数prototype常规属性指向一个对象,那个对象同样是实例对象[[prototype]]属性的值。 实例对象可以使用co 阅读全文
posted @ 2020-12-19 15:14 呈心者 阅读(514) 评论(0) 推荐(0) 编辑
摘要:有个构造函数名为F F有一个属性名为prototype 是属性就有值,prototype的值默认是一个只有属性constructor的对象或是其他对象 构造函数的作用是什么? 是为了创建对象,那么很自然的事儿,F中的绝大部分内容都是为了对象而生,prototype自然也不例外。 prototype主 阅读全文
posted @ 2020-12-19 15:09 呈心者 阅读(316) 评论(0) 推荐(0) 编辑
摘要:是对象的一个隐藏属性 只有两种值:null,其他对象的引用 被引用的对象被称为原型 如果想要搞这个隐藏的属性怎么办? 搞__proto__就行。 阅读全文
posted @ 2020-12-19 14:49 呈心者 阅读(83) 评论(0) 推荐(0) 编辑
摘要:__prototype是[[prototype]]的getter/setter Object.getPrototypeOf/Object.setPrototypeOf 来取代 __proto__ 去 get/set 原型 __proto__属性收到浏览器环境和服务端环境的支持 阅读全文
posted @ 2020-12-19 14:26 呈心者 阅读(87) 评论(0) 推荐(0) 编辑
摘要:召唤器:_proto_ 就像镇魂街曹焱兵召唤许守护灵一样,有召唤失败的时候,也有可能把许褚召唤出来了。 阅读全文
posted @ 2020-12-19 12:21 呈心者 阅读(78) 评论(0) 推荐(0) 编辑
摘要:原型一点儿也不复杂:它是一个对象。 原型在哪? 从代码的角度来看,可以理解为它位于对象之中,没错,一个对象在另一个对象中。 一个对象为什么要在另一个对象中?想象一下,拍照的时候,为什么要把手机放在手中? 物尽其用。 那么原型的作用到底是什么? 现在有两个对象,一个是原型,而另一个,为了方便描述,可以 阅读全文
posted @ 2020-12-19 11:52 呈心者 阅读(381) 评论(0) 推荐(0) 编辑
摘要:一个原本是数据属性的属性,代码里还保存着许多与它相关的代码片段。 现在除了一些变故,我们要改变它。 现在把它变成访问器属性。 假设对象为user,此数据属性为age:写下user.age是为了得到什么?当然是得到具体的年龄。 可这句话执行时,get函数会站出来说,使用user.age实际上就是在调用 阅读全文
posted @ 2020-12-19 11:16 呈心者 阅读(194) 评论(0) 推荐(0) 编辑
摘要:1 let user = { 2 get name() { 3 return this._name; 4 }, 5 6 set name(value) { 7 if (value.length < 4) { 8 alert("Name is too short, need at least 4 ch 阅读全文
posted @ 2020-12-19 10:54 呈心者 阅读(69) 评论(0) 推荐(0) 编辑
摘要:get 无参函数,在属性被读取时工作 set 有一个参数的函数,在属性被设置时工作 enumerable 可否列举 configurable 可否配置 1 let user = { 2 name: "John", 3 surname: "Smith" 4 }; 5 6 Object.definePr 阅读全文
posted @ 2020-12-18 23:28 呈心者 阅读(71) 评论(0) 推荐(0) 编辑
摘要:获取值的函数 1 let user = { 2 name: "John", 3 surname: "Smith", 4 5 get fullName() { 6 return `{this.name} {this.surname}`; 7 } 8 }; 9 10 alert(user.fullN 阅读全文
posted @ 2020-12-18 23:01 呈心者 阅读(95) 评论(0) 推荐(0) 编辑
摘要:形式上是属性 本质上是函数 阅读全文
posted @ 2020-12-18 22:43 呈心者 阅读(135) 评论(0) 推荐(0) 编辑
摘要:此方法中文名:获取所有属性的属性特性,返回多个属性描述符对象 一个对象可以有一个或多个属性。 如果想要获取某一个属性的特性,用: Object.getOwnPropertyDescriptor(obj,prop) 如果想要获取多个属性的特性,用: Object.getOwnPropertyDescr 阅读全文
posted @ 2020-12-18 21:12 呈心者 阅读(395) 评论(0) 推荐(0) 编辑
摘要:方法中文名:设置多个属性特性,改变原对象。 如果属性已经存在,则改变其属性特性; 如果属性不存在,则根据提供的值创建该属性。 1 Object.defineProperties(obj, { 2 prop1: descriptor1, 3 prop2: descriptor2 4 // ... 5 阅读全文
posted @ 2020-12-18 18:31 呈心者 阅读(508) 评论(0) 推荐(0) 编辑
摘要:属性特性: value 属性值 writable 可修改值与否 enumerable 可列举与否 configurable 可删除与否 propertyName:属性名称,可以自定义,比如常见的name,age 属性描述对象:包含四大特性的对象 得到某属性的特性: Object.getOwnProp 阅读全文
posted @ 2020-12-18 18:22 呈心者 阅读(128) 评论(0) 推荐(0) 编辑
摘要:没有this 没有arguments 不能使用new调用 没有super js的精髓在于创建一个函数并将其传递到某个地方, 这样的函数,需要在适合它的上下文中发挥作用,这就是箭头函数的用武之地了。 阅读全文
posted @ 2020-12-18 14:32 呈心者 阅读(66) 评论(0) 推荐(0) 编辑
摘要:1 function slow(x) { 2 // 这里可能会有重负载的 CPU 密集型工作 3 alert(`Called with ${x}`); 4 return x; 5 } 6 7 function cachingDecorator(func) { 8 let cache = new Ma 阅读全文
posted @ 2020-12-17 19:05 呈心者 阅读(52) 评论(0) 推荐(0) 编辑
摘要:1 let i = 1; 2 setTimeout(function run() { 3 func(i++); 4 setTimeout(run, 100); 5 }, 100); 等待前一次调用完成后再调用。 阅读全文
posted @ 2020-12-17 18:28 呈心者 阅读(1497) 评论(0) 推荐(0) 编辑
摘要:let timerId = setTimeout(func|code, [delay], [arg1], [arg2], ...) 形参: 函数或代码字符串 延迟时间(默认为零) 即将执行函数需要的参数 如果传入字符串,js会自动创建一个函数。 setTimeout调用时会返回一个定时器标识符,可以 阅读全文
posted @ 2020-12-17 17:43 呈心者 阅读(110) 评论(0) 推荐(0) 编辑
摘要:1 let str = ... 动态地接收来自服务器的代码 ... 2 3 let func = new Function(str); 4 func(); 能够接收字符串,再把字符串转换为函数体代码。 阅读全文
posted @ 2020-12-17 17:24 呈心者 阅读(170) 评论(0) 推荐(0) 编辑
摘要:内部函数可以访问外部函数中的属性和方法,即使外部函数已经死亡。 所有函数都会通过隐藏的[[Environment]] 属性记住它们被创建时所在的位置。 阅读全文
posted @ 2020-12-17 14:43 呈心者 阅读(78) 评论(0) 推荐(0) 编辑
摘要:形参的个数,Rest参数不算。 1 function ask(question, ...handlers) { 2 let isYes = confirm(question); 3 4 for(let handler of handlers) { 5 if (handler.length == 0) 阅读全文
posted @ 2020-12-17 14:36 呈心者 阅读(185) 评论(0) 推荐(0) 编辑
摘要:Named Function Expression 1 let sayHi=function fname(who) { 2 alert(`hello, ${who}`); 3 }; 1 let sayHi = function fname(who) { 2 if (who) { 3 alert(`H 阅读全文
posted @ 2020-12-17 13:42 呈心者 阅读(491) 评论(0) 推荐(0) 编辑
摘要:全局对象包含的变量和方法,可以在任何地方被使用 globalThis Modules是什么? 阅读全文
posted @ 2020-12-17 12:29 呈心者 阅读(39) 评论(0) 推荐(0) 编辑
摘要:immediately-invoked function expression 函数表达式: let f=function() {...}; 把函数表达式用()括起来,再加一个(): 1 (function() { 2 var message="hello"; 3 alert(message); 4 阅读全文
posted @ 2020-12-17 11:38 呈心者 阅读(102) 评论(0) 推荐(0) 编辑
摘要:var声明的变量,只有函数作用域或者全局作用域 允许重复声明,重复声明会被忽略但不会报错 先使用,再声明 声明可以被提升,但赋值不可以 阅读全文
posted @ 2020-12-17 11:19 呈心者 阅读(192) 评论(0) 推荐(0) 编辑
摘要:把整体代码比作西瓜,吃的时候喜欢切成一块一块的,那一块西瓜就叫西瓜块。 代码块就是整体代码的一部分。 把整体代码比作一大片有着良田美池,阡陌交通的桃花源。这么好的地方,这么多人,地盘肯定要被瓜分,刘备划走一块,曹操划走一块,划分地盘的目的就是告诉其他人,这块地是我的,别来。 马老师也有幸分得一块,他 阅读全文
posted @ 2020-12-17 10:58 呈心者 阅读(347) 评论(0) 推荐(0) 编辑
摘要:在函数调用时,作用于 “作为实参的数组” 把数组展开,使之成为参数列表 1 let arr = [3, 5, 1]; 2 3 alert( Math.max(...arr) ); // 5 spread 语法把数组转换为参数列表 1 let arr=[1,2,3]; 2 let carr=[...a 阅读全文
posted @ 2020-12-17 10:03 呈心者 阅读(292) 评论(0) 推荐(0) 编辑
摘要:是一个对象 是一个可迭代对象 像数组但不是数组 里头存放着所有参数 1 function showName() { 2 alert( arguments.length ); 3 alert( arguments[0] ); 4 alert( arguments[1] ); 5 6 // 它是可遍历的 阅读全文
posted @ 2020-12-17 09:53 呈心者 阅读(150) 评论(0) 推荐(0) 编辑
摘要:一种形参,格式为...args 能把传递过来的实参收集到数组之中 一:形参列表中只包含 ...args: 所有传递过来的实参都放到args数组当中。 二:形参列表中包含其他变量和...args: 第一个,第二个,第三个... ...args。 Rest...参数必须才形参列表的末尾。 1 funct 阅读全文
posted @ 2020-12-17 09:48 呈心者 阅读(77) 评论(0) 推荐(0) 编辑
摘要:对象的属性太多,没得那么多变量(一来是没必要,二来是懒),写了几个变量后就懒得写了。 咋办? 把对象中剩余的元素统统收集起来,放到 ... 中 1 let options = { 2 title: "Menu", 3 height: 200, 4 width: 100 5 }; 6 7 // tit 阅读全文
posted @ 2020-12-16 22:08 呈心者 阅读(84) 评论(0) 推荐(0) 编辑
摘要:要点: 变量名与对象中的属性名保持一致 属性名:其他变量名的形式可以把属性名赋值给其他变量名 可以自定义变量:v=value。变量找不到对象传递过来的值,就需要去给他一个默认值。默认值可以是表达式,甚至是函数调用。 width: w = 100 冒号与等号的结合 阅读全文
posted @ 2020-12-16 22:02 呈心者 阅读(83) 评论(0) 推荐(0) 编辑
摘要:有一个数组: let arr=['dawa' ,'erwa']; 把数组中的两个元素分别赋值给两个变量 first,second。 1 let first=arr[0]; 2 let second=arr[1]; 另一种写法: let [first,second]=arr; 左侧是变量名,右侧是数组 阅读全文
posted @ 2020-12-16 21:13 呈心者 阅读(160) 评论(0) 推荐(0) 编辑
摘要:是一种特殊的语法,它使我们可以将数组或对象“拆包”为到一系列变量中,因为有时候使用变量更加方便。解构操作对那些具有很多参数和默认值等的函数也很奏效。——现代js教程 数组保持不变 等号右侧可以是任何可迭代对象 等号左侧可以是任何“可以被赋值”的东西 阅读全文
posted @ 2020-12-16 20:48 呈心者 阅读(87) 评论(0) 推荐(0) 编辑
摘要:用分隔符(delimiter)把一个字符串劈开(split),劈成一个一个的小块。 str.split(delim)返回一个新数组哦。 有两个参数:delimiter,length 阅读全文
posted @ 2020-12-16 20:47 呈心者 阅读(2053) 评论(0) 推荐(0) 编辑
摘要:颠倒数组元素 阅读全文
posted @ 2020-12-16 19:05 呈心者 阅读(121) 评论(0) 推荐(0) 编辑
摘要:用途:处理数组数据 参数:用于处理数组数据的函数,设置该函数的this的指向的对象 结果:得到一个新数组,数组元素是函数的返回值 参数函数: 参数:数组元素、元素索引、整个数组 作用:处理数组中的数据,返回某种有意义的数据 第二个参数——对象: 设置参数函数中this的指向 最终得到的新数组: 数组 阅读全文
posted @ 2020-12-16 19:04 呈心者 阅读(190) 评论(0) 推荐(0) 编辑
摘要:对象可以作为键值对中的键。 当对象没有被引用时,会被当做垃圾回收掉。 对象当做键时,如果没有被引用,也许会被回收,也许不被回收,Map中的对象作为键时不会被回收。 WeakMap中的对象作为键时,如果没有被引用就会被回收。 阅读全文
posted @ 2020-12-16 18:52 呈心者 阅读(271) 评论(0) 推荐(0) 编辑
摘要:SameValueZero 此算法不能被改变或自定义 类似 NaN和NaN的比较返回true 阅读全文
posted @ 2020-12-14 16:32 呈心者 阅读(111) 评论(0) 推荐(0) 编辑
摘要:1 let m=new Map(); 2 m.set(NaN,1); 阅读全文
posted @ 2020-12-14 16:29 呈心者 阅读(78) 评论(0) 推荐(0) 编辑
摘要:Map的键可以是任意类型。 set: 1 let obj={name:"zy",age:500}; 2 let m=new Map(); 3 const bigInt = 1234567890123456789012345678901234567890n; 4 let id=Symbol("id") 阅读全文
posted @ 2020-12-14 16:24 呈心者 阅读(73) 评论(0) 推荐(0) 编辑
摘要:对象想要被遍历 要做些改变 添加一个Symbol.iterator的属性。 1 class RangeIterator { 2 constructor(start, stop) { 3 this.value = start; 4 this.stop = stop; 5 } 6 7 [Symbol.i 阅读全文
posted @ 2020-12-14 15:40 呈心者 阅读(82) 评论(0) 推荐(0) 编辑
摘要:主角是一组数据(以特定的数据结构组织)。 for...of循环 iterator接口 for...of只认识iterator,有它就能发挥作用。 对象具有属性。属性的表面形式是: 属性名:属性值 有一个属性,其属性名为Symbol.iterator,而其值为一个函数。 这个函数就是“遍历器生成函数” 阅读全文
posted @ 2020-12-14 15:29 呈心者 阅读(68) 评论(0) 推荐(0) 编辑
摘要:1 var it = makeIterator(['a', 'b']); 2 3 it.next() // { value: "a", done: false } 4 it.next() // { value: "b", done: false } 5 it.next() // { value: u 阅读全文
posted @ 2020-12-14 15:07 呈心者 阅读(83) 评论(0) 推荐(0) 编辑
摘要:想象一个指针,指向一组数据。 这一组数据中由许多元素组成。元素一,元素二,元素三...,用元素n来代表某一个元素 next()被调用后,会返回一个对象。 想象这个对象,包含两个属性:value,done。 value表示元素n的值,done表示遍历是否结束。 阅读全文
posted @ 2020-12-14 14:32 呈心者 阅读(90) 评论(0) 推荐(0) 编辑
摘要:迭代器 遍历器 明显遍历器要好理解,迭代器和起个名字叫博客涅夫捏死扶一样没有意义。 阅读全文
posted @ 2020-12-14 14:13 呈心者 阅读(77) 评论(0) 推荐(0) 编辑
摘要:作为对象的方法。 阅读全文
posted @ 2020-12-14 12:55 呈心者 阅读(84) 评论(0) 推荐(0) 编辑
摘要:回调是一个动作。 一个函数总是要在某个事件完成之后才开始执行。 这个函数作为另一个函数的参数,在其他事情完成后被调用,看起来好像是先做某件事回头又做某件事一样,按照顺序做事情。 这个被放在后面做的事情在这里就被叫做回调函数。 阅读全文
posted @ 2020-12-14 12:08 呈心者 阅读(198) 评论(0) 推荐(0) 编辑
摘要:使用场景: 停止使用不再需要的加载指示符indicator。 promise对象从pending状态变为settled状态时,finally(f)中的f开始运行。 finally处理程序:handler 没有参数 并不处理结果和错误,原封不动的传递它们。 阅读全文
posted @ 2020-12-14 11:52 呈心者 阅读(208) 评论(0) 推荐(0) 编辑
摘要:then的参数是两个函数。 这两个函数都是回调函数。 起个名字:回1,回2。 回1: Promise对象的状态为resolved时 参数:Promise对象传出的值 处理:返回: 阅读全文
posted @ 2020-12-13 17:54 呈心者 阅读(958) 评论(0) 推荐(0) 编辑
摘要:1 let promise = new Promise(function(resolve, reject) { 2 console.log('Promise'); 3 resolve(); 4 }); 5 6 promise.then(function() { 7 console.log('reso 阅读全文
posted @ 2020-12-13 17:39 呈心者 阅读(110) 评论(0) 推荐(0) 编辑
摘要:我完全可以给这个即是函数又是参数,还隶属于promise的函数起个名字:保证 构造函数 参数 饱够餐。 真tnd是个天才。 饱够餐是一个函数。 1 function(resolve, reject) { 2 // ... some code 3 4 if (/* 异步操作成功 */){ 5 reso 阅读全文
posted @ 2020-12-13 17:27 呈心者 阅读(261) 评论(0) 推荐(0) 编辑
摘要:对象的状态。 阅读全文
posted @ 2020-12-13 17:14 呈心者 阅读(188) 评论(0) 推荐(0) 编辑
摘要:js内部提供的函数。函数三要素:参数,处理,返回。 resolve 参数: 处理:pending->resolved 返回:异步操作成功后的结果 reject 参数:处理:pending->rejected返回:异步操作出错时返回的错误 阅读全文
posted @ 2020-12-13 17:09 呈心者 阅读(283) 评论(0) 推荐(0) 编辑
摘要:1 promise.then(function(value) { 2 // success 3 }, function(error) { 4 // failure 5 }); then本质上是一个函数,因为then存在于对象之中,所以又叫做方法。将then当做一个函数就ok了。 then有两个参数, 阅读全文
posted @ 2020-12-13 17:03 呈心者 阅读(617) 评论(0) 推荐(0) 编辑
摘要:构造函数可以生成对象。 此构造函数接受一个函数作为参数。 此函数包含两个参数: resolve reject 这两个函数是js内部创建好的,直接用。 resolve 当异步操作成功时,resolve函数被调用 把异步操作的结果作为参数传递给Promise构造函数。 使得Promise对象的状态发生改 阅读全文
posted @ 2020-12-13 16:51 呈心者 阅读(336) 评论(0) 推荐(0) 编辑
摘要:resolve 解决 reject 拒绝 pending 进行中 fufilled 已成功 indicator 指示器 procedure 程序 handler 处理程序 阅读全文
posted @ 2020-12-13 16:27 呈心者 阅读(99) 评论(0) 推荐(0) 编辑
摘要:Promise对象 从语法上来说,Promise是一个对象。 对象的三种状态: pending fulfiled rejected 对象的状态不受外界影响,只有异步操作的结果可以改变状态。 对象的状态一旦发生改变,就不会再变化。 对象只有两种状态改变的情况: pending ->fulfiled p 阅读全文
posted @ 2020-12-13 15:13 呈心者 阅读(68) 评论(0) 推荐(0) 编辑
摘要:中文方法名:找多个对象。 作用:找到多个对象,返回这些对象组成的数组。 使用格式: 1 let results = arr.filter(function(item, index, array) { 2 // 如果 true item 被 push 到 results,迭代继续 3 // 如果什么都 阅读全文
posted @ 2020-12-13 14:59 呈心者 阅读(502) 评论(0) 推荐(0) 编辑
摘要:中文方法名:找到对象索引号 作用:同上。找到就返回索引号,找不到返回-1。 阅读全文
posted @ 2020-12-13 14:52 呈心者 阅读(259) 评论(0) 推荐(0) 编辑
摘要:中文方法名:找对象 作用:在对象数组中找想要的对象。 1 let result = arr.find(function(item, index, array) { 2 // 如果返回 true,则返回 item 并停止迭代 3 // 对于假值(falsy)的情况,则返回 undefined 4 }) 阅读全文
posted @ 2020-12-13 14:50 呈心者 阅读(2716) 评论(0) 推荐(0) 编辑
摘要:const arr = [NaN]; alert( arr.indexOf(NaN) ); // -1(应该为 0,但是严格相等 equality 对 NaN 无效) alert( arr.includes(NaN) );// true(这个结果是对的) 在数组中找寻某个元素时,需要拿“这个元素”和 阅读全文
posted @ 2020-12-13 14:15 呈心者 阅读(761) 评论(0) 推荐(0) 编辑
摘要:中文方法名:检查是否包含 作用:同上。找到返回true,找不到返回false。 阅读全文
posted @ 2020-12-13 14:10 呈心者 阅读(177) 评论(0) 推荐(0) 编辑
摘要:方法中文名:反向找索引 作用:根据指定的元素和索引号寻找到元素的索引号 1 let arr=[1,2,1,3,4]; 2 console.log(arr.indexOf(1));//0 3 console.log(arr.indexOf(1,1));//2 4 console.log(arr.las 阅读全文
posted @ 2020-12-13 14:08 呈心者 阅读(194) 评论(0) 推荐(0) 编辑
摘要:方法中文名:找索引 作用:搜索指定的元素,找到后返回索引号,找不到返回-1。 1 let arr = [1, 0, false]; 2 3 alert( arr.indexOf(0) ); // 1 4 alert( arr.indexOf(false) ); // 2 5 alert( arr.i 阅读全文
posted @ 2020-12-13 13:52 呈心者 阅读(243) 评论(0) 推荐(0) 编辑
摘要:作用:给每个数组元素绑定一个函数 绑定alert: 1 let arr=[1,2,3]; 2 arr.forEach(alert); 3 //依次显示1 2 3 绑定一个箭头函数: 1 let arr=[1,2,3]; 2 arr.forEach((item,index,array)=>{conso 阅读全文
posted @ 2020-12-13 13:47 呈心者 阅读(321) 评论(0) 推荐(0) 编辑
摘要:作用:拼接新数组。 一:参数全是简单的值 有数组也有纯数字: 只有数字: 只有数组: 二:参数是对象: [Symbol.isConcatSpreadable]:true length:设置为几,就把几个元素(属性名为数字)加入 请欣赏gif: 阅读全文
posted @ 2020-12-13 13:33 呈心者 阅读(510) 评论(0) 推荐(0) 编辑
摘要:arr.slice([start], [end]) 选择原数组中的部分元素以形成新数组 顺序参数: 开始索引 结束索引 结束索引对应的元素不包括在内 一:两个参数 从开始索引对应元素到结束索引对应元素的前一个元素被选择,被选择元素组成新数组 二:一个参数 从开始索引对应元素到最后一个元素被选择,被选 阅读全文
posted @ 2020-12-13 12:12 呈心者 阅读(605) 评论(0) 推荐(0) 编辑
摘要:删除元素 删除元素并插入元素 不删除元素并插入元素 按照顺序写入参数:开始索引号 删除元素个数 被插入元素 形象化过程: 确定好索引号之后,有两个选择:删除对应元素或者不删除。 一:删除元素 只删除不插入。对应元素被删除,剩余数组元素自动补齐空位,索引号发生改变,数组长度发生改变。 删除后插入。被插 阅读全文
posted @ 2020-12-13 11:40 呈心者 阅读(310) 评论(0) 推荐(0) 编辑
摘要:1 let arr = ["I", "go", "home"]; 2 3 delete arr[1]; // remove "go" 4 5 alert( arr[1] ); // undefined 6 7 // now arr = ["I", , "home"]; 8 alert( arr.le 阅读全文
posted @ 2020-12-13 11:19 呈心者 阅读(1741) 评论(0) 推荐(0) 编辑
摘要:长得一样,但不同 1 alert( [] == [] ); // false 2 alert( [0] == [0] ); // false 当数组变量指向的是同一个数组对象,即使是长得不一样,那也相等。 1 let arr=["apple","orange"]; 2 let arr1=arr; 3 阅读全文
posted @ 2020-12-12 21:10 呈心者 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-12-12 21:00 呈心者 阅读(53) 评论(0) 推荐(0) 编辑
摘要:修改数组时: 如果设置了原先数组不具备的索引值,length等于最大索引值加一。 直接修改length: 增加length,无事发生。 减少length,减少后的length是多少就代表还剩多少个元素。 小方法: 清空数组:arr.length=0; 阅读全文
posted @ 2020-12-12 20:44 呈心者 阅读(979) 评论(0) 推荐(0) 编辑
摘要:拥有: length 索引 非数字属性名 如果用for..in遍历伪数组,会处理那些我们不需要的元素。 最好别用for..in来处理数组。 阅读全文
posted @ 2020-12-12 20:36 呈心者 阅读(70) 评论(0) 推荐(0) 编辑
摘要:1 let arr = ["Apple", "Orange", "Pear"]; 2 3 for (let i = 0; i < arr.length; i++) { 4 alert( arr[i] ); 5 } for循环方式 1 let fruits = ["Apple", "Orange", 阅读全文
posted @ 2020-12-12 20:27 呈心者 阅读(62) 评论(0) 推荐(0) 编辑
摘要:push/pop比unshift/shift快 在数组首端插入或删除元素,原先数组元素的索引号都要发生改变,可谓是牵一发而动全身。 在数组尾端插入或删除元素,原先数组元素的索引号不需要发生改变,省时省力。 阅读全文
posted @ 2020-12-12 20:20 呈心者 阅读(85) 评论(0) 推荐(0) 编辑
摘要:arr[0]和object[key] 数组用来处理有序的数据集合。 复制引用 js引擎尝试把数组元素一个接一个存储在连续的内存区域 该用数组时就用数组,它称得上是好用的工具。按照适当的方式使用数组而不是一视同仁地把它当做对象来使用。 乱用数组的方式: 添加非数字的属性 浪费数组的地方 阅读全文
posted @ 2020-12-12 20:04 呈心者 阅读(289) 评论(0) 推荐(0) 编辑
摘要:1 let arr=[]; 2 let arr=new Array(); 方括号形式 构造函数形式 new Array() 阅读全文
posted @ 2020-12-12 19:46 呈心者 阅读(109) 评论(0) 推荐(0) 编辑
摘要:String Number Boolean Symbol 原始类型并不是对象,作用是只提供单个值。 既然不是对象,那就不应该具有方法,所以str.toUpperCase()到底是什么意思? 很简单: toUpperCase()是一个方法,既然被调用了,那就一定要找到是谁调用的我。 一般来说是对象在进 阅读全文
posted @ 2020-12-12 18:43 呈心者 阅读(91) 评论(0) 推荐(0) 编辑
摘要:两个普通对象进行加减乘除: 两个普通对象相加,会返回[object Object][object Object] 其他操作均返回NaN alert(obj) [object Object] obj2[obj1]=123; 对象作为另一个对象的属性名 [object Object]:123 对象相比较 阅读全文
posted @ 2020-12-12 16:26 呈心者 阅读(136) 评论(0) 推荐(0) 编辑
摘要:1 functiion f(x,n){ 2 if(n==1){ 3 return x; 4 }else { 5 return x*f(x,n-1); 6 } 7 } 8 alert(pow(2,3)); //8 阅读全文
posted @ 2020-12-12 14:19 呈心者 阅读(40) 评论(0) 推荐(0) 编辑
摘要:构造函数本身没有return语句 加上return。如果return另一个对象,就返回这个对象;如果return一个原始类型数据或者空,就忽略它们。 阅读全文
posted @ 2020-12-11 12:45 呈心者 阅读(271) 评论(0) 推荐(0) 编辑
摘要:构造函数名大写 由new执行 构造函数创建对象的过程: 创建一个新的对象 把新对象赋值给this 通过this给新对象添加属性 隐式返回this的值(return this) 构造函数的作用: 代码复用,提高效率。 问题一: 现在要创建一个复杂的对象,记住,只有一个。通过构造函数的方法,有什么好的办 阅读全文
posted @ 2020-12-11 12:27 呈心者 阅读(98) 评论(0) 推荐(0) 编辑
摘要:当函数在对象中作为对象的属性时,通常被叫做方法。 阅读全文
posted @ 2020-12-11 10:22 呈心者 阅读(171) 评论(0) 推荐(0) 编辑
摘要:唯一区别:拷贝对象中的子对象时,是否重新创建一个对象。 浅拷贝:不创建对象,只新建了一个指向原对象的指针。 深拷贝:创建一个新对象。 浅拷贝: 1 let dash={ 2 name:"wukong", 3 age:500 4 }; 5 let clone={}; 6 let clone1={}; 阅读全文
posted @ 2020-12-11 10:12 呈心者 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-12-10 08:52 呈心者 阅读(412) 评论(0) 推荐(0) 编辑
摘要:< <= > >= in instanceof 阅读全文
posted @ 2020-12-09 21:12 呈心者 阅读(75) 评论(0) 推荐(0) 编辑
摘要:面向连接 阅读全文
posted @ 2020-12-09 21:02 呈心者 阅读(190) 评论(0) 推荐(0) 编辑
摘要:就是计算机的名字,唯一且有意义。 阅读全文
posted @ 2020-12-09 20:36 呈心者 阅读(42) 评论(0) 推荐(0) 编辑
摘要:一个变量的作用域是程序源代码中定义的这个变量的区域。全局变量拥有全局作用域,局部变量拥有局部作用域。 阅读全文
posted @ 2020-12-09 17:14 呈心者 阅读(59) 评论(0) 推荐(0) 编辑
摘要:在需要使用某个变量或函数时,我们要明白,这些我们在寻找的宝石,都是实实在在存在的。 它们被神用绳子串起来,挂在天边。 神怜悯我们,把我们也放在宝石串的一边,我们沿着链子,从底部往上爬,直到找到为止。 阅读全文
posted @ 2020-12-09 16:01 呈心者 阅读(114) 评论(0) 推荐(0) 编辑
摘要:变量对象(variable object) 用于存放变量和函数,这些是提供给某个特定函数使用的。 阅读全文
posted @ 2020-12-09 15:52 呈心者 阅读(224) 评论(0) 推荐(0) 编辑
摘要:词法环境是一个理论上存在的对象。 由什么组成? 环境记录(environment record)和对外部词法环境的引用。 暂且认为这些来自不同地方的宝石,团结起来,暂时组成了一个新的对象。 阅读全文
posted @ 2020-12-09 14:31 呈心者 阅读(305) 评论(0) 推荐(0) 编辑
摘要:有NaN存在 一律返回false 有布尔值存在 把布尔值转换为数字,再进行比较。true为1,false为0. 有null和undefined存在 返回true 有大boss字符串存在 两边都是字符串:比较字符串的值是否相同 数字型字符串:转换为数字后进行数字值的比较 一边为布尔类型:布尔转换为数字 阅读全文
posted @ 2020-12-09 11:42 呈心者 阅读(56) 评论(0) 推荐(0) 编辑
摘要:<<(左移) 00000000,00000000,00000000,00001001 指定了左移n位后,会有两件事发生: 数串的最左边有n个数字消失 数串最右边新增n个0 去掉最左边n个数又加上最右边n个数,虚晃一枪,还是32位 >>(带符号右移) 阅读全文
posted @ 2020-12-09 11:06 呈心者 阅读(108) 评论(0) 推荐(0) 编辑
摘要:15 00000000,00000000,00000000,00001111 9 00000000,00000000,00000000,00001001 &:1 1 1 |:1 0 1;0 1 1;1 1 1 ~:0->1;1->0 阅读全文
posted @ 2020-12-09 10:34 呈心者 阅读(119) 评论(0) 推荐(0) 编辑
摘要:看到表达式,首先处理圆括号中的内容。 阅读全文
posted @ 2020-12-09 10:03 呈心者 阅读(219) 评论(0) 推荐(0) 编辑
摘要:以运算符为中心,从运算符的角度来看: var n=1+2*3; 有加号和乘号运算符,其中二者均是二元运算符。 如果没有相应的规则来规定这个表达式,那么最终的结果也就不了了之了,所以需要相应的规则,而这个规则就包含优先级。 优先级:把优先级最高的运算符抽象成皇帝,运算符所操作的运算元抽象成宝物,皇帝地 阅读全文
posted @ 2020-12-09 09:57 呈心者 阅读(167) 评论(0) 推荐(0) 编辑
摘要:a**b。 a为底数,b为次数。 阅读全文
posted @ 2020-12-09 09:22 呈心者 阅读(73) 评论(0) 推荐(0) 编辑
摘要:1 var a=1; 2 var b=2; 3 4 var c=a+b;//3 5 var s=1+"fly";//"1fly" 以上是加号作为二元运算符时的使用方法。 当加号作为一元运算符呢? 1 var s="1"; 2 var s1="2"; 3 var s2=+s;//s2=1 加号相当于一 阅读全文
posted @ 2020-12-09 09:20 呈心者 阅读(169) 评论(0) 推荐(0) 编辑
摘要:js垃圾回收是自动进行的 如果对象是可达的,它一定是存在于内存中的 一组相互连接的对象可能整体都不可达 1 function marry(man,woman){ 2 woman.husband=man; 3 man.wifr=woman; 4 5 return { 6 father:man, 7 m 阅读全文
posted @ 2020-12-08 21:20 呈心者 阅读(67) 评论(0) 推荐(0) 编辑
摘要:1 var a=1; 2 var b=a++;//b=1,先赋值再自增 3 4 var a=1; 5 var c=++a;//c=2,先自增再赋值 阅读全文
posted @ 2020-12-08 16:43 呈心者 阅读(51) 评论(0) 推荐(0) 编辑
摘要:函数的执行依赖于变量作用域,作用域是在函数定义时所确定的,而不是在函数调用时确定。 阅读全文
posted @ 2020-12-08 16:32 呈心者 阅读(237) 评论(0) 推荐(0) 编辑
摘要:高程:有权访问另一个函数作用域中的变量的函数。 MDN:一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。 阮一峰老师: 各种专业文献上的"闭包"(closure)定义非常抽象,很难看懂。我的理解 阅读全文
posted @ 2020-12-08 16:31 呈心者 阅读(478) 评论(0) 推荐(0) 编辑
摘要:0 null undefined NaN "" 零,空,未定义,非数值,空串。 阅读全文
posted @ 2020-12-08 16:13 呈心者 阅读(186) 评论(0) 推荐(0) 编辑
摘要:显式转换:特指Number(value) 隐式转换:非显式,比如“/”除号 1 let str="fly"; 2 let n=Number(str); 3 alert("6"/"2"); //3 undefined:NaN null:0 true:1; false:0 string: 纯数字字符串返 阅读全文
posted @ 2020-12-08 16:09 呈心者 阅读(450) 评论(0) 推荐(0) 编辑
摘要:显示转换:指的就是使用String(value)这种形式。 隐式转换:指的是非隐式转换。 详细情况: 隐式转换: alert 阅读全文
posted @ 2020-12-08 15:49 呈心者 阅读(306) 评论(0) 推荐(0) 编辑
摘要:表示空。 typeof(null); 返回object,这是历史遗留问题。 阅读全文
posted @ 2020-12-08 15:41 呈心者 阅读(50) 评论(0) 推荐(0) 编辑
摘要:1 console.log(null==undefined); //结果为true 2 console.log(null undefined);//结果为false 各自的使用场景: null,一般将null写入变量中; undefined,作为已经声明但还没有赋值的变量的初始值。 阅读全文
posted @ 2020-12-08 15:36 呈心者 阅读(102) 评论(0) 推荐(0) 编辑
摘要:是一个未定义或者不正确的数学操作得出的结果 NaN是粘性的,对于NaN的进一步操作都会返回NaN 阅读全文
posted @ 2020-12-08 15:33 呈心者 阅读(96) 评论(0) 推荐(0) 编辑
摘要:就是一个值,可以直接使用,表示无穷大。 1 alert(Infinity); //Infinity 2 var v=Infinity; 3 var b=(1/0); //Infinity 阅读全文
posted @ 2020-12-08 13:58 呈心者 阅读(402) 评论(0) 推荐(0) 编辑
摘要:是一个内置对象,能表示任意长度的整数 number做不到的事儿,由我BigInt来做 能表示大于(253-1)( 9007199254740991)或小于-(253-1) 使用方法: 1 const bi1=999n; 在整数后加n 2 const bi2=BigInt("999");调用函数 3 阅读全文
posted @ 2020-12-08 13:06 呈心者 阅读(426) 评论(0) 推荐(0) 编辑
摘要:let v="fly"; v=100; 不用去想什么动态不动态,还原事物本质就行了。 从v的角度来看: 一开始,v被let声明 v变成了fly v变成了100 从“fly”的角度来看: 我变成了v 我被v抛弃了 v一开始是字符串类型,后来又变成了数值类型,还能变成其他类型。 也就是说v的类型不是被定 阅读全文
posted @ 2020-12-08 11:56 呈心者 阅读(183) 评论(0) 推荐(0) 编辑
摘要:字母全大写 驼峰命名法 字母全大写: const COLOR_RED="#f00"; 使用“#f00”和使用COLOR_RED是一样一样的,但是我们时常会忘记那种复杂的写法,所以如果能记住一个事物所有的写法,就没必要去定义常量。 我们知道红色就是red,但是不知道还叫“#F00”,为了方便啊,不想老 阅读全文
posted @ 2020-12-08 11:32 呈心者 阅读(149) 评论(0) 推荐(0) 编辑
摘要:const v=5; 不能再给v赋值。 v就代表了5,使用v就相当于在使用5。 阅读全文
posted @ 2020-12-08 11:17 呈心者 阅读(22) 评论(0) 推荐(0) 编辑
摘要:用户真名:userRealName 第一个单词首字母小写 其余单词首字母大写 第一个单词像骆驼的头,其他单词的首字母像驼峰。 阅读全文
posted @ 2020-12-08 11:09 呈心者 阅读(126) 评论(0) 推荐(0) 编辑
摘要:变量命名: 首字符不能是数字。字母或者符号美元和下划线($和_) 由字母,数字,美元和下划线组成 大小写不同 可以使用非英文字母 保留字不能用 变量声明: 不严格的时候可以不声明。age=5; 阅读全文
posted @ 2020-12-08 11:04 呈心者 阅读(23) 评论(0) 推荐(0) 编辑
摘要:是谁在变得严格? 我们编写代码,永远不是随心所欲的,我们只能按照预先设定好的方式去书写代码。 在限制中感受自由,绝对的自由带来的就是绝对的限制。自由总是在条条框框中才显得那么弥足珍贵。 我们书写代码要按照另一种标准来了,而我们已经写好的代码也会被此种标准所处理。 我们在代码的最上方,用英文大喊一声: 阅读全文
posted @ 2020-12-08 10:23 呈心者 阅读(308) 评论(0) 推荐(0) 编辑
摘要:单行注释:// 双右杠 多行注释:/*...*/ 右杠星和星右杠 注意点:多行注释不能嵌套 使用技巧: Ctrl+/ 热键进行单行注释,诸如 Ctrl+Shift+/ 的热键可以进行多行注释 阅读全文
posted @ 2020-12-08 10:09 呈心者 阅读(30) 评论(0) 推荐(0) 编辑
摘要:在原先的我看来,分号应该算是非常小的知识点了,可果然不出我所料,一查资料,居然有如此多的关于分号的讨论。 知乎上关于要不要加分号的讨论: 分号之争 明确几点: 有时,分号可以不加。因为有时换行这个动作本身就相当于加了一个分号。 有时,分号必须加。 必须加: 括号 ( 方括号 [ 正则开始的斜杠 / 阅读全文
posted @ 2020-12-08 10:05 呈心者 阅读(3740) 评论(0) 推荐(0) 编辑
摘要:将js代码放到一个单独的文件中 在HTML中引入js文件 可以使用多个脚本文件 使用了js文件后,<script>标签内部的代码无效 使用独立文件的好处? 浏览器下载好对应的文件后将其保存至浏览器的缓存之中。因为文件已经存在所以当其他页面要使用相同的文件,就无需重复下载了。 有哪些过时的标准? ty 阅读全文
posted @ 2020-12-08 09:44 呈心者 阅读(279) 评论(0) 推荐(0) 编辑
摘要:显示一个问题 有确定和取消两个按钮 点击确定返回true,点击取消返回false result = confirm(question); 阅读全文
posted @ 2020-12-07 20:52 呈心者 阅读(223) 评论(0) 推荐(0) 编辑
摘要:是一个函数 能显示信息并能接受信息 result = prompt(title, [default]); 第一个参数title:显示的信息内容 第二个参数default:输入框内的初始值 作用详解: 显示预先设置好的信息,把用户输入的信息返回(可有可无,如果用户取消输入(esc)则返回null) 阅读全文
posted @ 2020-12-07 20:47 呈心者 阅读(791) 评论(0) 推荐(0) 编辑
摘要:什么叫区别? 两个事物作比较,一般来说是有其共同点,有其不同点,正是因为大同小异,所以区别才显得很重要。完全不相干的两个事物是没有比较的必要的,比如说拿自行车和高铁比,能比速度,但是拿馒头和自行车比,比比颜色就得了。 人们下意识的比较,正是因为二者之间相似度极高,比方说成绩好和成绩差的学生作比较,因 阅读全文
posted @ 2020-12-07 13:22 呈心者 阅读(99) 评论(0) 推荐(0) 编辑
摘要:人们总是在问题出现的时候,花费大量精力去试图解决问题。 而最高效有用的方式是: 在问题没出现时,花费很少的财力物力去遏制问题的发生。 准确来说我现在还不是程序员,我只是一个在学习计算机相关知识的学生,但是我又可以称得上是程序员,因为我以后会成为程序员。 整天保持不健康的坐姿,就如同每天都在喝着毒酒, 阅读全文
posted @ 2020-12-07 10:38 呈心者 阅读(278) 评论(0) 推荐(0) 编辑
摘要:数据:举个例子,有个表示颜色的数据“yellow”,yellow在你眼中是一个单词,但在计算机眼中是一串数字。数字和数据有什么区别呢,简单思考的结果就是数据具有一定的意义(特指)。“yellow”,"red","green"这些都是数据。 响应:不用想复杂。想象一下有两个物体,a和b。a先给b打了个 阅读全文
posted @ 2020-12-06 21:03 呈心者 阅读(155) 评论(0) 推荐(0) 编辑
摘要:可以脱口而出的几句话: 每个构造函数都有一个原型对象 每个原型对象都有一个指向构造函数的指针 每个实例对象都有一个指向原型对象的指针 阅读全文
posted @ 2020-12-06 20:19 呈心者 阅读(52) 评论(0) 推荐(0) 编辑
摘要:这个指令保持在元素上直到关联实例结束编译。 对官方文档的进一步解释: v-cloak:这个字符串叫做指令 元素:这里的元素是一个宽泛的概念,是一个统称,可以具体到某一个元素,比如div 关联实例:关联值得是两个事物之间存在关系,互相影响。实例,指的是一个具体的例子,这里指的应该还是这个元素。(待定) 阅读全文
posted @ 2020-12-06 19:30 呈心者 阅读(317) 评论(0) 推荐(0) 编辑
摘要:在没有真正的使用MVVM思想进行项目开发之前,很难体会到此模式的微妙之处。 在没有真正的了解清楚MVVM的各部分真正作用之前,很难从各部分的联系之中弄清楚最核心的思想(由繁入简)。 明确两点: 不可能绝对理解MVVM 相对正确的理解MVVM是可能的,并且不需要花费太久 此行目的: 为什么MVVM给人 阅读全文
posted @ 2020-12-06 17:50 呈心者 阅读(107) 评论(0) 推荐(0) 编辑
摘要:无刷新获取数据。 把这句话解释如下: 本地客户端可以在不进行刷新操作的情况下得到来自服务器的数据。 问题是刷新是什么?全局刷新才算刷新吗?本质上只要有事物发生改变都是“不一样的”,“新的”,就可以叫做刷新,刷新强调的就是改变。 由此我提出一个想法: 整体页面不需要都改变,只需要部分发生改变就行了。 阅读全文
posted @ 2020-12-05 10:58 呈心者 阅读(56) 评论(0) 推荐(0) 编辑
摘要:我的面前有一个名为“promise”的知识点。 它好比一座城堡,我需要花上一些功夫去观望,去研究,住进去,去用它,最后才能拍拍胸脯对城堡外的人说:看啊,我知道城堡是什么。 假设我有十次进城堡的机会,每一次的时间都不一样,每一次进去时自己的状况也不一样。 什么意思? 有时候是闭着眼睛进去的,有时候是带 阅读全文
posted @ 2020-12-05 10:21 呈心者 阅读(68) 评论(0) 推荐(0) 编辑
摘要:是一个函数。 本函数可以作为参数提交给其他的函数。 阅读全文
posted @ 2020-12-05 09:55 呈心者 阅读(280) 评论(0) 推荐(0) 编辑
摘要:去伪存真,要时时刻刻做这些事儿。 阅读全文
posted @ 2020-12-04 16:49 呈心者 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-12-04 16:25 呈心者 阅读(89) 评论(0) 推荐(0) 编辑
摘要:先解释一下“同步模式”和“异步模式”: (1)同步模式:就是后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的。 (2)异步模式:完全不同,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数, 后一个任务则 阅读全文
posted @ 2020-12-04 16:15 呈心者 阅读(257) 评论(0) 推荐(0) 编辑
摘要:只读。 只读本身就表示单一的作用效果(读,且只读),“只”的意思是不包含其他效果。故而无需再画蛇添足,说成:只读不修改。 作用目标: text password textarea 阅读全文
posted @ 2020-12-04 16:08 呈心者 阅读(473) 评论(0) 推荐(0) 编辑
摘要:Asyncronous Module Definition 异步模块定义 AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。区别:1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。2. AMD 推崇依赖前置,C 阅读全文
posted @ 2020-12-04 15:58 呈心者 阅读(101) 评论(0) 推荐(0) 编辑
摘要:页面中的页面。或者说在页面中创建一个行内框架。 1、创建比一般的 DOM 元素慢了 1-2 个数量级 iframe 的创建比其它包括 scripts 和 css 的 DOM 元素的创建慢了 1-2 个数量级,使用 iframe 的页面一般不会包含太多 iframe,所以创建 DOM 节点所花费的时间 阅读全文
posted @ 2020-12-04 15:45 呈心者 阅读(178) 评论(0) 推荐(0) 编辑
摘要:Math.ceil() 要么比它大一位数,要么与它相等。 阅读全文
posted @ 2020-12-04 15:38 呈心者 阅读(30) 评论(0) 推荐(0) 编辑
摘要:我知道node.js作为一种编程语言,服务于服务器。 阅读全文
posted @ 2020-12-04 13:08 呈心者 阅读(41) 评论(0) 推荐(0) 编辑
摘要:原型是一种机制。 此机制的作用是让a对象可以从b对象中继承功能特性;这种继承机制与经典的面向对象编程语言的机制不同。 js是基于原型的语言(prototype-based language)。 每个对象都拥有一个原型对象,对象以原型为模板从原型继承属性和方法。 原型对象也可能拥有原型,并继承属性和方 阅读全文
posted @ 2020-12-03 21:52 呈心者 阅读(153) 评论(0) 推荐(0) 编辑
摘要:静态成员,和构造函数本身有关,通过构造函数进行访问。 实例成员,和实例对象有关,通过实例进行访问。 阅读全文
posted @ 2020-12-03 19:53 呈心者 阅读(122) 评论(0) 推荐(0) 编辑
摘要:第一:“键值对”列表中的最后一个属性要以逗号结尾 这个逗号有个高大上的名字:尾随逗号(trailing) 原因应该就是为了规范,简单来说就是为了美观。 第二:使用const声明的对象,其数据是可以被修改的 该对象内部的属性是可以被修改的。 对对象整体进行更改,是不行滴。 第三:多词属性名来捣乱 键值 阅读全文
posted @ 2020-12-03 16:54 呈心者 阅读(338) 评论(0) 推荐(0) 编辑
摘要:第一种:俺们的数据如何被他人访问? 通过一个符号“.”,中文就叫通过点访问。 第二种:俺们的数据如何被删除? 通过一个词“delete”。 阅读全文
posted @ 2020-12-03 16:25 呈心者 阅读(111) 评论(0) 推荐(0) 编辑
摘要:第一种:直观方式 var o={name:'孙悟空'} (大部分教材和网站都叫这种方式是“字面量”方式,我只能说我语文不好,完全不知道字面量在说什么。) 第二种:构造方式 var o=new Object(); Object是一种数据类型,它最伟大的作用就是能生娃。 它生的娃通常被叫做“实例”。 高 阅读全文
posted @ 2020-12-03 16:19 呈心者 阅读(61) 评论(0) 推荐(0) 编辑
摘要:对有关对象的描述进行剖析: 是一种数据类型吗?一般称为Object类型,而Object的中文释义就是对象,所以在中文中说对象类型并没有问题。 故而对象的第一层意思,就是对象数据类型。 是一个集合吗? 高程中说:es中的对象时一组数据和功能的集合。 MDN文档中说:对象是一个包含数据和方法的集合(通常 阅读全文
posted @ 2020-12-03 15:35 呈心者 阅读(135) 评论(0) 推荐(0) 编辑
摘要:谢希仁: 阅读全文
posted @ 2020-12-03 15:24 呈心者 阅读(117) 评论(0) 推荐(0) 编辑
摘要:谢希仁版本: 无连接,这就是说虽然http使用了tcp连接,但通信双方在交换http报文之前不需要先建立http连接。 思否: 无连接,限制每次连接只处理一个请求,服务器处理完客户的请求,并收到用户的应答后就断开连接。 优点:节省传输时间 此无连接并非字面上的没有连接(那为什么要在字面上用无连接这个 阅读全文
posted @ 2020-12-03 11:57 呈心者 阅读(2986) 评论(0) 推荐(0) 编辑
摘要:和http请求报文的格式一样。 首部字段名 : 空格 字段值 CRLF 阅读全文
posted @ 2020-12-03 11:21 呈心者 阅读(252) 评论(0) 推荐(0) 编辑
摘要:状态行组成: HTTP版本 空格 状态码 空格 解释状态码的简单短语 CRLF 解释下状态码(Status-Code):由三位数组成,分为5大类。 通知:1xx 成功,:2xx 重定向:3xx 客户端出错:4xx 服务器端出错:5xx 阅读全文
posted @ 2020-12-03 11:19 呈心者 阅读(585) 评论(0) 推荐(0) 编辑
摘要:响应报文的组成部分: 状态行 首部行 CRLF 实体主体 本质:服务器给客户端的回答。 阅读全文
posted @ 2020-12-03 11:08 呈心者 阅读(64) 评论(0) 推荐(0) 编辑
摘要:首部行的作用: 表示浏览器,服务器或者报文主体的信息。 格式: 首部字段名 : 空格 字段值 CRLF 实例: Host: www.xyz.edu.cn 首部可以有多行,每行都要有回车换行(CRLF) 阅读全文
posted @ 2020-12-03 10:50 呈心者 阅读(415) 评论(0) 推荐(0) 编辑
摘要:什么鬼 阅读全文
posted @ 2020-12-03 10:11 呈心者 阅读(62) 评论(0) 推荐(0) 编辑
摘要:请求行: 由什么组成? 请求方法 空格 资源路径 空格 HTTP版本 CRLF(回车换行) 逐一分解: 请求方法是什么? 记住七个:HEAD GET POST OPTIONS DELETE TRACE PUT 中文意思分别是:头 得到 邮件 选择 删除 跟踪 放 要想一口气说出来七个(意义不大)就用 阅读全文
posted @ 2020-12-03 10:07 呈心者 阅读(3515) 评论(0) 推荐(1) 编辑
摘要:什么是请求? 孙悟空打死了白骨精,而唐僧却开始疯狂的念紧箍咒,于是猴哥大喊:师傅别念了! 这句话可以深挖,悟空把这句话说出来,要想起到效果必须满足一个条件:师傅能听懂。 怎么才能保证师傅能听懂?首先说的要是人话,鸟语师傅是听不懂的。 什么是人话?......本质上确实都是声波,但是具有特点的声波,一 阅读全文
posted @ 2020-12-03 09:03 呈心者 阅读(94) 评论(0) 推荐(0) 编辑
摘要:http: hypertext transfer protocol 超文本 传输 协议。 什么是超文本? 先想想什么是文本,文本就是一个事物,此事物与文字息息相关,其内容主体是文字,其结构也围绕文字而展开。 超文本也是文本,但是肯定有高明之处。高明在哪?就是在一个看似普通的文章页面上,通过鼠标点击可 阅读全文
posted @ 2020-12-03 08:44 呈心者 阅读(88) 评论(0) 推荐(0) 编辑
摘要:这是一个辛酸的故事。 我可不愿意这么尴尬,要追的上科技进步。 阅读全文
posted @ 2020-12-03 08:17 呈心者 阅读(63) 评论(0) 推荐(0) 编辑
摘要:资料描述: 现代js教程: 构造函数(又名构造器)在技术上是常规函数,不过有两个约定: 命名以大写字母开头 只能用new来执行 new的作用: 新的空对象被创建出来 此对象被分配给this(this指向此对象) 函数主体执行,为this所指的对象添加属性等等 返回此对象 总而言之,new的作用是:创 阅读全文
posted @ 2020-12-02 20:03 呈心者 阅读(113) 评论(0) 推荐(0) 编辑
摘要:数据从一端到达另一端所花费的时间。(小球从a点跑到b点) 单位是s,本质上就是时间段。 发送时延: 如何理解?先看教材描述: 主机或路由发送数据帧所需要的时间。 从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需时间 首先数据帧是什么?数据帧由比特组成,所以可以理解为一段比特(想象成几个 阅读全文
posted @ 2020-12-02 17:45 呈心者 阅读(1125) 评论(0) 推荐(0) 编辑
摘要:单位时间通过信道的实际数据量。 本质上还是速率,不过重点是“实际”。 阅读全文
posted @ 2020-12-02 17:22 呈心者 阅读(69) 评论(0) 推荐(0) 编辑
摘要:两个主角,bit和信道。 把信道想象成一个管子,bit想象成乒乓球(两种,一种是黑色,一种是白色),bit通过信道就相当于乒乓球通过管子。 单位时间内管子能通过的乒乓球的最大数量,就是最大速率。 而这个最大速率就叫带宽。 所以带宽本质上还是速率,再本质就是:在时间给定的情况下,此信道能传送多少数据( 阅读全文
posted @ 2020-12-02 17:18 呈心者 阅读(455) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示