JS内置对象-自定义对象
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内置对象-自定义对象的更多相关文章
- JS内置对象-String对象、Date日期对象、Array数组对象、Math对象
一.JavaScript中的所有事物都是对象:字符串.数组.数值.函数... 1.每个对象带有属性和方法 JavaScript允许自定义对象 2.自定义对象 a.定义并创建对象实例 b.使用函数来定义 ...
- JS内置对象的原型不能重定义?只能动态添加属性或方法?
昨天马上就快下班了,坐在我对面的同事突然问我一个问题,我说“爱过”,哈哈,开个玩笑.情况是这样的,他发现JS的内置对象的原型好像不能通过字面量对象的形式进行覆盖, 只能动态的为内置对象的原型添加属性或 ...
- web前端学习(四)JavaScript学习笔记部分(6)-- js内置对象
1.JS内置对象-什么是对象 1.1.什么是对象: JavaScript中的所有事物都是对象:字符串.数值.数组.函数 每个对象带有属性和方法 JavaScript允许自定义对象 1.2.自定义对象: ...
- js内置对象的常用属性和方法(Array | String | Date | Math)
js内置对象:Array String Math Date <!DOCTYPE html> <html lang="en"> <head> ...
- js内置对象常用方法
JS内置对象: ● String对象:处理所有的字符串操作 ● Math对象:处理所有的数学运算 ● Date对象:处理日期和时间的存储.转化和表达 ● Array对象:提供一个数组的模型.存储大量有 ...
- 4月5日--课堂笔记--JS内置对象
JavaScript 4.5 一. JS内置对象 1.数组Array a)创建语法1:var arr=new Array(参数); i. 没有参数:创建一个初始容量为0的数组 ii. ...
- JS内置对象有哪些?
JS内置对象分为数据封装类对象和其他对象 数据封装类对象:String,Boolean,Number,Array,和Object; 其他对象:Function,Arguments,Math,Date, ...
- js 内置对象和方法 示例
JS内置函数不从属于任何对象,在JS语句的任何地方都可以直接使用这些函数.JS中常用的内置函数如下: 1.eval(str)接收一个字符串形式的表达式,并试图求出表达式的值.作为参数的表达式可以采用任 ...
- 5月15日上课笔记-js中 location对象的属性、document对象、js内置对象、Date事件对象、
location的属性: host: 返回当前主机名和端口号 定时函数: setTimeout( ) setInterval() 二.document对象 getElementById(); 根据ID ...
- js课程 3-9 js内置对象定时器和超时器怎么使用
js课程 3-9 js内置对象定时器和超时器怎么使用 一.总结 一句话总结:定时器: 1.定义 sobj=setInterval(func,1000); 2.清除 cl ...
随机推荐
- Go的类型断言解析
经常地我们对一个接口值的动态类型是不确定的,如方法的形参为接口类型时,此时就需要检验它是否符合我们需要的类型.类型断言是一个使用在接口值上的操作.断言类型的语法:x.(T),这里x表示一个接口的类型, ...
- 【HOSTS相关】前端提供测试模板地址
在测试接口的时候,首先需要绑定HOSTS,这个文件的位置在这个目录的下面:C:\WINDOWS\system32\drivers\etc,打开hosts文件的方式选择"记事本"就可 ...
- Linux - 简明Shell编程06 - 循环语句(Loop)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash # for循环 for fil ...
- 关于virtualenvwrapper的python, pip 的版本的问题
关于virtualenvwrapper的python, pip 的版本的问题: 在创建虚拟环境时, 我们可以用 mkvirtualenv THE_NAME_OF_VENV --python=pytho ...
- 菜鸟装逼指南--linux内核中听过就能记住的概念
打算给我们部门弄个内部分享.发现大家对一些底层知识的认知停留在一句一句的,比如听说JVM使用-XX:-UseBiasedLocking取消偏向锁可以提高性能,因为它只适用于非多线程高并发应用.使用数字 ...
- JS之this
作为JS中比较容易让人迷糊,同时又很重要的难点. 关于this指向问题,我们始终要记住一句话,这句话对于理解this指向很重要.这句话是:this要在执行时才能确认它的值,定义时无法确认. this的 ...
- 使用VS Code开发调试.NET Core 2.0
使用VS Code 从零开始开发调试.NET Core 2.0.无需安装VS 2017 15.3+即可开发调试.NET Core 2.0应用. VS Code 全称是 Visual Studio Co ...
- 读懂javascript深拷贝与浅拷贝
1. 认识深拷贝和浅拷贝 javascript中一般有按值传递和按引用传递两种复制,按值传递的是基本数据类型(Number,String,Boolean,Null,Undefined),一般存放于内存 ...
- Win10下C:\Users\John以账户名称命名的系统文件夹用户名的修改
Win10下C:\Users\John以账户名称命名的系统文件夹用户名的修改.. 有时候我们由于各种原因想要更改DOS窗口下的账户名称,更改DOS窗口用户名C:\Users\XXX> 即更改为C ...
- windows10企业版怎么关闭自动更新
windows10企业版怎么关闭自动更新.. 我之所以选择关闭自动的更新的原因: 1.Windows版本是激活版的不是注册版的<其实我想说的是我用的是盗版的> 2.对于为什么禁止[系统更 ...