js-compose函数

compose函数

将函数扁平化处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function fn1(x){
return x + 1;
}
function fn2(x){
return x + 10;
}
function fn3(x){
return x*10;
}
function fn4(x){
return x/10;
}
// fn1执行然后结果作为fn2参数 一直执行到fn4;
fn4(fn3(fn2(fn1(5)))) // 16

面试题-函数原型

关于原型函数的问题:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function Foo(){
getName = function(){
console.log(1)
}
return this;
}

Foo.getName = function(){
console.log(2)
}

Foo.prototype.getName = function(){
console.log(3)
}

var getName = function(){
console.log(4)
}

function getName(){
console.log(5)
}

Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();

面试题-js基础2

面试题:当 a 等于什么的时候下面的代码成立?

1
2
3
4
5
// 问: 当 a 等于什么的时候下面的代码成立
var a = ?;
if (a == 1 && a == 2 && a == 3){
console.log('OK')
}

面试题-js基础

下面的代码输出结果是:

1
2
3
4
5
6
7
8
9
10
let obj = {
2:3,
3:4,
length: 2,
push: Array.prototype.push
}

obj.push(1);
obj.push(2);
console.log(obj)

谈谈 Object.prototype.toString

ECMAScript 5

在ECMAScript 5中,Object.prototype.toString()被调用时,会进行如下步骤:

  • 如果 thisundefined ,返回 object Undefined
  • 如果 thisnull , 返回 object Null
  • O 为以 this 作为参数调用 ToObject的结果;
  • classO 的内部属性 [[Class]] 的值;
  • 返回三个字符串 “[object", class, 以及"]" 拼接而成的字符串。

    [[Class]]

    [[Class]] 是一个内部属性,值为一个类型字符串,可以用来判断值的类型。

判断一个对象是否为空

如何判断一个对象是否为空

1、利用 Object.keys 方法 该方法会返回当前对象内所有返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。详情 Object.keys
如果数组的长度不为空那么则说明对象不为空
使用方法如下:

检测对象是否是json

检测一个对象是否是一个对象的方法:

1
2
3
if(typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length){
alert('是JSON对象');
}
|