随笔分类 - javascript
摘要:# 数据类型 > typescript会进行类型推导,不需要每个都写类型注释 ## 数组 ```js let list1:string[]=['aa','bb'] // 数组类型并且内容都为string let list2:any[] = ['aa',1,3] let list3:Array = [
阅读全文
摘要:## request类的封装 ```js // request/index.ts import axios from 'axios' import type { AxiosInstance } from 'axios' import type { XYRequestInterceptors, XYR
阅读全文
摘要:Object.defineProperty 缺陷: 1. 设计的初衷不是为了监听一个对象中的所有属性,初衷是定义普通的属性 2. 无法对新增属性、删除属性进行监听 Proxy 代理对象 /* const p = new Proxy(obj,{}) */ const obj = { name:'hyf
阅读全文
摘要:Promise const promise = new Promise((resolve,reject)=>{ // 立即执行 // 成功返回resolve(), // 失败返回reject() }) promise.then(()=>{ console.log('成功调用') }).catch((
阅读全文
摘要:原始类型调用方法 原始类型是简单的值,默认不能调用属性和方法,javascript为了可以使其可以获取属性和调用方法,对其封装了对应的包装类型。 String Number Boolean Symbol BigInt 包装类型的使用过程 根据原始值,创建一个原始类型对应的包装类型对象 调用对应的属性
阅读全文
摘要:斐波那契数列 // 数列:1 1 2 3 5 8... function fibonacci(n) { if (n 1 || n 2) { return 1 } return fibonacci(n - 1) + fibonacci(n - 2) } console.log(fibonacci(6)
阅读全文
摘要:this指向分析 指向 直接调用,指向window 通过对象调用,指向对象 call/apply 总结:跟位置无关,跟调用方式有关。只有在执行的时候this指向才会被确定 绑定规则: 默认绑定 // 独立函数调用,this指向window function foo(){ console.log(th
阅读全文
摘要:声明对象方式 对象字面量 var obj1={ name:'xx', age:88, } new Object() var obj2 = new Object() obj2.name='xx' new 自定义类 function Person(){} var obj3 = new Person()
阅读全文
摘要:Storage localStorage 永久性的存储方法 属性 length 方法 Storage.key(index): 返回存储中的第n个key名称 Storage.getItem(key) Storage.setItem(key,value) Storage.removeItem(key)
阅读全文
摘要:新ECMA代码执行描述 词法环境:一种规范类型,用于在词法嵌套结构中定义关联的变量、函数等标识符 环境记录 声明式环境记录 对象式环境记录 外部词法环境 Outer LexicalEnvironment和VariableEnvironment区别 LexicalEnvironment用于处理let/
阅读全文
摘要:进程和线程 进程:计算机运行的程序,操作系统管理程序的一种方式 线程:运行调度的最小单位,被包含在进程中 浏览器的事件循环 1. JavaScript是单线程的,但JavaScript的线程应该有自己的容器进程:浏览器,node 2. 浏览器是多进程的,每开一个tab,就新增一个进程,每个进程中有多
阅读全文
摘要:apply function myApply(obj,args){ /* 1. this指向调用者 2. 使用隐式绑定 obj.fn = this 3. obj.fn() 4. 调用完以后删除fn */ // 确保obj是一个对象 obj = (obj null || obj undefined)
阅读全文
摘要:事件处理三种方案 元素上 el.onclick window.addEventListener(fn) 事件流 事件冒泡:默认情况下事件是从最内层往外传递的顺序,这个顺序就称为事件冒泡 事件捕获:从外层到内层,称为事件捕获。 事件流都监听 捕获阶段:1 目标阶段:2 冒泡阶段:3 /* eventP
阅读全文
摘要:进程和线程 进程:计算机运行的程序,操作系统管理程序的一种方式 线程:运行调度的最小单位,被包含在进程中 浏览器的事件循环 1. JavaScript是单线程的,但JavaScript的线程应该有自己的容器进程:浏览器,node 2. 浏览器是多进程的,每开一个tab,就新增一个进程,每个进程中有多
阅读全文
摘要:创建 // Regular Expression const reg1 = new RegExp('abc','ig') const reg2 = /abc/ig 正则表达式和普通字符串 const re1 = /abc/ig const str = 'abc,sdfas,,dasafabcadda
阅读全文
摘要:Promise const promise = new Promise((resolve,reject)=>{ // 立即执行 // 成功返回resolve(), // 失败返回reject() }) promise.then(()=>{ console.log('成功调用') }).catch((
阅读全文
摘要:新ECMA代码执行描述 词法环境:一种规范类型,用于在词法嵌套结构中定义关联的变量、函数等标识符 环境记录 声明式环境记录 对象式环境记录 外部词法环境 Outer LexicalEnvironment和VariableEnvironment区别 LexicalEnvironment用于处理let/
阅读全文
摘要:apply function myApply(obj,args){ /* 1. this指向调用者 2. 使用隐式绑定 obj.fn = this 3. obj.fn() 4. 调用完以后删除fn */ // 确保obj是一个对象 obj = (obj null || obj undefined)
阅读全文
摘要:事件处理三种方案 元素上 el.onclick window.addEventListener(fn) 事件流 事件冒泡:默认情况下事件是从最内层往外传递的顺序,这个顺序就称为事件冒泡 事件捕获:从外层到内层,称为事件捕获。 事件流都监听 捕获阶段:1 目标阶段:2 冒泡阶段:3 /* eventP
阅读全文
摘要:声明对象方式 对象字面量 var obj1={ name:'xx', age:88, } new Object() var obj2 = new Object() obj2.name='xx' new 自定义类 function Person(){} var obj3 = new Person()
阅读全文