摘要:
操作符 算术运算符:+ 、- 、 * 、 / 、 %、++、-- 赋值运算符:= 、+=、-=、 *=、/=、%= 比较运算符:>、>=、<、<=、!=、==、 (全等,数据类型也会去比较) 逻辑运算符:&&(与)、||(或)、! (非) 流程控制 以下在进行判断的时候为假 0 null undef 阅读全文
摘要:
引言 在我们的前端日常工作中,无时无刻不在进行着变量的声明和赋值,你是否也曾碰到过变量声明报错或变量被污染的问题,如果你跟笔者一样碰到过,那么我们应该暂时停下来好好思考问题发生的原因以及如何采取相应的补救措施。当然排查问题最好的方式就是深入其底层细节,了解在JavaScript中的内存分配方式。只有 阅读全文
摘要:
高阶函数 高阶函数是对其他函数进行操作的函数,可以将它们作为参数或通过返回它们。简单来说,高阶函数是一个函数,它接收函数作为参数或将函数作为输出返回。 例如Array.prototype.map,Array.prototype.filter并且Array.prototype.reduce是一些高阶功 阅读全文
摘要:
闭包的实现原理和作用 1、闭包的概念:指有权访问另一个函数作用域中的变量的函数,一般情况就是在一个函数中包含另一个函数。 2、闭包的作用:访问函数内部变量、保持函数在环境中一直存在,不会被垃圾回收机制处理 因为函数内部声明 的变量是局部的,只能在函数内部访问到,但是函数外部的变量是对函数内部可见的, 阅读全文
摘要:
在js中,对象属于是键值对的集合 //例如 const obj = { name: '残梦', say:function(){ console.log('你好') } } 在上面这个代码中,name就属于是key,而‘残梦‘就是value 如何获取对象属性 第一种方式: .语法 student.na 阅读全文
摘要:
数组拷贝经常被误解,但这并不是因为拷贝过程本身,而是因为缺乏对 js 如何处理数组及其元素的理解。js 中的数组是可变的,这说明在创建数组之后还可以修改数组的内容。 这意味着要拷贝一个数组,咱们不能简单地将旧数组分配给一个新变量,它也是一个数组。如果这样做,它们将共享相同的引用,并且在更改一个变量之 阅读全文
摘要:
扩展字面量类型 当使用 const 关键字声明局部变量并使用字面量值初始化它时,TypeScript 将推断该变量的字面量类型: const stringLiteral = "https"; // Type "https" const numericLiteral = 42; // Type 42 阅读全文
摘要:
引子:表单数据的克隆 工作中我们需要用到对象或者数组的复制功能 提交的form表单,需要进行处理,例如将表单中的数组变成','连接的字符串,这个时候我们直接对原表单直接处理是不妥当的 那么问题来了,我该用什么方法去克隆这个含有数组的表单呢? 深克隆和浅克隆的区别 在解决上述问题之前,我们应该明确一点 阅读全文
摘要:
js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承)类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念。所以,要想实现继承,可以用js的原型prototype机制或者用apply和call方法去实现 在面向对象的语言中, 阅读全文
摘要:
1、For循环 var a = ‘Hi, my name\‘s Han Meimei, a SOFTWARE engineer‘; //for循环 function titleCase(s) { var i, ss = s.toLowerCase().split(/\s+/); for (i = 0 阅读全文
摘要:
我们要谈论的是什么? 在 JavaScript 中数据结构通常总是被忽略,或者接触得不多。但是对于许多大厂而言,一般都需要你深刻了解如何管理数据。掌握数据结构也能够在解决问题时为你的工作提供帮助。 在本文中,我们将要讨论并实现的数据结构是: 栈 队列 链表 哈希表 树 栈 第一个数据结构是栈。它与队 阅读全文
摘要:
本篇文章希望可以从JavaScript的技术的背景、原理和设计出发,把知识的内容呈现出来。这种形式适用于有体系和源流的知识,比较适合系统学习和理解。 JavaScript诞生与1995年,当时的主要目的之一是处理以前由服务器端语言(如Perl)负责的一些验证操作。在JavaScript之前,必须把表 阅读全文
摘要:
本文的内容比较硬核,我们一起来看下 JavaScript 全局变量的底层机制到底是怎样的。文章会涉及脚本作用域、全局对象等概念。 作用域 变量的 词法作用域 (简称 作用域 )是程序中可以访问它的区域。JavaScript 的作用域是静态的(在运行时不会改变),并可以嵌套——例如: function 阅读全文
摘要:
引言 作为一门强大的静态类型检查工具,如今在许多中大型应用程序以及流行的js库中均能看到TypeScript的身影。js作为一门弱类型语言,在我们写代码的过程中稍不留神便会修改掉变量的类型,从而导致一些出乎意料的运行时错误。然而TypeScript在编译过程中便能帮我们解决这个难题,不仅在JS中引入 阅读全文
摘要:
前言 1.高级 WEB 面试会让你手写一个Promise,Generator 的 PolyFill(一段代码); 2.在写之前我们简单回顾下他们的作用; 3.手写模块见PolyFill. 源码 源码地址请戳,原创码字不易,欢迎 star 如果觉得看文章太啰嗦,可以直接 git clone ,直接看代 阅读全文
摘要:
封装getScroll函数 1. 获取页面向上或者向左卷曲出去的距离的值 2. 浏览器的滚动事件 function getScroll() { return { left: window.pageXOffset || document.documentElement.scrollLeft || do 阅读全文
摘要:
1.获取当前时间 var myDate = new Date(); 2.获取时间中的年月日时分秒 myDate.getYear(); // 获取当前年份(2位) myDate.getFullYear(); // 获取完整的年份(4位,1970-????) myDate.getMonth(); // 阅读全文
摘要:
DOM 树 html 文档的骨干是标签。根据文档对象模型(DOM),每个html标签都是一个对象,同样标签内的文本也是一个对象。因此这些对象都可通过 JavaScript 操作如果文档中有空格(就像任何字符一样),那么它们将成为 DOM 中的文本节点,如果我们删除它们,则不会有任何内容。<head> 阅读全文
摘要:
1.关于indexedDB indexedDB用于在浏览器端存储大量的结构化数据。对比于其他的浏览器存储技术(cookie,localStorage),indexedDB具有以下优点: 1.存储空间特别大,远超cookie与localStorage; 2.可以通过索引实现高性能搜索; 3.所有操作完 阅读全文
摘要:
概述 一直以来都在函数式编程的大门之外徘徊,要入门的话首先得熟悉各种高阶函数,数组的reduce方法就是其中之一。 reduce方法将会对数组元素从左到右依次执行reducer函数,然后返回一个累计的值。举个形象的例子:你要组装一台电脑,买了主板、CPU、显卡、内存、硬盘、电源...这些零件是组装电 阅读全文