随笔分类 -  javascript

上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页
摘要:前言 "use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。 至今,前端 er 们基本都默认开启严格模式敲代码。 那么,你知道 Typescript 其实也有属于自己的严格模式吗? 1. Typescript 严格模式规则 当 Typescript  阅读全文
posted @ 2020-12-10 12:59 笑人
摘要:递归和闭包作为js中很重要的一环,几乎在前端的面试中都会涉及,特别闭包。今天前端组的组长冷不丁的问了我一下,粗略的回答了一下,感觉不太满足,于是重新学习了一下,写下本篇。 在说这个两个概念之前,我们先回顾一下函数表达式。 function实际上是一种引用对象,和其他引用类型一样,都有属性和方法。定义 阅读全文
posted @ 2020-12-10 12:57 笑人
摘要:JavaScript回调函数是成为一名成功的 JavaScript 开发人员必须要了解的一个重要概念。但是我相信,在阅读本文之后,你将能够克服以前使用回调方法遇到的所有障碍。 在开始之前,首先要确保我们对函数的理解是扎实的。 快速回顾:JavaScript 函数 什么是函数? 函数是在其中有一组代码 阅读全文
posted @ 2020-12-10 12:53 笑人
摘要:背景 JavaScript中,数组的遍历我们肯定都不陌生,最常见的两个便是forEach 和 map。 (当然还有别的譬如for, for in, for of, reduce, filter, every, some, ...) 之所以几天要写这个, 是因为前几天写代码的时候犯了一个低级且愚蠢的错 阅读全文
posted @ 2020-12-10 12:50 笑人 阅读(1082) 评论(0) 推荐(0)
摘要:为什么有深复制、浅复制? JavaScript中有两种数据类型,基本数据类型如undefined、null、boolean、number、string,另一类是Object。简单数据类型只存储在内存中的栈区,复制的时候是值传递给新的索引。而复杂数据类型由栈区和堆区共同储存,栈区执行同样的操作,只是把 阅读全文
posted @ 2020-12-10 12:48 笑人
摘要:0.前言 记得当年面试的时候,面试官问我,前端怎么做权限控制,咱也不太会这个,只能尴尬回答道:“都是老大搭的架子,我只负责写业务模块代码”。如今自己也做了很多项目了,觉得有必有对前端权限控制做一个总结。 前端权限控制一直是前端必须掌握的一个知识点,一般来说稍微正规一点的后台系统肯定有权限控制。当然还 阅读全文
posted @ 2020-12-10 12:46 笑人
摘要:在编写js代码的过程中,运用一定的设计模式可以让我们的代码更加优雅、灵活。 下面笔者就结合诸如redux的subscribe、ES6的class、vue里面的$dispatch、jquery里面的on/off来给大家简单介绍下设计模式在这些库、语法和框架中的使用。 设计模式解决的问题 设计模式并不是 阅读全文
posted @ 2020-12-10 12:41 笑人
摘要:引语 最近一段时间在重温ES6,Promise应该是是ES6新特性中非常重要的一部分内容。其实Promise在我日常开发中已经用得比较多,但大多数时候只是知道Promise可以用来实现异步编程,也只限于单纯地会用罢了,并没有时间深入去学习过,而且网上得资料大多都比较琐碎。我就自己花时间做了一个关于P 阅读全文
posted @ 2020-12-10 12:38 笑人
摘要:引子 几乎在每一本js相关的书籍中,都会说js是单线程的,JS是通过事件队列(Event Loop)的方式来实现异步回调的。 对很多初学JS的人来说,根本搞不清楚单线程的JS为什么拥有异步的能力,所以,我试图从进程、线程的角度来解释这个问题。 CPU 说到CPU和进程、线程,对计算机操作系统有过学习 阅读全文
posted @ 2020-12-10 12:32 笑人
摘要:介绍 为了让程序有价值,我们需要能够处理最简单的数据单元:数字,字符串,结构体,布尔值等。 TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。 布尔值 最基本的数据类型就是简单的true/false值,在JavaScript和TypeScrip 阅读全文
posted @ 2020-12-10 12:30 笑人
摘要:什么是 TypeScript 官方网站的定义是:TypeScript 是 js 类型的超集。它假设咱们知道什么是超集,什么是类型化。为了简单起见,你可以将 TypeScript 看作是 JavaScript 之上的一个外壳。 TypeScript 是一个外壳,因为编写 TypeScript 的代码, 阅读全文
posted @ 2020-12-10 12:27 笑人
摘要:操作符 算术运算符:+ 、- 、 * 、 / 、 %、++、-- 赋值运算符:= 、+=、-=、 *=、/=、%= 比较运算符:>、>=、<、<=、!=、==、 (全等,数据类型也会去比较) 逻辑运算符:&&(与)、||(或)、! (非) 流程控制 以下在进行判断的时候为假 0 null undef 阅读全文
posted @ 2020-12-07 14:15 笑人
摘要:引言 在我们的前端日常工作中,无时无刻不在进行着变量的声明和赋值,你是否也曾碰到过变量声明报错或变量被污染的问题,如果你跟笔者一样碰到过,那么我们应该暂时停下来好好思考问题发生的原因以及如何采取相应的补救措施。当然排查问题最好的方式就是深入其底层细节,了解在JavaScript中的内存分配方式。只有 阅读全文
posted @ 2020-12-07 14:13 笑人
摘要:高阶函数 高阶函数是对其他函数进行操作的函数,可以将它们作为参数或通过返回它们。简单来说,高阶函数是一个函数,它接收函数作为参数或将函数作为输出返回。 例如Array.prototype.map,Array.prototype.filter并且Array.prototype.reduce是一些高阶功 阅读全文
posted @ 2020-12-07 14:11 笑人
摘要:闭包的实现原理和作用 1、闭包的概念:指有权访问另一个函数作用域中的变量的函数,一般情况就是在一个函数中包含另一个函数。 2、闭包的作用:访问函数内部变量、保持函数在环境中一直存在,不会被垃圾回收机制处理 因为函数内部声明 的变量是局部的,只能在函数内部访问到,但是函数外部的变量是对函数内部可见的, 阅读全文
posted @ 2020-12-07 14:09 笑人
摘要:在js中,对象属于是键值对的集合 //例如 const obj = { name: '残梦', say:function(){ console.log('你好') } } 在上面这个代码中,name就属于是key,而‘残梦‘就是value 如何获取对象属性 第一种方式: .语法 student.na 阅读全文
posted @ 2020-12-07 14:07 笑人
摘要:数组拷贝经常被误解,但这并不是因为拷贝过程本身,而是因为缺乏对 js 如何处理数组及其元素的理解。js 中的数组是可变的,这说明在创建数组之后还可以修改数组的内容。 这意味着要拷贝一个数组,咱们不能简单地将旧数组分配给一个新变量,它也是一个数组。如果这样做,它们将共享相同的引用,并且在更改一个变量之 阅读全文
posted @ 2020-12-07 14:05 笑人
摘要:扩展字面量类型 当使用 const 关键字声明局部变量并使用字面量值初始化它时,TypeScript 将推断该变量的字面量类型: const stringLiteral = "https"; // Type "https" const numericLiteral = 42; // Type 42 阅读全文
posted @ 2020-12-07 14:01 笑人
摘要:引子:表单数据的克隆 工作中我们需要用到对象或者数组的复制功能 提交的form表单,需要进行处理,例如将表单中的数组变成','连接的字符串,这个时候我们直接对原表单直接处理是不妥当的 那么问题来了,我该用什么方法去克隆这个含有数组的表单呢? 深克隆和浅克隆的区别 在解决上述问题之前,我们应该明确一点 阅读全文
posted @ 2020-12-07 13:55 笑人
摘要:js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承)类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念。所以,要想实现继承,可以用js的原型prototype机制或者用apply和call方法去实现 在面向对象的语言中, 阅读全文
posted @ 2020-12-07 13:50 笑人

上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页