0%

Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是在ES6之前,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。ES6中实现class,这其实是一个语法糖,其底层还是通过 构造函数 去创建的。所以它的绝大部分功能,ES5 都可以做到。新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。其实是我在思考怎么去写一个私有不可改变的属性的时候,向大佬讨教了一番,也想着怎么去收集相关知识,为TS进一步学习打好基础,感谢大佬的详解ES6中的class,受益匪浅。

阅读全文 »

经过惨烈的面试,总算拿到了实习offer,还好没碰到几个知识点一起考察的问题,看到有意思的问题就mark一下,秋招再接再厉

阅读全文 »

一天在面试中,面试官给了我一道手写代码题

1
2
3
4
5
6
/**
* 实现函数 partialUsingArguments,调用之后满足如下条件:
1、返回一个函数 result
2、调用 result 之后,返回的结果与调用函数 fn 的结果一致
3、fn 的调用参数为 partialUsingArguments 的第一个参数之后的全部参数以及 result 的调用参数
*/

我当时的第一版思路,将两个参数数组进行拼接,通过闭包返回结果,面试官提示如果参数为空,怎么办,我增加了args = args || [];这一句

1
2
3
4
5
6
function partialUsingArguments(fn, ...args) {
args = args || [];
return function (..._args) {
return fn(args.concat(_args));
}
}

面试官说如果参数不是数组,是对象怎么办,提示ES6还有什么拼接方法,使用展开运算符

1
2
3
4
5
function partialUsingArguments(fn, args) {
return function (_args) {
return fn(...args, ..._args);
}
}

我当场问面试官,是不是函数柯里化,其实这和柯里化一样,叫作偏函数,和函数柯里化一样,都属于函数式编程的范畴,这里总结了一些函数式编程的经典案例,吃透它们吧。

推荐阅读:

阅读全文 »

检查博客发现好多图无法访问,主要原因是一些网站上的图不支持跨域访问,本地看没事,博客上看图片就炸了。于是乎决定自己动手,丰衣足食,自己搭一个图床,当然找了找,网上有现成的教程,都大差不差。当然,使用了Github托管图片,自然要考虑国内的链接速度,使用Jsdelivr利用CDN实现加速访问。我就顺着Typora+PicGo+Github+Jsdelivr实现高效图文写作进行,只保留关键部分,方便阅读。

阅读全文 »

By Viral Shah | Nov 26, 2018 转自原文+翻译

js一门很容易入门但是很难精通的语言。我很认同这句话。这是因为js是一门古老的语言同时也是一门很灵活的语言。有着一堆神秘的语法和过时的功能。我已经使用js很多年了,迄今为止,我时不时地会发现一些我从未知道的隐藏语法或技巧。

我试图列出一些鲜为人知的js特性。虽然有一些特性在严格模式下是不能用的,但是它依然是一种不错的js特性。然而,请注意,我不建议你全使用上我介绍的特性。虽然它们很酷,但毕竟是鲜为人知的特性,你的同事可能会看不懂。

阅读全文 »

关于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处理错误
  • 综合题
  • 自测面试题
阅读全文 »

this指针是JavaScript的一大特色,对于this的理解很考验一个人对于JavaScript这门语言的理解,增改自【建议👍】再来40道this面试题酸爽继续(1.2w字用手整理)

通过阅读本篇文章你可以学习到:

  • this的默认绑定
  • 隐式绑定
  • 隐式绑定的隐式丢失问题
  • 显式绑定
  • 显式绑定的其它用法
  • new绑定
  • 箭头函数绑定
  • 综合题
  • 手写new,call,apply,bind
阅读全文 »

在学习C语言的时候,曾经写过一个能实现四则运算的计算器大作业,当年觉得云里雾里,好难,其实搞懂了逆波兰表达式的原理和巧妙利用栈这个数据结构,就可以实现,但是其中要考虑一些细节,不手写一遍根本记不得。我现在最熟悉的语言自然是js,自然选择它重复当年的思路,力扣上只有逆波兰表达式求值和包括+-和括号的,因此选择了牛客上的表达式求值来做,当然js可以用eval函数一行搞定,不过这么做没什么意义,主要是为了复习计算机的基础知识,还是自己动手,丰衣足食。

阅读全文 »

写惯了JavaScript,都忘了自己写的时候要注意数据的类型规范了,这种动态类型语言确实很灵活性有目共睹,但是也会导致各种奇怪的 bug。在Vue2.X版本,引入了 Flow 做静态类型检查,但微软的TypeScript 是更好的选择,毕竟大公司出品吗,一部分一部分的总结吧

阅读全文 »