JS进阶0301

循环引用 循环引用会造成无法进行垃圾回收 function f() { var o1 = {}; var o2 = {}; o1.P = O2; // O1 引用 o2 o2.p = o1; // o2 引用 o1. 这就造成循环引用 } f(); 标记-清除算法 通过根变量是否可达,来判断是否为激活状态 解决了循环引用无法回收的问题,通过判断根变量是否可达来决定是否

- 阅读全文 -

TypeScript学习笔记

TypeScript 入门命令 npm i typescipt -g tsc src_file.ts 声明和类型 let a:number; a=12; a='12';//报错 let b=123; b='123';//报错 会自动赋值类型 //函数 function sum(a:number,b:number):number{ return a+b; } let c:11;//字面

- 阅读全文 -

语法糖

在不改变原有的功能的前提下,优化了代码的结构,代码的运行更加的流畅,代码的书写更加的优美。妄自菲薄的下的给的定义

- 阅读全文 -

for循环我不知道的事情

for循环中,定义的东西,居然是赋值到了所出的作用域内for( var i=0 ; i<1 ; i++ ){ var a=0; } console.log(i) // 1 console.log(a) // 0 /* *不会报错,而是可以直接输出 */知道和理解完全是两回事,知道是我知道ES6之前,只有全局作用域和函数作用域,而我一直没有去理解它现在终于明白了,理解了,知道为什么ES

- 阅读全文 -

严格模式

有时候,相同的代码,严格模式可以比非严格模式下运行的更快。严格模式下修复了JavaScript引擎难以执行的缺陷严格模式下不能再意外的创建全局变量 所以这样子的情况将会报错 "use strict"; a=1; //ReferenceError: a is not defined严格模式下,一些在非严格模式下的[错误而不报错的错误操作]将会抛出错误 "use strict"; NaN

- 阅读全文 -

JS实现深拷贝

//深拷贝的实现方法,不支持函数 let arr=[0,1,2,{a:"a",b:"b",c:"c"}]; let arr2=clone(arr); function clone(obj){ let objType=checkType(obj); let temp; if( objType==="Array" ){ temp=[]; }else if( objType=

- 阅读全文 -