- 求一个数组里面的最大值,最小值,平均值 以及 求和
数组:var arr = [89,78,99,68,87];
- 谈谈你对构造函数的理解
构造函数就是一个普通函数,创建方式和普通函数没有区别
构造函数习惯上首字母大写
构造函数和普通函数最大的区别是调用方式不同
构造函数需要用new来调用
构造函数执行的操作:
- 创建一个新对象
- 将新对象的__proto__指向构造函数的prototype;
- 将构造函数中的this指向新对象
- 执行构造函数中的代码
- 返回新对象
- 创建对象有几种方式?分别是?
new Object
使用字面量{}
工厂模式
构造函数模式(constructor)
原型模式(prototype)
构造函数+原型模式
- Json格式的字符串转对象怎么转?对象转json格式的字符串?
//对象的序列化:将对象转成json格式的字符串
var obj = {
a:"a",
b:"b"
}
var str = JSON.stringify(obj);
console.log(str);
// 反序列化
var obj2 = JSON.parse(str);
console.log(obj2);
console.log(obj.toString());
- 如何改变this指向?
利用call(),apply(),bind ()改变函数中this的指向,
apply()的用法与call()相似,唯一的不同在于传参的形式,call 的参数是直接放进去的,而前者参数之间全都用“,”隔开,bind()所传参数之间也用“,”隔开
call()和apply()都是立即执行函数而bind()并不会立即执行,而是先返回改变this指向后的函数
- 求下列字符串中每个字符出现的次数
字符串:var str = "aacdfaeebcddc";
- 封装一个函数,使 sum(2,3,4) 和 sum(2)(3)(4) 的结果都为9
- 下面代码的打印结果是?
var n = null;
console.log(n?1:2);
是2