首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
js/ts
阳焰觅鱼
创建于2022-01-06
订阅专栏
js/ts
暂无订阅
共22篇文章
创建于2022-01-06
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
let和var
var的痛点 可重复声明 代码这样写不会报错 😱 变量提升 变量提升容易导致bug var没有块级作用域 例1 例2: 三次都打印3 相当于 let 作用域: 块级作用域 打印: 0, 1, 2 暂时
对象的属性
对象的属性 key为数字时数字 数字自动转字符串 key为Symbal时 key为对象时 对象会转字符串
连续赋值
连续赋值 相当于----------------------------------------------
js严格模式特点
开启严格模式 特点 全局变量必须先声明 禁止用with 创建eval作用域 禁止this指向window
设计模式
工厂模式 什么是工厂模式 应用 JQuery的$函数 React的createElement 单例模式 什么是单例模式 全局唯一的实力 Vuex redux 的 store 全局唯一的弹框 dialo
promise原理
Promsie 是一个类 new Promise(fn) fn必须是一个函数 new Promise(fn) new的时候fn立即执行 new Promise(fn) fn执行的时候接受resolve
weakMap
weakMap 特点: key只能是引用类型 无法被遍历 不会阻止垃圾回收 应用: 如果你的key全是引用类型, 且无需遍历, 就可以使用weekMap Map 特点: key可以是引用类型也可以是基
模块化
CommonJS 原理 例子: 求m的值 1.js index.js ES Module 符号绑定 ./counter.js 引入./counter.js 引入./counter.js commonJ
事件循环
浏览器和 nodejs 事件循环的区别 浏览器 执行 JS 同步代码(异步函数,分别放在 macroTaskQueue 和 microTaskQueue ) DOM 结构渲染(此时还没有在页面显示,但
TS工具类型
Partial 将全部属性变成可选项 Required 将全部属性变为必选项 Readonly 所有属性只能读不能修改 Pick 提取部分属性 Omit 去掉一些属性 Exclude/Extract
type区别 interface
范围不同 范围不同:type适用于基本类型,interface一般不行。 扩展方式 interface可以 重复 声明用来扩展,type一个类型只能声明 一次 命名方式: interface会创建新的
any/unknown/never区别
any VS unknow 二者都是顶级类型(top type),任何类型的值都可以赋值给顶级类型变量: 但是 unknown 比 any 的类型检查更严格,any 什么检查都不做,unknown 要
原型链
通过原型和构造器 如何在es6中实现继承 例一: 一个页面的脚本如下,请问会打印出什么内容?为什么? 答案: 会报错 因为普通对象实例是没有prototype这个属性的,也就是说普通对象的protot
立即执行函数
类库封装最重要的要求就是不能让类库中的变量污染全局。 比如jQuery只暴露 $ 就好了 写法一 写法二
this
普通函数 对象属性 构造函数与Class call、apply、bind方法中 严格模式下this 函数外指向window 函数中是undefined 箭头函数 Dom事件 在Dom事件会回调里,th
作用域
```mermaid graph TD 作用域 --> 动态作用域 作用域 --> 静态作用域 静态作用域 --> 词法作用域 --> 函数作用域 词法作用域 --> 块级作用域 动态作用域 -->
let&var
变量提升 变量提升让我们的代码变得丑陋 暂时性死区 块级作用域 用var声明的变量没有块级作用域 上面代码等同于下面写法,带来全局污染 用let声明的变量有块级作用域避免了全局污染 实际应用: 循环陷
循环陷阱
原因是由创建的函数引用外部变量形成闭包。所有的新创建的函数引用的都是同一个变量。而在调用函数时变量又都 循环内加入即时函数 由于即时函数的参数为实参复制关系,相当于复制的现场快照
闭包
闭包特点 外部函数(作用域) + 内部函数 内部函数调用了外部函数的变量 闭包的应用 惰性函数 函数可里化 循环陷阱 类库封装 打包webpack
判断数据类型
原始数据类型 表示空:Undefined,Null 基础三大件:Number,String,Boolean 两个新类型:Symbol,BigInt 列举几种引用对象: 普通对象 Object 数组对象
下一页