随笔分类 - JS
摘要:JavaScript 引入 Promise 的动机 消灭嵌套调用和多次错误处理
阅读全文
摘要:JavaScript 是什么类型的语言 JavaScript 是一种弱类型的、动态的语言。那这些特点意味着什么呢? 弱类型:支持隐式类型转换的语言称为弱类型语言,不支持隐式类型转换的语言称为强类型语言。意味着你不需要告诉 JavaScript 引擎这个或那个变量是什么数据类型,JavaScript
阅读全文
摘要:发布-订阅模型 API 设计思路 发布-订阅模式中有两个关键的动作:事件的监听(订阅)和事件的触发(发布),这两个动作自然而然地对应着两个基本的 API 方法。 on():负责注册事件的监听器,指定事件触发时的回调函数。 emit():负责触发事件,可以通过传参使其在触发的时候携带数据 。 最后,只
阅读全文
摘要:一、CommonJS commonJS用同步的方式加载模块。在服务端,模块文件都存在本地磁盘,读取非常快,所以这样做不会有问题。但是在浏览器端,限于网络原因,更合理的方案是使用异步加载。 用module.exports定义当前模块对外输出的接口,用require加载模块。 // 定义模块math.j
阅读全文
摘要:TS优势 更好的错误的提示,开发中及时发现问题; 编辑器语法提示更完善; 类型声明可以看出数据结构的语义,可读性更好; TS环境搭建 1.安装node; 2.npm install typescript@3.6.4 -g; 因为ts文件不能直接在浏览器和node环境中运行,此时需要用运行:tsc x
阅读全文
摘要:垃圾回收策略一般分为手动回收和自动回收,java python JavaScript等高级预言为了减轻程序员负担和出错概率采用了自动回收策略。 JavaScript的原始类型数据和引用数据是分别存储在栈和椎中的,由于栈和堆分配空间大小差异,垃圾回收方式也不一样。栈中分配空间通过ESP的向下移动销毁保
阅读全文
摘要:```//冒泡bubblefunction bubbleSort(arr) { let l = arr.length; for (let i = 0; i arr[j + 1]) { [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]] } } } return arr;}//插入insertfunction insertS...
阅读全文
摘要:```Array.prototype.customMap = function (fn) { let newArr = []; for (let i = 0, l = this.length; i 0) { t = this[i]; this[i] = this[j]; this[j] = t; } } }}Array.protot...
阅读全文
摘要:new 操作符做了什么? 1.创建一个空对象: 2.将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象)同时新对象还继承了函数的原型。 3.执行构造函数中的代码(为这个新对象添加属性)。 4.返回新对象 var o=new Object()的伪代码
阅读全文
摘要:斐波那契数,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。 常用的计算斐波那契
阅读全文
摘要:规则 所有的引用类型(数组、对象、函数) ,都具有对象特性,即可自由扩展属性(除了"null"意外)。 所有的引用类型(数组、对象、函数) , 都有一个_proto_ 属性,属性值是一个普通的对象。 所有的函数,都有一个prototype属性,属性值也是一个普通的对象。 所有的引用类型(数组、对象、
阅读全文
摘要:JS中变量会预解析,所谓的预解析就是:在当前作用域中,JavaScript代码执行之前,浏览器首先会默认的把所有带var和function声明的变量进行提前的声明或者定义。 编译前: 编译后可看做: 一、变量声明的提升是以变量所处的第一层词法作用域为“单位”的,即全局作用域中声明的变量会提升至全局最
阅读全文
摘要:一、JSON的2个重要方法:JSON.stringify(),JSON.parse() 二、简写 key 和vuale一样时可以简写 let name="lizhao"; let myJson={name}//等效与 let myJson={name:name} let name="lizhao";
阅读全文
摘要:一、let const var有缺陷:有块级作用域、能重复定义、无法限制修改。所以出来了let和const. 有块级作用域,不能重复定义 const不能修改,必须定义的时候赋值 二、解构赋值 1.左右两边结构必须一样 2.右边必须是个合法东西 3.声明和赋值不能分开 三、字符串扩展 1.字符串模板
阅读全文
摘要:控制台的打印结果是什么?答案是:false。 接下来看解析: 原始值的比较是值的比较: 它们的值相等时它们就相等(==) 它们的值和类型都相等时它们就恒等( )。 对象和原始值不同,对象的比较并非值的比较,而是引用的比较: 即使两个对象包含同样的属性及相同的值,它们也是不相等的 即使两个数组各个索引
阅读全文
摘要:本文介绍了移动端适配的3种方法,以及移动端图片模糊问题和1px细线问题的解决方法。当然了,在这之前先整理了与这些方法相关的知识:物理像素、设备独立像素、设备像素比和viewport。 >>>>物理像素、设备独立像素和设备像素比 在CSS中我们一般使用px作为单位,需要注意的是,CSS样式里面的px和
阅读全文
摘要:二元加法运算符“+”可以对两个数字做加法,也可以做字符串连接操作: 当两个操作数都是数字或都是字符串的时候,计算结果是显而易见的。然而对于其他情况来说,则要进行一些必要的类型转换,并且运算符的行为依赖于类型转换的结果。加号的转换规则优先考虑字符串连接,如果其中一个操作数是字符串或者转换为字符串的对象
阅读全文
摘要:一、 js没有块级作用域(可以自己闭包或其他方法实现),只有函数级作用域,函数外面的变量函数里面可以找到,函数里面的变量外面找不到。 程序执行过程: step-1:调用 fn1() step-2:执行fn1(),声明局部变量a=2 ;调用 fn() step-3:执行fn(),fn()中的a是全局变
阅读全文
摘要:隐式创建 直接实例化 创建数组并给数组元素赋值 注意:
阅读全文