- 求一个数组里面的最大值,最小值,平均值 以及 求和
数组:var arr = [89,78,99,68,87];
//求一个数组里面的最大值,最小值,平均值 以及 求和
//数组:var arr = [89,78,99,68,87];
var arr = [89, 78, 99, 68, 87]
function num() {
var max = arr[0];
var min = arr[0];
var count = 0;
for (var x = 0; x < arr.length; x++) {
if (max < arr[x]) {
max = arr[x]
}//最大值
if (min > arr[x]) {
min = arr[x]
}//最小值
count += arr[x];//和
var y = count / arr.length//平均值
}
console.log("最大值:" + max);
console.log("最小值:" + min);
console.log("数组和为:" + count);
console.log("数组平均值为:" + y);
}
num();
- 谈谈你对构造函数的理解
1.构造函数就是一个普通函数,创建方式和普通函数没有区别
2.构造函数习惯上首字母大写
3.构造函数和普通函数最大的区别是调用方式不同
4.构造函数需要用new来调用
- 创建对象有几种方式?分别是?
答:创建对象的方式有3种:
- 采用字面量创造对象。
例如:var a = {
name:“小明”
age:18
}
- 采用内置构造函数创造对象。
例如:var a = new People()
- 采用工厂的方法创建大量对象,但缺点是不能区分用哪个函数创建的对象。
function createObj(name,age) {
Var obj={};
obj.name=name;
obj.age=age
}
例如:var a = createObj()
- Json格式的字符串转对象怎么转?对象转json格式的字符串?
对象的序列化:将对象转成json格式的字符串
var str = JSON.stringify(obj);
反序列化
var obj2 = JSON.parse(str);
- 如何改变this指向?
显示绑定:
bind() apply() call(),它们接收的第一个参数就是上下文对象
obj.say.call(obj2, "girl", "成都");
obj.say.apply(obj2, ["boy", "北京"]);
obj.say.bind(obj2, "aaa", "bbb")()
需注意它们之间用法上的区别
- 求下列字符串中每个字符出现的次数
字符串:var str = "aacdfaeebcddc";
//求下列字符串中每个字符出现的次数
//字符串:var str = "aacdfaeebcddc";
var str = "aacdfaeebcddc";
var x = {};
for (var i = 0; i < str.length; i++) {
var y = str[i];
if (x[y]) {
x[y] += 1;
} else {
x[y] = 1
}
}
console.log(x);
for (var y in x) {
console.log(x + "出现了" + y[x] + "次");
}
- 封装一个函数,使 sum(2,3,4) 和 sum(2)(3)(4) 的结果都为9
function sum(a, b, c) {
if (b) {
return a + b + c;
} else {
return function (c) {
return function (d) {
return a + c + d;
}
}
}
}
console.log(sum(2)(3)(4));
- 下面代码的打印结果是?
var n = null;
console.log(n?1:2);
2