用js实现比较版本号的函数

用原生js实现两个版本号的比较,versionCompare (v1,v2),v1、v2是两个参数,代表两个版本号。

函数实现重点是,v1、v2两个参数是string类型。因为版本号是数字和点组成,不保准会有人传进两个数字类型,所以做个判断,将其转化成string。

webpack基础及简单使用

介绍

Webpack 是前端资源模块化管理和打包的工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。同时按需加载的模块进行代码分隔,等到实际需要的时候再异步加载。通过 loader 的转换,任何形式的资源都可以视作模块,比如 CommonJs 模块、 AMD 模块、 ES6 模块、CSS、图片、 JSON、Coffeescript、 LESS 等

requirejs使用

问答

如下requirejs配置中, baseUrl 有什么作用?以什么作为基准? paths 的作用和用法是什么?

requirejs.config({
  baseUrl: "src/js",  
  paths: {
    'jquery': 'lib/bower_components/jquery/dist/jquery.min'
  }
});
  • baseUrl设置项目文件的基本路径,当加载模块时,模块文件的路径是以baseUrl即src/js文件为基准的。
  • paths设置一个复杂路径下对应的模块,比如例子中jquery所在的路径比较深,通过paths设置后,当加载jquery时,会直接查找对应的’lib/bower_components/jquery/dist/jquery.min’目录。

js模块化

1.为什么要使用模块化?

  • 当一个项目中需要加载n多js文件时,这些文件之间的依赖关系、调试维护、加载顺序需要我们手动管理,这样不利于项目的调试和维护。使用模块化可以是我们很方便地使用别人的代码,想要什么功能,就加载什么模块,同时代码出现问题时只调试相应的模块即可,模块之间耦合度小,便于维护。

js继承的实现

问题

继承有什么作用? (难度:*

  • 继承是指一个对象直接使用另一对象的属性和方法。它提高了代码的复用性,便于程序和功能的扩展,继承后的函数可以使用公有的属性和方法。

js原型链

1.有如下代码,解释Person、 prototype、 proto、p、constructor之间的关联。

1
2
3
4
5
6
7
8
function Person(name){
this.name = name;
}
Person.prototype.sayName = function(){
console.log('My name is :' + this.name);
}
var p = new Person("若愚")
p.sayName();

js对象与原型

问答

OOP 指什么?有哪些特性 (难度: *)

  • Object Oriented Programming,OOP,面向对象程序设计,基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,注重与程序的重用性、灵活性和扩展性。
  • 特性:

    1.封装: 将代码封装为一个整体,拥有自己独立的特性,像外界提供调用的接口,隐藏内部具体的实现细节
    2.继承:提高代码的复用性,继承原型(类)上的方法,不用重新编写
    3.多态:在继承的基础上实现,父类引用指向子类对象,多个子类可以使用同一方法而互不影响。

,