1、基本概念:
①对象:对象是拥有一系列无序属性和方法的集合。
②键值对:对象中的数据是以键值对的形式存在,对象的每个属性和方法,都对应值一个键名,以键取值。
③属性:描述对象特征的一系列变量称为属性。【对象中的变量】
④方法:描述对象行为的一系列函数称为方法。【对象中的函数】

2、声明对象:
①使用自变量声明: var obj ={
key1 :value1,
key1 :value1,
func1 =function(){}
}
>>>对象中的数据是以键值对形式存储,键与值之间用:分隔。多个键值对之间用,分隔。
>>>对象中的键,可以是除了数组/对象意外的任何数据类型,但是一般我们只用普通变量名作为键。
>>>对象中的值,可以是任何数据类型,包括数组和对象。
②使用new关键字声明:var obj =new Object();
obj.key1 =value1;
obj.func1= function(){}

3、对象中属性和方法的读写:
①.运算符:
对象内部:this.属性 this.方法()
对象外部: 对象名.属性 对象名.方法();
②通过["key"]调用:对象名.["属性名"] 对象名.["方法名"]();

>>>如果键中包含特殊字符,只能使用第二种方式。
>>>对象中,直接写变量名,默认为调用全局变量。如果需要调用对象自身的属性或者方法。需要使用对象名,属性或者this.属性。
person.age this.age 都可以,但是推荐使用this关键字。
③删除对象的属性和方法: delete 对象名.属性名/方法名
delete person.age;

一组数按绝对值升序

var arr =[12,123,-1234,2,34.56,-789]

arr.sort(function(a,b){
a=a>0?a%10 :(0-a)%10;
b=b>0?b%10 :(0-b)%10;
return a-b;
})

console.log(arr)

编写一个程序打印1、展示学员信息 。2、学员信息录入。3、删除学员信息。4、查询学员信息。5、修改学员信息。6、退出系统

var classes = {
className : "HTML5-1705",
studentCount : 27,
students : [
{name:"张三",sex:"女",chinese:0,maths:0,english:0,sum:0},
{name:"李四",sex:"女",chinese:20,maths:30,english:40,sum:90},
{name:"王五",sex:"男",chinese:9,maths:8,english:7,sum:24}
],
addStudent : function(){
var name = prompt("请输入学员姓名:");
var sex = prompt("请输入学员性别:");
var chinese = parseFloat(prompt("请输入学员语文成绩:"));
var maths = parseFloat(prompt("请输入学员数学成绩:"));
var english = parseFloat(prompt("请输入学员英语成绩:"));
var sum = chinese + maths + english;
var student = {
name : name,
sex : sex,
chinese : chinese,
maths : maths,
english : english,
sum : sum
}
this.students.push(student);
this.students.sort(function(a,b){
return b.sum - a.sum;
});
},
showStudent : function(){
var arr = this.students;
console.log("\t杰瑞教育HTML5-1705班成绩展示");
console.log("序号\t姓名\t性别\t语文\t数学\t英语\t总分");
arr.sort(function(a,b){
return b.sum - a.sum;
});
arr.forEach(function(item,index){
console.log((index+1)+"\t\t"+item.name+"\t"+item.sex+"\t\t"+item.chinese+"\t\t"+item.maths+"\t\t"+item.english+"\t\t"+item.sum);
})
},
delStudent : function(){
if(this.students.length<=0) {
alert("没有学员数据,无法删除!");
return;
}
var no = prompt("请输入要删除的学员序号:");
if(no<1 || no> this.students.length){
alert("序号输入有误!请确认学员序号重新输入!");
return;
}
this.students.splice(no-1,1);
},
searchStudent : function(){
var no = prompt("请输入要查询的学员序号:");
var arr = this.students;
if(no<1 || no > arr.length){
alert("查无此人!请确认序号!");
}else{
console.log("查询完成!查询到学员信息如下:");
console.log("序号\t姓名\t性别\t语文\t数学\t英语\t总分");
console.log(no+"\t\t"+arr[no-1].name+"\t"+arr[no-1].sex+"\t\t"+arr[no-1].chinese+"\t\t"+arr[no-1].maths+"\t\t"+arr[no-1].english+"\t\t"+arr[no-1].sum);
}
},
updateStudent : function(){
if(this.students.length<=0) {
alert("没有学员数据,无法修改!");
return;
}
var no = prompt("请输入要修改的学员序号:");
if(no<1 || no> this.students.length){
alert("序号输入有误!请确认学员序号重新输入!");
return;
}
if(!confirm("您确认修改学员是【"+this.students[no-1].name+"】吗?")){
alert("操作已取消!");
return;
}
var name = prompt("请输入学员姓名:");
var sex = prompt("请输入学员性别:");
var chinese = parseFloat(prompt("请输入学员语文成绩:"));
var maths = parseFloat(prompt("请输入学员数学成绩:"));
var english = parseFloat(prompt("请输入学员英语成绩:"));
var sum = chinese + maths + english;
var student = {
name : name,
sex : sex,
chinese : chinese,
maths : maths,
english : english,
sum : sum
}
this.students[no-1] = student;
}
}

console.log("\t杰瑞教育成绩管理系统");
console.log("1、展示学员信息\t2、学员信息录入\n3、删除学员信息\t4、查询学员信息\n5、修改学员信息\t6、退出系统");
while (true){
var num = parseInt(prompt("请输入操作序号"));
var is = false;
switch (num){
case 1:
classes.showStudent();
break;
case 2:
classes.addStudent();
console.log("信息录入成功!");
classes.showStudent();
break;
case 3:
classes.delStudent();
console.log("信息删除成功!");
classes.showStudent();
break;
case 4:
classes.searchStudent();
break;
case 5:
classes.updateStudent();
console.log("信息修改成功!");
classes.showStudent();
break;
case 6:
console.log("系统退出成功!");
is = true;
break;
default:
alert("序号输入有误!");
break;
}
if(is) break;

console.log("是否继续?(输入N退出系统)");
var isGo = prompt("请输入序号:N退出系统,其他字符继续");
if(isGo == "N" || isGo == "n"){
console.log("系统退出成功!");
break;
}

}

JS内置对象-自定义对象的更多相关文章

  1. JS内置对象-String对象、Date日期对象、Array数组对象、Math对象

    一.JavaScript中的所有事物都是对象:字符串.数组.数值.函数... 1.每个对象带有属性和方法 JavaScript允许自定义对象 2.自定义对象 a.定义并创建对象实例 b.使用函数来定义 ...

  2. JS内置对象的原型不能重定义?只能动态添加属性或方法?

    昨天马上就快下班了,坐在我对面的同事突然问我一个问题,我说“爱过”,哈哈,开个玩笑.情况是这样的,他发现JS的内置对象的原型好像不能通过字面量对象的形式进行覆盖, 只能动态的为内置对象的原型添加属性或 ...

  3. web前端学习(四)JavaScript学习笔记部分(6)-- js内置对象

    1.JS内置对象-什么是对象 1.1.什么是对象: JavaScript中的所有事物都是对象:字符串.数值.数组.函数 每个对象带有属性和方法 JavaScript允许自定义对象 1.2.自定义对象: ...

  4. js内置对象的常用属性和方法(Array | String | Date | Math)

    js内置对象:Array  String  Math  Date <!DOCTYPE html> <html lang="en"> <head> ...

  5. js内置对象常用方法

    JS内置对象: ● String对象:处理所有的字符串操作 ● Math对象:处理所有的数学运算 ● Date对象:处理日期和时间的存储.转化和表达 ● Array对象:提供一个数组的模型.存储大量有 ...

  6. 4月5日--课堂笔记--JS内置对象

    JavaScript 4.5 一.    JS内置对象 1.数组Array a)创建语法1:var arr=new Array(参数); i.       没有参数:创建一个初始容量为0的数组 ii. ...

  7. JS内置对象有哪些?

    JS内置对象分为数据封装类对象和其他对象 数据封装类对象:String,Boolean,Number,Array,和Object; 其他对象:Function,Arguments,Math,Date, ...

  8. js 内置对象和方法 示例

    JS内置函数不从属于任何对象,在JS语句的任何地方都可以直接使用这些函数.JS中常用的内置函数如下: 1.eval(str)接收一个字符串形式的表达式,并试图求出表达式的值.作为参数的表达式可以采用任 ...

  9. 5月15日上课笔记-js中 location对象的属性、document对象、js内置对象、Date事件对象、

    location的属性: host: 返回当前主机名和端口号 定时函数: setTimeout( ) setInterval() 二.document对象 getElementById(); 根据ID ...

  10. js课程 3-9 js内置对象定时器和超时器怎么使用

    js课程 3-9 js内置对象定时器和超时器怎么使用 一.总结 一句话总结:定时器:    1.定义    sobj=setInterval(func,1000);        2.清除    cl ...

随机推荐

  1. Aspose.Words关于域的应用

    #region 通过word域去插入相应的数据 /// <summary> /// 通过word域去进行指定位置替换数据 /// </summary> public void ...

  2. NYOJ--284--广搜+优先队列--坦克大战

    /* Name: NYOJ--284--坦克大战 Author: shen_渊 Date: 14/04/17 19:08 Description: 广度优先搜索+优先队列 注意清空地图 对输入地图进行 ...

  3. BFS:noi6044鸣人与佐助

    PS:一道XX到我心态崩溃的好(傻逼)题. 先粘题目: 佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢? 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置.地图上的每个位置都可以走到,只不过 ...

  4. 学习笔记TF035:实现基于LSTM语言模型

    神经结构进步.GPU深度学习训练效率突破.RNN,时间序列数据有效,每个神经元通过内部组件保存输入信息. 卷积神经网络,图像分类,无法对视频每帧图像发生事情关联分析,无法利用前帧图像信息.RNN最大特 ...

  5. java 将一个ip地址分割成一个数组

    这个问题以前真还没注意,好像记得分割过规律的字符串,但是不是像IP这样是以"."为分割规律字符,而是的. 今天用到又用到个,代码写好了也没测试,直接上传服务器,但是就是会报错,之后 ...

  6. 计蒜客模拟赛D1T3 蒜头君的坐骑:用dfs转移dp

    题目链接:https://nanti.jisuanke.com/t/16447 题意: 蒜头君有一只坐骑,人马. 一天,蒜头君骑着他的坐骑走上了一片n*m的大荒野,一开始时,蒜头君在(1,1)点,他要 ...

  7. js版贪吃蛇

    之前没有写博客的习惯,这是我的第一个博客,有些的不好的地方,希望大家多多提意见 js版的贪吃蛇相对比较简单,废话不多说直接上代码,有需要注意的地方我会标红,github源码地址https://gith ...

  8. Python 写网络爬虫思路分析

    首先从程序入口开始分析,在程序入口处传入一个待爬取的网址, 使用下载器Html_downloader类下载该地址的内容,使用解释器 parser分析内容,利用BeautifulSoup包抓取想要爬取的 ...

  9. iOS 主题/皮肤之 SakuraKit

    前言 目前市场上很多 App 都有主题变更.皮肤切换的功能.随着项目代码量的不断增长,业务不断完善,功能性代码逐渐趋于模块化,尤其是在多人协作开发同一个项目时,模块解耦尤为重要,同时,公共基础库的功能 ...

  10. MySQL DNS反查导致连接缓慢

    场景 机器A上的一个模块连接机器B上的MySQL,在实验室网络环境下正常:同样A.B两台机器,网络环境切换为与外界隔离的一个小型局域网环境,A上的模块与B上MySQL建立连接非常慢.   环境 SuS ...