摘要:
 阅读全文
2022年2月12日 #
摘要:
背景 在不同的环境下面,js获取获取全局对象的变量名不一样 在浏览器中: 在node中: 解决方案 阅读全文
摘要:
以前的处理方式 首先如果直接打印info.friend.girlFriend.name这个是会报错的,因为info.friend是undefined,然后undefined.girlFriend,这个就是会直接报错 所以后来采用了if条件判断语句,只要这个info如果有值就是继续往后看这个info. 阅读全文
摘要:
相同 从某程度上说,map就是可以堪称key的扩展 或这个说map是更加广义的对象 不同 对象的key值只能是 字符串和Symbol map的key值,可以是任何类型的变量 阅读全文
摘要:
为什么打印的结果是{'[object. object]':"bbb"} 首先需要明白一点,对象是不能作用key 在js中,能够作为key只有两种: 字符串 和 symbol 所以即使我们创建两个不同的对象作为key,js会把这个对象先转换成字符串,而这两个对象转换成的字符串是一样的,所以后面的bbb 阅读全文
摘要:
我们平常创建的引用类型的变量,一般来说都是强引用,也就是图中橙色部分的线 弱引用,一般都是带有明显的创建提示 最大的区别,就是垃圾回收器的回收机制不同:强引用,只要有东西指着这个就是一定不会回收;弱引用,如果只有一个弱引用指着这个对象,那么垃圾回收器仍然会回收这个对象. 阅读全文
摘要:
使用集合给数组去重 Array.from() 展开运算符 阅读全文
2022年2月11日 #
摘要:
liDom是已经查找到的元素,那么如何在这个基础之后再次进行查找 使用find()函数 阅读全文
摘要:
打开调试控制谈,然后输入一个$符号,如果有函数返回,那么这个网页就是用了jQuery. 如果还不放心,那么就是使用jQuery选择器,选择一下试试就是知道了. 阅读全文
摘要:
有何区别 如果是做普通前端项目,package.json 里面的依赖包作为开发依赖和生产依赖基本没啥区别;如果项目是做 npm 包或者 node 服务的,会有些许差别。 开发依赖 npm -i xxx --save--dev 执行操作后,package.json 里 devdependencies 阅读全文
摘要:
1. concat(),不改变原数组 arr1.concat(arr2) 连接两个或多个数组,返回一个新的数组 const arr1 = [1, 2, 3] const arr2 = [4, 5] const newArr = arr1.concat(arr2) console.log(newArr 阅读全文
摘要:
什么是内网穿透 内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。下面就相互通信的主机在网络中与 NAT 设备的相对位置介绍内网穿透方法。 UDP 内网穿透的实质是利用路由器上的NAT 系统。NAT 是一 阅读全文
摘要:
 阅读全文
摘要:
直接创建两个相同的symbol 通过一个已有的symbol,创建一个相同的symbol 阅读全文
摘要:
 阅读全文
摘要:
 阅读全文
摘要:
es5及之前给参数默认值 采用了一个逻辑或的形式 m如果没值,那么就是还要继续往后看,也就是将aaa赋值给m; m如果有值,那么就是不在继续往后看了,直接就是其中的值赋值给自己 n也是同理 es6及其之后 直接在函数的形参处进行赋值即可 阅读全文
摘要:
 阅读全文
摘要:
优先使用const,当你不确定这个东西以后要不要修改,那么就是优先使用const,等到你真的需要修改的时候,在将这个const改成let 如果一开始确定这个变量会被修改,那么就是使用let 阅读全文
摘要:
什么是 TDZ Temporal Dead Zone(TDZ) 是 ES6(ES2015) 中对作用域新的专用语义。 let/const 和 var 的区别 es6之前 在 ES6 之前,JS 的 scope 只有两种,全局作用域和函数作用域, es6之后 在 ES6 种出现了块级作用域,即使用 l 阅读全文
2022年2月10日 #
摘要:
在for循环中使用异步请求其实是件非常危险的事情,很有可能造成系统卡死 我们以为这些函数是顺序执行的,就是一个执行完,在执行下一个,但是因为是异步函数,很有可能会出现同时执行的情况,从而造成系统的卡死. 阅读全文
摘要:
比较清晰的写法,成功,resolve调用then里面的回调 失败,reject,调用catch里面的回调 虽然说,这个then里面,可以写两个回调,一个成功的回调,一个失败的回调,但是采用上面的写法,就是比较清晰的写法 阅读全文
摘要:
 阅读全文
摘要:
通过key value的形式,将相关的数据封装成一个对象 我以前都是直接打印各个数据,这样的数据就是很分散,采用这种方式组合的数据,就是比较集中 阅读全文
摘要:
原始的request请求 request封装成promise形式 封装 使用 阅读全文
摘要:
 阅读全文
摘要:
普通for循环中,不能使用 很明显,i++在某种程度上面修改这个i的值,所以不能使用 for...of...的循环,可以使用 这个类似一个地址值,地址值不变,改变的是地址里面的东西 类似const定义的对象是可以修改的 阅读全文
2022年2月9日 #
摘要:
块级作用域的作用范围 对var关键字是无效的 对let/const/function/class关键字是有效的 function的特殊说明 浏览器为了兼容es5的代码,所以这个function关键字是不受这个块级作用域限制的 if语句 if语句的大括号本质上就是个块级作用域 for循环 for循环的 阅读全文
摘要:
var关键字定义的变量名是可以重复定义的 let/const定义的变量名是不可以重复定义的 阅读全文
摘要:
获取数据属性data-*中的数据 获取所有的数据 获取特定key值的数据 阅读全文
摘要:
Property 固有属性 来自于原型链,所有 HTML 元素,都是 HTMLElemenet 的实例,HTMLElement 再往上走,就是 Element,再往上走就是 Node,每一级原型都有属性 浏览器默认给html标签绑定的属性 通过 对象.属性名 这样方式来设置和获取值 比如 title 阅读全文
2022年2月6日 #
摘要:
加载html文本 解析文本 选择器的使用和jquery的使用是一样的 选择器的第一个参数是在第二个参数里面的再次进行选择,等价于下面的代码 总结 阅读全文
摘要:
 阅读全文
2022年1月29日 #
摘要:
重新命名 解构一个对象的时候可以采用key-value的形式,给对象中的元素进行重新命名 阅读全文
摘要:
为什么剩余的元素是个数组 这个可以类比,函数的剩余参数,函数的剩余参数就是一个数组 阅读全文
2022年1月27日 #
摘要:
计算属性名 好处是可以动态的决定这个属性名,可以引入变量 可以将字符串拼接起来,作为属性名 阅读全文
摘要:
属性访问的两种方法 属性访问 .a 语法通常被称为 "属性访问" 键值访问 ["a"] 语法通常被称为 "键值访问" 阅读全文
摘要:
属性简写 如果这个变量在前面已经声明过,那么在属性里面就是可以直接写这个属性名也就是key,不需要以前的那种key-value形式的结构 普通函数简写 以前是也是key-value结构,现在就是直接写成,就是把函数名和函数糅合在一起的写法 箭头函数简写 箭头函数没有简写 总结 阅读全文
2022年1月26日 #
摘要:
多态的理解 首先JavaScript的多态和其他语言中的多态不一样,没有那几个必要条件 比如说,下面的例子,不同的对象调用同一个函数,然后最终调用的方法也是不一样的. 阅读全文