JavaScript 学习笔记
带你学真正的JS
eswang
这个作者很懒,什么都没留下…
展开
-
yarn yarn2 and pnpm的一些总结
之前做的组内分享,内容不说多丰富,也是精挑细选后总结的不少东西。前言yarn以及pnpm都是包管理工具的第三方解决方案,他们各自诞生的时代都是看到了npm本身的不足,如yarn最开始的版本针对的是npm3默认没有lockfile的问题,pnpm的作者则是对yarn没有针对node_modules进行太多优化的问题,然后通过自己的方式去解决这些不足。而yarn2(berry),以下统称berry,则是与yarn1的思路完全不同,抹去了node_modules的存在,目前还未发布正式版本。但相关文档已经占据原创 2020-06-26 00:41:03 · 3936 阅读 · 0 评论 -
一脸懵逼的毕业设计--tensorflow.js
前言又到了被催进度的时候,然而自己的进度却是一片空白,之前应付了一周的开题现在发现有很多地方根本就不合理,导师自然不能帮到你什么,所以一切到头来还是要自己去折腾。内容说实话要是都和Three.js相关的内容其实还好做,偏偏里面还涉及启发式算法和神经网络拟合的问题,这就很麻爪了,而且还不知道到底要不要上神经网络。目前的问题主要有三大块,首先就是博弈支付矩阵的建立。...原创 2020-04-11 00:46:55 · 774 阅读 · 0 评论 -
渲染进程,作用域链,执行上下文,setState,JSON.parse
什么时候多页面共用一个渲染进程同站的页面会公用一个渲染进程,仅当从一个站点打开另一个同站站点时生效。如果打开两个同站标签,还是会用两个渲染进程。正确理解作用域链function bar() { console.log(myName)} function foo() { var myName = "foo"; bar()} var myName = "all" f...原创 2020-03-28 11:10:43 · 184 阅读 · 0 评论 -
总结一下最近遇到的面试题(下)
44. CSS动画和JS动画css动画相对于优一些,css动画通过GUI解析;js动画需要经过js引擎代码解析,然后再进行GUI解析渲染。如果需要大量操作动画,使用JS。从编写难度来看,CSS要简单整洁许多。45. XSS与CSRF跨站脚本攻击(XSS)输入恶意脚本代码输入恶意GET请求参数通过对用户输入转义;设置httpOnly;利用浏览器安全策略(CSP)等跨站请求伪...原创 2020-03-10 23:18:54 · 649 阅读 · 0 评论 -
总结一下最近遇到的面试题(中)
24. this指向直接拿头条大佬给的题目说话了:var name = 'window'var bar = {name:'bar'}var foo = { name: 'foo', say2:()=>{console.log(this.name)}, say3:function(){ return function (){ console.log(th...原创 2020-03-10 23:17:31 · 385 阅读 · 0 评论 -
总结一下最近遇到的面试题(上)
1.怎么理解H5语义化用正确的标签做正确的事,方便我们开发时阅读以及文档式的阅读。有利于搜索引擎的解析和网站的SEO。归根结底还是让程序或者机器去理解网页,也能更好的让人去理解网页。2. H5与H4的区别文件类型声明不同,H5是标准不同,H4基于SGML,H5有自己的标准新增语义化标签,废除一些其他标签新增audio和video两个音频视频标签支持新增表单属性script...原创 2020-03-10 23:16:39 · 242 阅读 · 0 评论 -
简单过过JavaScript设计模式(下)
前言最近为了快点达到6级拿自定义域名,还是分开写。。。适配器模式主要是为了抹平差异而存在的,是一种相对简单单一的设计模式,所以举个简单的????let baidu = {show(){console.log('baidu')}}let google = {display(){console.log('display')}}let googleAdapter = {show(){return ...原创 2020-02-20 16:50:09 · 152 阅读 · 0 评论 -
简单过过Javascript设计模式(上)
前言设计模式可不是几篇文章能够说明白的,这篇文章也是我的学习笔记吧。构造器模式最简单的设计模式,其实就是我们常见的:function User(name, age) { this.name = name; this.age = age}let a = new User('asen', 12)在使用构造器模式的时候,我们本质上是去抽象了每个对象实例的变与不变,对于上面代码,不...原创 2020-02-20 00:55:31 · 173 阅读 · 0 评论 -
一文看懂JSON的stringify与parse
前言深拷贝最常见的使用方式就是JSON.parse(JSON.stringify()),在Immutable之前,我们处理Redux中的数据也多用这种方式。误区首先写个代码:let a = {a:2,b:function(){},c:undefined,d:Symbol(1)}undefineda{a: 2, c: undefined, d: Symbol(1), b: ƒ}JSO...原创 2020-02-18 17:10:46 · 367 阅读 · 0 评论 -
一段代码帮你巩固JS事件循环
前言标题党了一点,但是不耽误你巩固事件循环。注意是巩固,本文有几点易混的地方,不适合对事件循环一点都不懂的新手。警告????????????: 看完你可能更糊涂,不过这也达到了我的效果代码function test(){ console.log(0); setTimeout(function() { console.log(1); async function asyn...原创 2020-02-17 18:55:25 · 262 阅读 · 0 评论 -
一文看懂JS异步编程(generator与async、await)
前言generator作为ES6中顶尖的难懂的东西,在我们日常开发的出镜率其实也挺高的,除去redux-saga不说,基于generator封装的async和await也是我们开发中的重要利器。generator...原创 2020-02-17 12:15:42 · 645 阅读 · 0 评论 -
一文看懂全能的reduce
前言关于数组的遍历方法,我们使用最多的应该就是forEach和map了,一些人可能知道这两个方法除去性能差别,最大的不同就是返回值还是原数组修改的问题,但是对更多的数组方法可能并不是很了解,fliter和some, every等方法这里就不讲了,他们的使用方式都比较好理解,这篇文章主要讲讲最麻烦的reduce。累加先来看看最简单的用法,也是很多实例中使用的累加器手法:> let a ...原创 2020-02-16 22:07:53 · 448 阅读 · 0 评论 -
babel学习日记
前言关于Babel,个人了解的并不是太多,用到的地方却是不少。webpack离不开Babel,很多UI库的按需加载也需要Babel,今天就来简单的学习一下。准备首先建一个文件夹,初始话环境,加入下面两个依赖和一个脚本:{ "scripts": { "build": "babel src -d build" }, "dependencies": { "@babel...原创 2020-02-15 17:40:34 · 164 阅读 · 0 评论 -
手写一个Promise(4)
前言最后一篇,说说除了then之外的Resolve和Reject实现了前面的then后,这两个方法就很简答了。 static resolve(value) { return new Eswang((resolve, reject) => { if (value instanceof Eswang) { value.then(resolve, re...原创 2020-02-15 00:08:22 · 187 阅读 · 0 评论 -
手写一个Promise(3)
前言then还没有写好。。。then链式异常then的链式处理我们要对reject做一定的修改。 if (this.status === Eswang.FUFILLED) { setTimeout(() => { try { let result = onFufilled(this.val); ...原创 2020-02-14 23:32:38 · 142 阅读 · 0 评论 -
手写一个Promise(2)
前言上次修改then改了一半。。Pending处理我们回到上次的then代码,这个过程还有一个很明显的漏洞,如果我们在创建Promise时传了一个setTimeout,因为then方法是同步执行的,所以: let p = new Eswang((res, rej) => { setTimeout(() => { res("res")...原创 2020-02-14 21:30:41 · 139 阅读 · 0 评论 -
手写一个Promise(1)
前言Promise作为目前最受欢迎的JS异步编程解决方案,重要性不言而喻,今天就来实现一个自己的Promise。声明类与构造函数首先声明类,添加几个静态属性代表Promise的状态:class Eswang { static PENDING = "pending"; static FUFILLED = "fufillied"; static REJECTED = "reject...原创 2020-02-14 18:42:07 · 191 阅读 · 0 评论 -
六个初级前端要掌握的手写
前言回调函数为什么会丢失this,因为回调时的传参某种程度上也是一种隐式赋值,因此会造成隐式丢失的情况。防抖const debouce = (fn, delay) => { let timer = null return (...args) => { clearTimeout(timer) timer = setTimeout(() => { ...原创 2020-02-13 00:52:08 · 328 阅读 · 0 评论 -
一文看懂JS中的继承
前言看懂这篇文章需要你至少了解原型链的原理。直接举例子,先定义一个Person,再定义一个Man:function Person(name){ this.name = name; this.species='person' this.have = [1,2,3,4]}Person.prototype.hello = () => { console.log('per...原创 2020-02-12 16:42:10 · 223 阅读 · 0 评论 -
一文看懂JS异步编程(Promise)
前言原创 2020-02-12 00:53:16 · 1416 阅读 · 0 评论 -
一文带你看懂简单的Js-Web-Api编程
前言即使是这个时代,你不了解BOM,DOM和事件监听仍然是不行的。BOM浏览器对象模型,现在需要我们直接操作BOM的机会并不是很多了,除了可以判断客户端类型,路由跳转之外我没有在实际的开发中用过太多的BOM API,当然也不能这么说,要说直接操作的话,DOM我更是没怎么用过。如Chrome中调用navigatornavigator.userAgent"Mozilla/5.0 (Wind...原创 2020-01-21 20:39:54 · 1784 阅读 · 1 评论 -
关于JS中的new的几点说明
前言有一说一,当你对原型掌握的懵懵懂懂,却又妄图掌握的清清楚楚的时候,你会发现即使一个new操作符,你都不是那么明白。开门见山直接贴例子了:function Test(name) { this.name = name; let nick = name; return nick;}Test.prototype.sayName = function () { conso...原创 2020-01-16 17:45:06 · 337 阅读 · 0 评论 -
一文带你看懂ES6中的Set,Map,Symbol
前言随着2020年的带来,JS基本类型也增加到了7种,Bigint这个玩意说起来也挺好理解的,再加上undefined, null, string, number, boolean,相对于引用类型,都是比较好明白的。哎等会,好像少了一个,Symbol这个ES6新增的东西到底有啥用呢?你在开发中用过么对于还没接触工作,各种玩具工作,抄人代码的我来说,Symbol这玩意我真没用过。看看它同时代的...原创 2020-01-16 17:02:45 · 1594 阅读 · 2 评论 -
一文看懂JS的强拷贝和深拷贝
前言有些易混的点确实需要拿出来好好数落一下。拷贝就是一个必须要盘点的问题。应用首先看看啥时候会用到拷贝。简单地说,拷贝可以说是无处不在,甚至我们最熟悉的圆形操作都是在不断地拷贝。更实际一点,拿React来说,如果你对拷贝理解不清的话,类组件形式的React你是没法写的,虽说函数组件出现之后这种情况好了许多,但是Redux这个东西你还是逃不了的,不了解拷贝你甚至都看不懂Redux的写法。在这...原创 2020-01-14 11:35:21 · 785 阅读 · 0 评论 -
JS 中一个理解闭包的很好的例子
前言今天刷红宝书看到了闭包,凭着再掘金摸爬滚打几个月的经历,一路踏过正则,原型,对象继承,终于还是在这里卡壳了。注:本文参考自Javascript高级编程及思否提问,死否文章。例子关于闭包有个很典型的例子:function createFunctions() { var result = new Array(); for (var i = 0; i < 10; i++) ...原创 2020-01-11 23:36:44 · 167 阅读 · 0 评论 -
一文看懂JS的垃圾收集系统
前言关于JS的垃圾收集系统,我们很多人可能知道他是具有自动收集的机制,但是可能并没有深入了解,或者怀疑了解这玩意到底有什么好处。自动垃圾收集自动垃圾收集指的是执行环境会负责管理代码执行过程中所使用的内存,在C中手动跟踪内存使用是开发人员的一项基本任务,JS虽说实现了自动内存管理,但是并不意味着这种管理机制很复杂,相反其实很简单,JS中的垃圾收集器会按照固定的时间间隔取搜寻那些不在使用的变量...原创 2020-01-10 23:05:42 · 262 阅读 · 0 评论 -
9道简单的JS面试选择题(this等)
前言虽然因为时间原因估计年前来不及找实习了,但是通过面试题来搞清楚一些基本概念的方法,查漏补缺的手段,确实是非常有效的。今天就分享一套看过的简单选择题,都是JS的基础,东西其实不多,但是做对就有些难度了。JS七种基本类型这个问题大家看到可能会一蒙,JS基本类型有几种这个问题,其实一直是在变的,S6加了个Symbol,而今年ES10又新增加了一个bigInt,加上原来的基本类型undefine...原创 2019-12-18 21:11:31 · 529 阅读 · 0 评论 -
JS的正则总结
前言一直想系统的过一遍正则,偶尔查MDN的时候看见了,就打算跟着MDN做一遍,本篇文章不介绍元字符修饰符之类的东西,这些在MDN上讲的详细的不能再详细 了,就分享一下我学习正则时候遇到的一些问题。[]关于中括号的问题,在中括号中的特殊字符也会被当成普通字符来对待,相似的,对于[12-79],匹配的不是12到79,而是1,2-7,9。exec关于,exec,如果我们不对正则表达式的last...原创 2019-11-15 23:10:45 · 146 阅读 · 0 评论 -
JS实现的排序算法
前言不用多说了,如题冒泡/** * @param {number[]} nums * @return {number[]} */var sortArray = function(nums) { for (i = nums.length-1; i>0; i--) { for (j = 0; j< i; j++) { if (n...原创 2019-11-14 06:58:22 · 135 阅读 · 0 评论 -
你不知道的JS精读 (7)
语句和表达式很多开发人员会把语句和表达式混为一谈,其实从词语本身的角度分析,语句相当于句子,表达式相当于短语。JavaScript 中表达式可以返回一个结果值:var a = 3 * 6; var b = a; b;第一句3*6就是一句表达式,返回的结果赋予给了a,因此第一行称作声明语句,而语句都有一个结果值,以第二行代码为例,其结果值是赋给 b 的值(18),但规范定义 var...原创 2019-11-08 04:20:52 · 181 阅读 · 0 评论 -
总览代码在我们的浏览器中是怎么工作的
前言作为前端工程师,浏览器几乎是我们成家立命不可或缺的重要工具,然而现在我们前端路线的学习往往会忽视这一块,很多人学完前端基础三件套就去开始搞jquery或者现在如火如荼的Vue或者React,很大程度上浏览器对于这个学习路线制作到了能使用,能展示你做的东西,仅此而已。但是我们要知道的是,尽管我们不是浏览器开发者,我们仍然需要充足的浏览器知识,尽管原生与小程序如火如荼,H5仍然是我们赖以生存的...原创 2019-11-07 03:42:25 · 223 阅读 · 0 评论 -
你不知道的JS精读 (6)
前言这里主要参考了极客时间winter叔的重学前端的JS部分。十分推荐初级前端或者像我这样做过点东西,知道点概念却没有形成知识体系的人去学习,在开始时,winter叔提了几个问题,不知道大家能说出来几个,我个人是懂1,3,4的,但是让我口述的话可能就第三个能讲的比较详细点。为什么有的编程规范要求用void 0代替undefined?字符串有最大长度吗?0.1 + 0.2不是等于0.3么?...原创 2019-11-06 09:18:11 · 214 阅读 · 0 评论 -
webpack的简单认识和JS模块化发展历程
我想很多人对于webpack都是不陌生的,比较前端三大框架都广泛使用到了webpack这个工具,但是学webpack有必要么,我个人也是持怀疑态度的,毕竟vue用的那么爽好像没怎么用到webpack这样的工具,但是有一点是毫无疑问的,那就是面试会问呀!面试会问呀!会问呀!呀!告诉我你有别的选择么?目录为什么需要webpack安装入口和出口loader模式为什么需要web...原创 2019-10-11 03:24:21 · 328 阅读 · 0 评论 -
Angular 初见--我见,英雄!
Angular教程有个很有意思的英雄示例,用以展现Angular这个框架的核心功能,并让你快速做出一个便于理解的小应用。尽管随着ng8之后,ng官方又推出了新的小示例,更加简洁更加精炼,但这个实例并不是基于脚手架完成的,因此我还是使用英雄示例作为NG学习的开篇。开始之前简单的说一下为什么要学NG,Vue精通了咋滴,精通了去看Vue3啊,pre-alpha都出了。这里解释一下,其实Vue的使用水...原创 2019-10-15 04:15:51 · 249 阅读 · 0 评论 -
JavaScript 学习笔记(4)--解惑
函数和对象原创 2019-07-22 23:49:07 · 180 阅读 · 0 评论 -
JavaScript 学习笔记(6)--分歧
ES6的一些新特性原创 2019-07-26 16:58:10 · 193 阅读 · 0 评论 -
JavaScript 学习笔记(3)--交流
判断和循环,与Python稍有比较原创 2019-07-22 19:18:57 · 96 阅读 · 0 评论 -
JavaScript 学习笔记(7)--Object Oriented
一些ES6中没有着重介绍的知识点原创 2019-08-03 13:30:56 · 199 阅读 · 0 评论 -
JavaScript 学习笔记(5)--认知
内置方法和简单事件原创 2019-07-25 19:30:05 · 126 阅读 · 0 评论 -
JavaScript 学习笔记(2)--了解
简单数据类型和运算符原创 2019-07-21 18:42:18 · 75 阅读 · 0 评论