Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是在ES6之前,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。ES6中实现class,这其实是一个语法糖,其底层还是通过 构造函数 去创建的。所以它的绝大部分功能,ES5 都可以做到。新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。其实是我在思考怎么去写一个私有不可改变的属性的时候,向大佬讨教了一番,也想着怎么去收集相关知识,为TS进一步学习打好基础,感谢大佬的详解ES6中的class,受益匪浅。
TypeScript笔记
TypeScript 的类型校验是给程序员看的,在编译后不会存在 TS 代码。
综合面试问题
经过惨烈的面试,总算拿到了实习offer,还好没碰到几个知识点一起考察的问题,看到有意思的问题就mark一下,秋招再接再厉
js函数式编程
一天在面试中,面试官给了我一道手写代码题
1 | /** |
我当时的第一版思路,将两个参数数组进行拼接,通过闭包返回结果,面试官提示如果参数为空,怎么办,我增加了args = args || [];这一句
1 | function partialUsingArguments(fn, ...args) { |
面试官说如果参数不是数组,是对象怎么办,提示ES6还有什么拼接方法,使用展开运算符
1 | function partialUsingArguments(fn, args) { |
我当场问面试官,是不是函数柯里化,其实这和柯里化一样,叫作偏函数,和函数柯里化一样,都属于函数式编程的范畴,这里总结了一些函数式编程的经典案例,吃透它们吧。
推荐阅读:
利用Typora+PicGo+Github+Jsdelivr搭建属于自己的图床
检查博客发现好多图无法访问,主要原因是一些网站上的图不支持跨域访问,本地看没事,博客上看图片就炸了。于是乎决定自己动手,丰衣足食,自己搭一个图床,当然找了找,网上有现成的教程,都大差不差。当然,使用了Github托管图片,自然要考虑国内的链接速度,使用Jsdelivr利用CDN实现加速访问。我就顺着Typora+PicGo+Github+Jsdelivr实现高效图文写作进行,只保留关键部分,方便阅读。
鲜为人知的JavaScript功能
By Viral Shah | Nov 26, 2018 转自原文+翻译
js一门很容易入门但是很难精通的语言。我很认同这句话。这是因为js是一门古老的语言同时也是一门很灵活的语言。有着一堆神秘的语法和过时的功能。我已经使用js很多年了,迄今为止,我时不时地会发现一些我从未知道的隐藏语法或技巧。
我试图列出一些鲜为人知的js特性。虽然有一些特性在严格模式下是不能用的,但是它依然是一种不错的js特性。然而,请注意,我不建议你全使用上我介绍的特性。虽然它们很酷,但毕竟是鲜为人知的特性,你的同事可能会看不懂。
49道Promise面试题
关于Promise的面试题有很多,有些一上来就很难的,有些连着几篇题目都是一样的,还有一些比较好的文章介绍的都是一些硬知识点。
这篇文章是一篇比较纯的Promise笔试文章,删改自【建议星星】要就来45道Promise面试题一次爽到底(1.1w字用心整理) ,原作者自己在做题的时候,根据题目想要的考点来反敲知识点,然后再由这个知识点编写从浅到深的的题目。
题目中有一些基础题,然后再从基础题慢慢的变难,循序渐进嘛…
题目没有到特别深入,不过应该覆盖了大部分的考点,另外为了不把大家绕混,答案也没有考虑在Node的执行结果,执行结果全为浏览器环境下,当然最新的Node环境应该和浏览器环境相同了。另外promise的resolved状态打印出来的结果现在显示的fulfilled
OK👌, 来看看通过阅读本篇文章你可以学到:
- Promise的几道基础题
- Promise结合setTimeout
- Promise中的then、catch、finally
- Promise中的all和race
- async/await的几道题
- async处理错误
- 综合题
- 自测面试题
40道this面试题+手写new,call,apply,bind
this指针是JavaScript的一大特色,对于this的理解很考验一个人对于JavaScript这门语言的理解,增改自【建议👍】再来40道this面试题酸爽继续(1.2w字用手整理)
通过阅读本篇文章你可以学习到:
this的默认绑定- 隐式绑定
- 隐式绑定的隐式丢失问题
- 显式绑定
- 显式绑定的其它用法
new绑定- 箭头函数绑定
- 综合题
- 手写new,call,apply,bind
手写一个计算器
Typescript速成自学
写惯了JavaScript,都忘了自己写的时候要注意数据的类型规范了,这种动态类型语言确实很灵活性有目共睹,但是也会导致各种奇怪的 bug。在Vue2.X版本,引入了 Flow 做静态类型检查,但微软的TypeScript 是更好的选择,毕竟大公司出品吗,一部分一部分的总结吧