articles icon indicating copy to clipboard operation
articles copied to clipboard

:memo: 文章归档

Results 45 articles issues
Sort by recently updated
recently updated
newest added

浅拷贝和深拷贝都是对于JS中的引用类型而言的,浅拷贝就只是复制对象的引用,如果拷贝后的对象发生变化,原对象也会发生变化。只有深拷贝才是真正地对对象的拷贝。 ---- ## 前言 说到深浅拷贝,必须先提到的是JavaScript的数据类型,之前的一篇文章[JavaScript基础心法——数据类型](https://github.com/axuebin/articles/issues/3)说的很清楚了,这里就不多说了。 需要知道的就是一点:JavaScript的数据类型分为基本数据类型和引用数据类型。 对于基本数据类型的拷贝,并没有深浅拷贝的区别,我们所说的深浅拷贝都是对于引用数据类型而言的。 ## 浅拷贝 浅拷贝的意思就是只复制引用,而未复制真正的值。 ```javascript const originArray = [1,2,3,4,5]; const originObj = {a:'a',b:'b',c:[1,2,3],d:{dd:'dd'}}; const cloneArray = originArray; const cloneObj = originObj; console.log(cloneArray); // [1,2,3,4,5]...

blog
JavaScript
前端

# TypeScript 基础类型和变量声明 上一节我们说到 `TypeScript` 最重要的特性就是给 `JavaScript` 引入了静态类型声明,这一节就来看一下 `TypeScript` 里的基础类型和变量声明。 我们知道在 `JavaScript` 中有 7 种数据类型,分别是: - [布尔值(Boolean)](https://developer.mozilla.org/en-US/docs/Glossary/Boolean) - [字符串(String)](https://developer.mozilla.org/en-US/docs/Glossary/String) - [数字(Number)](https://developer.mozilla.org/en-US/docs/Glossary/Number) - [Null](https://developer.mozilla.org/en-US/docs/Glossary/Null) - [undefined](https://developer.mozilla.org/en-US/docs/Glossary/Undefined) - [Object](https://developer.mozilla.org/en-US/docs/Glossary/Object) - [Symbol(ES6)](https://developer.mozilla.org/en-US/docs/Glossary/Symbol) 这里就不多作解释了,如果突然忘记,就点开回忆回忆。...

blog
前端
TypeScript

文章里的例子浅拷贝就是用`=`赋值,但是浅拷贝指的不是指浅层次的拷贝?在第一层发生改变不会影响原有变量,是我理解错了吗? ```js var a = { name: 'hello' }; // 这种不是浅拷贝吗? var b = { ...a }; // 例子说这种是浅拷贝? var c = a; ```

看看这个有着深不可测的魔力的`this`到底是个什么玩意儿 ~ ---- ## 什么是this 在传统面向对象的语言中,比如Java,`this`关键字用来表示当前对象本身,或当前对象的一个实例,通过`this`关键字可以获得当前对象的属性和调用方法。 在JavaScript中,`this`似乎表现地略有不同,这也是让人“讨厌”的地方~ ECMAScript规范中这样写: > this 关键字执行为当前执行环境的 ThisBinding。 MDN上这样写: > In most cases, the value of this is determined by how a function is called. >...

blog
JavaScript
前端

你好,请问你的文章可以转载吗?会注明作者和来源,感谢

## 前言 之前写过一篇 [一年半经验如何准备阿里巴巴前端面试](https://juejin.im/post/5e5522b36fb9a07ce152c51c),给大家分享了一个面试复习导图,有很多朋友说希望能够针对每个 case 提供一个参考答案。 ![](https://user-gold-cdn.xitu.io/2020/4/6/1714f6be896f22ad?w=255&h=255&f=png&s=47477) 写答案就算了,一是**精力有限**,二是我觉得大家还是需要自己**理解总结会比较好**。 给大家整理了一下每个 case 一些还算不错的文章吧(还包括一些躺在我收藏夹里的好文章),大家可以自己看文章总结一下答案,这样也会理解更深刻。 **并不是所有文章都需要看**,希望是一个抛砖引玉的作用,大家也可以锻炼一下自己寻找有效资料的能力 ~ ( 文章排序不分前后,随机排序 ~ ---- > 建议收藏文章,结合复习导图食用,效果更佳。 完整复习导图全展开太大了,可关注公众号「**前端试炼**」回复【面试】获取。 ![](https://user-gold-cdn.xitu.io/2020/4/6/1714f5c8e2ffacdd?w=390&h=333&f=png&s=183050) ## 1. JavaScript 基础 ![](https://user-gold-cdn.xitu.io/2020/4/6/1714f5038d18c52b?w=663&h=894&f=png&s=209830) ### 1.1 执行上下文/作用域链/闭包 -...

blog
前端

在前端开发中,我们在提到性能优化的时候总会提到一点:合理设置缓存。我们该如何从这方面入手来考虑提高网站性能呢? ---- ### 前言 我们都知道 HTML5 引入了应用程序缓存,可以在没有网络的情况下进行访问,同时,HTML5 还引入了 storage 本地存储。这些都属于应用缓存。 本篇文章主要内容是和浏览器缓存相关的,也可以说是 HTTP 缓存。 ### 什么是浏览器缓存 MDN 上是这样解释浏览器缓存的: > A browser cache holds all documents downloaded via HTTP by the user...

blog
网络及浏览器
缓存

## 什么是 file-loader 简单来说,`file-loader` 就是在 `JavaScript` 代码里 `import/require` 一个文件时,会将该文件生成到输出目录,并且在 `JavaScript` 代码里返回该文件的地址。 ## 如何使用 ### 1. 安装 `file-loader` ``` npm install file-loader --save-dev ``` ### 2. 配置 `webapck` ```javascript // webpack.config.js...

blog
JavaScript
前端
webpack

# 这篇 iTerm2 + Oh My Zsh 教程手把手让你成为这条街最靓的仔 ## 前言 作为一名程序员,开发环境不舒服会很大程度影响开发效率,所以一定要花时间**好好整一下开发环境**(好了,我知道你是在给摸鱼找借口)。 ![](https://user-gold-cdn.xitu.io/2020/6/1/1726f38e4afb7b1d?imageView2/0/w/1280/h/960/format/webp/ignore-error/1) 最近短短几个月,换了两次新电脑,经历了两次装机(由于各种原因,没法备份恢复,你懂的),每一次都得重新搞一套属于自己的开发环境。这里就记录一下我是如何一步一步的打造属于自己的`Terminal`,你如果想和我一样,直接`cv 大法`就可以搞一套一样的。 ## Terminal `Terminal`我们经常会称作`终端`,现在中文版的`mac`里也是叫做这个。 ![](https://user-gold-cdn.xitu.io/2020/6/1/1726f38e523c6083?imageView2/0/w/1280/h/960/format/webp/ignore-error/1) 我们每天都需要在其中输入很多命令去做一些事情。可以说,每天有大量的时间都需要面对它。我记得我第一次点下鼠标,打开这个终端的时候,看到了这样一个界面: ![](https://user-gold-cdn.xitu.io/2020/6/1/1726f38e4b3bfbfa?imageView2/0/w/1280/h/960/format/webp/ignore-error/1) 我傻了。怎么这么丑?`macOS`上怎么允许有这么丑的应用? ![](https://user-gold-cdn.xitu.io/2020/6/1/1726f38e50e71177?imageView2/0/w/1280/h/960/format/webp/ignore-error/1) 不行,如果让我每天对着它,一定会把电脑砸了(虽然它是高贵的 16 寸 MacBook Pro),我得找一个第三方`Terminal`来替代它。 ## iTerm2 很快,我就找到了新欢,它的名字叫`iTerm2`,它是一款完全免费,为`macOS`打造的一款终端工具,可以说是程序员必备了,如果还没用过的,赶紧跟着这篇文章用起来吧。[👉iTerm2...

blog
碎碎念

## 前言 两年前,我和你一样,也是一名即将参加校招的同学。 我写这篇文章不是因为我的校招成绩很辉煌,也不是因为我收割了多少 offer,而是回过头来看校招,多少有些感想,可以分享给大家。 希望看完文章,你和我不一样,成为 offer 收割机。 从现在开始,各大互联网公司的校招应该逐步都会开启了... 大家要迅速行动起来了,先面试先拿 offer 这个道理大家都懂吧。 ## 前期工作 首先,最重要的一点,我们得**了解**校招,而不是简简单单地写一份简历就海投,这样无疑效率是非常低的。 建议大家这段时间可以提前做一些准备工作: - 公司列表 - 时间节点 - 提前批/内推/网申有什么区别 - 查看 FAQ - 寻找靠谱的内推人 - ... ###...

blog
前端