ES6中的关键字super该如何理解?

说起ES6的继承和super的用法大家都不会陌生,可一问到super到底是什么,很多人就很模糊了,比如java
中的superthis不同点包括: super()主要是对父类构造函数的调用,this()是对重载构造
函数的调用;super()主要是在继承了父类的子类的构造函数中使用,是在不同类中的使用;this()主要是
在同一类的不同构造函数中的使用 ;相同的是二者都必须在构造函数的第一行进行调用,否则就报错。但是在
ES6中,super是一个特殊的语法,而且它比this还要特殊,很多用法上限制。

Javascript中this关键字理解,你懂了?

其实这个问题在面试中基本都会问到,我想大多数童鞋们都经历过吧,你是否答对了呢?

this指向哪里呢?

在Javascript中,和大多数面向对象的编程语言一样,这是一个特殊的关键字,它在方法中用于引用
被调用方法的对象。

In JavaScript, as in most object-oriented programming languages, this is a special keyword that is used within methods to refer to the object on which a method is being invoked.
——jQuery Fundamentals (Chapter 2), by Rebecca Murphey

值得注意,this在javascript中和执行环境有关,而非声明环境。

The this keyword is relative to the execution context, not the declaration context.

Javascript数组去重的方法

这个是个经常用来面试的题目(别小看这个题)考点有二:

  1. 正确性:考虑到javascript经常要在浏览器上运行,在不同浏览器环境下要保证一个函数的正确性可不是件简单的事情。
  2. 高性能:虽然大部分情况下javascript语言本身(狭义范畴,不包含DOM等延拓)不会导致性能问题,但是很不幸这是道考题,因此面试官还是会把性能作为一个考点。

    var arr = [1,2,1,'2',3,4,1,4,'2',{a:1},{b:1,c:2},{a:1}];
    

下面的方法测试结果都是对arr数组进行测试的。

MAC中bash与zsh的切换

切换命令

  • 切换bash

    chsh -s /bin/bash

  • 切换zsh

    chsh -s /bin/zsh

配置启动zsh时自动加载node

1.进入插件目录

cd~/.oh-my-zsh/plugins/

2.创建 nvm_auto_load 目录

mkdir nvm_auto_load

3.将初始化 nvm 写入 nvm_auto_load.plugin.zsh

if [[ -z $NVM_DIR ]]; then
 NVM_DIR="$HOME/.nvm"

fi
[ -s "$NVM_DIR/nvm.sh"] && ."$NVM_DIR/nvm.sh"

4.修改 ~/.zshrc

在你的原有插件配置中添加 nvm_auto_load ,如 plugins=(git nvm_auto_load)
如果你的nvm 不是安装在推荐的目录 ~/.nvm ,则需要在plugins 配置行之前添加一个 NVM_DIR 的配置

exportNVM_DIR="/path/to/nvm"

5.修改后的 .zshrc 完整示例:

exportZSH=$HOME/.oh-my-zsh
exportNVM_DIR=$HOME/.nvm

plugins=(git nvm_auto_load)

source$ZSH/oh-my-zsh.sh

修改完记得重启zsh哟~~

Atom中linter-Eslint安装以及全局设置

ESLint是一个Javascript静态检查工具,它可以帮你养成良好的编程习惯,使你的javascript代码达到国际化的水准。ESLint是所有Javascrpt静态检查工具里最晚诞生的一个,之前还曾经有过JSLint以及JSHint等工具,但JSLint和JSHint都是用的一套标准,在目前这个前端技术飞速发展的时代已经显得有点落伍。ESLint的好处是既提供了国际大厂的标准,同时又给了你自定义标准的可能性。ESLint的推荐设置方式是按项目设置,但是如果我们有很多个不同的javascript项目的话,一个一个去设置未免太麻烦,所以在这里介绍的是全局设置方法,一次设置,所有项目全部采用同一标准。

作用域与闭包

首先在讲之前,需要掌握以下几个概念:

  1. javaScript具有两种作用域:全局作用域函数作用域,另外还有块作用域,比如:try …catch…语句中,catch 分句是块级作用域,还有with语句等。
  2. ES6的let关键字,可以用来在任意代码块中声明变量。
  3. IIFE(立即执行函数表达式)是什么?它有什么作用?

Javascript中new到底做了什么?又如何理解prototype?

说到prototype就得先说说new了。我们先看看这样一段代码:

var Person = function(){};
var p = new Person();

很简单的一段代码,我们来看看这个new究竟做了什么?我们可以把new的过程拆分成以下三步:

  1. var p={}; 也就是说,初始化一个对象p
  2. p.proto=Person.prototype;
  3. Person.call(p);也就是说构造p,也可以称之为初始化p。

Grunt-Beginner前端自动化工具

本文章适合对HTML、CSS、JS有一定基础,并且对Nodejs有一定的了解的同学。

学习目标和内容


什么事前端集成解决方案

每一个前端团队都想打造自己的前端开发体系,来帮助团队更高效的工作,目前通常都是东拼西凑,逐渐的整合的过程。

前端集成解决方案个人理解是:

将前端研发领域中各种分散的技术元素集中在一起,并对常见的前端开发问题、不足、缺陷和需求,所提出的一种解决问题的方案。

Sass 和 Compass 用法

###RubyInstaller

If you are on Windows, there is a great project to help you install Ruby: RubyInstaller. It gives you everything you need to set up a full Ruby development environment on Windows.
Just download it, run it, and you are done!

Check whether Ruby already is available by opening a terminal

ruby -v

Try Ruby

1.由于国内网络原因,首先我们来修改一下Ruby的source地址

gem sources --remove https://rubygems.org/ //移除默认的
gem sources -a https://ruby.taobao.org/ //添加新的地址
gem sources -l # 查看list

gem update //更新ruby版本

Hexo搭建静态博客

安装

系统环境 Windows 7 64bit

文本编辑器推荐使用 WebStorm 10,
文件编码选择 UTF-8
Git

安装 GitHub for Windows,
登录后会自动在本地配置好 SSH, 执行git shell时也不需要-config用户名和邮箱