let value = 1;
function foo() {
console.log(value);
}
function bar() {
let value = 2;
foo();
}
bar() //1
window.name = 'ByteDance';
function A () {
this.name = 123;
}
A.prototype.getA = function () {
return this.name + 1;
};
let a = new A();
let funcA = a.getA;
console.log(funcA()); // ByteDance1
console.log(a.getA()); // 124
const obj = {
birth: 1990,
getAge: function (year) {
let fn = y => y - this.birth;
return fn.call({ birth: 2000 }, year);
}
};
console.log(obj.getAge(2020)); //30
在不使用全局变量的情况下实现:
count() // 返回 1
count() // 返回 2
function count() {
var i=0;
return function(){
console.log(++i)
}
}
var count =count()
count(); //1
count(); //2
count(); //3
实现一个版本号比较函数
function compareVersion(version1, version2) {
}
如果 version1 > version2 返回 1,
如果 version1 < version2 返回 -1,
除此之外返回 0。
示例:
输入:version1 = “12.0.0”, version2 = “2.10.0”
输出:1
输入:version1 = “1.0.1”, version2 = “1.0”
输出:1
输入:version1 = “7.5.2.4”, version2 = “7.5.3”
输出:-1
输入:version1 = “1.0.0”, version2 = “1.0”
输出:0
function versionfunegt(ver1,ver2) {
var version1pre = parseFloat(ver1);
var version2pre = parseFloat(ver2);
var version1next = ver1.replace(version1pre + ".","");
var version2next = ver2.replace(version2pre + ".","");
if(version1pre > version2pre){
return 1;
}else if(version1pre < version2pre){
return -1;
}else{
if(version1next > version2next){
return 1;
}else if(version1pre < version2pre){
return -1;
}else{
return 0;
}
}
}