1、对象的概念
在JavaScript中,对象属于复杂数据类型,它是由属性和方法组成的一个对象。
属性是指对象的特征。
方法是指对象的行为。
下面以学生的特征和行为为例进行说明。
学生的特征:姓名、年龄和性别,这些特征可以用对象的属性来表示。
学生的行为:打招呼、唱歌、写作业,这些行为可以用对象的方法来表示。
<!DOCTYPE html> //将10个学生的成绩输出在页面上。 |
2、创建对象
判断一个变量是否为对象的小技巧:通过console.log打印.
如果打印的是一行字符串 就说明是基本数据类型
如果打印的是一个可以折叠的数据 就表示对象
var a = 11;
console.log(a);
var arr = [1,2,3,4];
console.log(arr);
如何创建一个JS的对象:
方法1:使用对象的字面量创建对象(理解为直接赋值)
例如:var arr = [1,2,3];,//静态声明数组 字面量创建
就是用大括号“{}”来标注对象成员,
每个对象成员使用键值对的形式保存,即 “key: value”的形式。
多个成员通过逗号隔开
键指的就是独一无二的属性
// var student1 = { 'id' :1001 ,name:"张三" , age : 18 , 'sex-sex' : '男' } ; |
方法2: 第一步:创建对象的函数(想象成Java的构造函数)
function Person(id,name,age){
this.id = id;
this.name = name;
this.age = age;
}
第二步:new对象
var p1 = new Person(123,"王五" , 20);
console.log(p1);
//补充:对象由:属性和方法 |
使用场景:如果对象很多 就用方法2 反之方法1
3、如何遍历一个对象
由于直接输出s10将只会显示object我们需要内部的属性值/
方法1:如果只需要某一个属性值, 直接通过s10.属性名即可
方法2:如果所有的属性值都需要,那么也可以通过s10.属性名 只是比较麻烦.
学习:如何遍历对象:语法如下:
for(var i = 0;i<a10.length;i++){
//错误的写法:1.对象的键并不是012 其次对象并没有长度
}
<!DOCTYPE html> //i表示对象的下标(属性) s10表示遍历的对象 |
4、值对象和引用对象
<!DOCTYPE html> |
5、Math对象
Math对象的用法和Java中Math对象的用法几乎一致。
唯一不同的就是 Java的数据类型分为int double等 但是js里面只有number。
第一个 Math.min(a,b,c,d,...); //获取最小的值
alert(Math.min(2,534,32,43,76,86));
第二个 Math.max(a,b,c,d,...); //获取最大值
alert(Math.min(2,534,32,43,76,86));
第三个 Math.ceil(a); 向上取整 舍去小数点 (但是Java是保留的)
alert(Math.ceil(11.1));
第四个 Math.floor(a); 向下取整 舍去小数点 (但是Java是保留的)
alert(Math.floor(11.1));
第五个 Math.round(x);四舍五入 如果是临界值都是往高的入
alert(Math.round(1.5) + "~" + Math.round(-1.5));
第六个 Math.random();返回一个随机数 范围 0~1 官方概念:可以取0但是不能取1 但是实际场景可以忽略0
alert(Math.random());
6、Date对象
date对象创建的2种方式:
第一种 不放任何参数 表示获取当前时间
var d = new Date();
console.log(d);
第二种方式:放若干个数字,分别表示年月日 时分秒 按照顺序 其中月份比较特殊 0表示1月
var d = new Date(2020,11,11);//表示2020年12月11日 0点0分0秒
date对象的常见方法:
var d = new Date(2020,11,11,12,6,33);;//表示2020年12月11日 0点0分0秒
console.log(d.getFullYear());//获取年份
console.log(d.getMonth() + 1);//获取月份 注意0表示1
console.log(d.getDate());//获取日期
console.log(d.getHours());//获取小时
console.log(d.getMinutes() );//获取分钟
console.log(d.getSeconds() );//获取秒
console.log(d.toLocaleString());//返回当前日期的字符串格式
console.log(d.getTime());//返回从1970年1月1日0时0分0秒 到指定时刻的毫秒数
7、倒计时
计算当前时刻距离2024年1月1日0时 还差多少时间
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script>
var d1 = new Date(); var d2 = new Date(2024,0,1);
var sjc = d2.getTime() - d1.getTime(); //计算出两个时间节点的相差毫秒数
sjc = parseInt(sjc / 1000);//得到是 两者的秒数
var s = sjc%60;
var m = parseInt(sjc/60%60);
var h = parseInt(sjc/60/60%24);
var day = parseInt(sjc/60/60/24);
document.write("距离倒计时还剩下" + day +"天 " + h +"时" + m +"分" + s + "秒");
</script> </body> </html> |
8、Array对象
var arr = [];
arr.push("aa");//表示奖元素添加到数组的尾部
console.log(arr);
var arr = ['张三','分','阿萨德三','类似'];
var str =arr.toString();//默认以,分割
console.log(str);
var str = arr.join(":");
console.log(str);
适用常见: 用户选择自己的爱好框
9、String对象
JS中的String对象的方法和Java几乎完全一致。
判断输入的账号是否合法
要求:长度8-18位。必须以yyzy开头。账号的最后6位必须是纯数字组成。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script>
var str = "yyzysaf111111"; // console.log(str.substring(str.length-6,str.length));
// console.log(Number(str.substring(str.length-6,str.length))) ;
var b = panduan(str); alert(b);
function panduan(str){ if( !(str.length>=8 && str.length<=18) ){ alert("长度不符合条件"); return false; }
if( ! str.startsWith("yyzy") ){ alert("不是以yyzy开头"); return false; }
//思路:如何判断后6位是否为纯数字 //步骤1: 取出后6位 思路 通过subString(a,b);截取 //其中b是定死了 就是str.length 其中a=str.length-6
if(Number(str.substring(str.length-6,str.length))+"" =="NaN"){ alert("后6位不是纯数字"); return false; } return true; }
</script> </body> </html> |