JS05-练习
有错望指正!!!
1.创建一个电脑对象,该对象要有颜色、重量、品牌、型号,可以看电影、听音乐、打游戏和敲代码。
var pc = {
color: 'gray',
weight: 2,
brand: 'xxx',
type: '001',
watch: function() {
console.log('我在看电影');
},
listen: function() {
console.log('我在听音乐');
},
play: function() {
console.log('我在打游戏');
},
coding: function() {
console.log('我在敲代码');
}
}
console.log(pc.color);
console.log(pc.weight);
console.log(pc['brand']);
console.log(pc['type']);
pc.watch();
pc.listen();
pc.play();
pc.coding();
2.书写一个构造函数,用来创建学生对象
- 学生对象包括的内容有:姓名(name)、学号(id)、性别(sex)、年级(grade)、打招呼(sayHi)
- 在弹出框中提示:“你好我是XXX”,其中XXX代表对象的name属性值
function Student(name, id, sex, grade) {
this.name = name;
this.id = id;
this.sex = sex;
this.grade = grade;
this.sayHi = function() {
alert('你好我是' + name);
}
}
var stu = new Student('李四', 18, '男', '大一');
stu.sayHi();
3.请描述下面代码的输出结果以及运行原因
var num = 1;
function demo(){
console.log(num);
function demoSon(){
num = 3;
}
var num = 2
demoSon();
}
demo();
// 变量预解析会将变量声明提升到当前作用域前,不提升赋值操作;
// 函数预解析会将所有的函数声明提升到当前的作用域最前面,不调用函数
// 相当于进行了以下操作
var num;
function demo() {
console.log(num); // 输出结果:undefined
function demoSon() {
num = 3;
}
var num = 2
demoSon();
}
num = 1;
demo();
4.请使用arguments完成函数getResult,实现得到输入的所有的数值中的最小值、最大值、平均数、总和等功能
- 描述:
函数名:getResult
函数调用方式:getResult(数值1,数值2,数值3,数值4…)
函数功能:返回值是一个对象,这个对象有sum, max, min, averages等属性,分别表示实参的总和、最大值、最小值、平均数等
function getResult() {
var sum = 0;
var max = arguments[0];
var min = arguments[0];
var averages = 0;
for (var i = 1; i < arguments.length; i++) {
if (max < arguments[i]) {
max = arguments[i];
}
if (min > arguments[i]) {
min = arguments[i];
}
sum = sum + arguments[i - 1];
}
averages = sum / arguments.length;
return [sum, max, min, averages]
}
var re = getResult(1, 2, 3, 4);
console.log(re);
5.书写一个函数,判断指定数据是否存在于指定数组中
function exist(data, arr) {
for (var i = 0; i < arr.length; i++) {
if (data === arr[i]) {
return true;
}
}
return false;
}
var ex = exist(1, [4, 5, 6, 7]);
console.log(ex);
6.遍历下面对象
var dog = {
dName:"coco",
type:"阿拉斯加犬",
age:"5岁",
color:"棕红色"
};
for (var k in dog) {
console.log(k); // 输出属性名
console.log(dog[k]); // 输出属性值
}
7. 筛选数组
以下有两个数组,一个数组arr是班级里所有的学员的名称,一个数currentArr是提交了每日反馈的学员名单,请创建一种算法,把未提交每日反馈的学员筛选出来
var arr = ["张瑞淑", "徐海涛", "谢岗岗", "薛鹏"];
var currentArr = ["张瑞淑", "徐海涛"];
function notSubmit(arr, currentArr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (currentArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
var arr = ["张瑞淑", "徐海涛", "谢岗岗", "薛鹏"];
var currentArr = ["张瑞淑", "徐海涛"];
var no = notSubmit(arr, currentArr);
console.log(no);
8. 三种创建对象的方式
//利用字面量
var dog = {
uname: '可可',
type: '阿拉斯加犬',
age: 5,
color: 'red',
bark: function() {
console.log('汪汪汪');
}
};
console.log(dog.uname);
console.log(dog.type);
console.log(dog['age']);
console.log(dog['color']);
dog.bark();
//利用new Object 创建
var person = new Object();
person.uname = '鸣人';
person.sex = '男';
person.age = 19;
person.skill = function() {
console.log('影分身术');
}
console.log(person.uname);
console.log(person.sex);
console.log(person['age']);
person.skill();
//利用构造函数
function Hero(uname, type, blood) {
this.uname = uname;
this.type = type;
this.blood = blood;
this.attack = function(skill) {
console.log(skill);
};
}
var hero1 = new Hero('廉颇', '力量', 500);
console.log(hero1.uname);
console.log(hero1.blood);
console.log(hero1['type']);
hero1.attack('ahjkdh');
var hero2 = new Hero('后羿', '射程', 500);
console.log(hero2.uname);