Java Web学习day21------js(面向对象、内置对象、BOM对象)

【第一章】javascript面向对象【了解】

1 类的定义和使用方式一(了解)

//定义Person类
class Person{
  //构造方法
  constructor(name,age){
    this.name = name;
    this.age = age;
  }

  //show方法
  show(){
    document.write(this.name + "," + this.age + "<br>");
  }

  //eat方法
  eat(){
    document.write("吃饭...");
  }
}

//使用Person类
let p = new Person("张三",23);
p.show();
p.eat();

2 类的定义和使用方式二-字面量方式【重要】

  类的第二种定义方式–字面量/直接量方式,因为定义出来的就是对象,不需要new可以直接使用
  语法:
  let 对象名={
    属性名:属性值,
    属性名:属性值,
    …
    属性名:属性值 //属性值可以是任意类型,原始数据类型、数组、函数
  }

//定义对象
let person={
  name:"xxx",
  age:20,
  hobby:["唱","跳","rap","basketball"],
  show:function () {
    document.write(`${this.name},${this.age}<br>`);
  },
  add:function (a,b) {
    return a+b;
  },
  eat(){ //也可以
    document.write("吃饭...<br>")
  }
};

//使用对象
document.write(person.hobby+"<br>");   //["唱","跳","rap","basketball"]
person.show(); //xxx,20
let sum = person.add(10,20);
document.write(`sum=${sum}<br>`); //sum=30
person.eat(); //吃饭...

【第二章】javascript内置对象【理解】

1 Number类

在这里插入图片描述

//1. parseFloat()  将传入的字符串浮点数转为浮点数
// let f=Number.parseFloat("13.14");
let f=Number.parseFloat("13.1452abc"); //从左往右一个字符一个字符的转换,遇到不能转换的字符为止
document.write(f+","+typeof (f)+"<br>");

//2. parseInt()    将传入的字符串整数转为整数
// let n = Number.parseInt("100abc");
let n = Number.parseInt("101.25");
document.write(n+","+typeof (n)+"<br>");//从左往右一个字符一个字符的转换,遇到不能转换的字符为止

2 Math类(掌握)

在这里插入图片描述

//1. ceil(x) 向上取整 ****************掌握
document.write(Math.ceil(5.3)+"<br>"); //6
document.write(Math.ceil(-5.3)+"<br>"); //-5
//2. floor(x) 向下取整 ****************掌握
document.write(Math.floor(5.3)+"<br>"); //5
document.write(Math.floor(-5.3)+"<br>"); //-6
//3. round(x) 把数四舍五入为最接近的整数
document.write(Math.round(5.3)+"<br>"); //5
document.write(Math.round(-5.3)+"<br>"); //-5
//4. random() 随机数,返回的是0.0-1.0之间范围(含头不含尾)
document.write(Math.random()+"<br>"); //[0.0,1.0)
//需求:生成[10,100]的整数  [10,100]-->[0,90]+10-->[0,91)+10
let num=Math.floor(Math.random()*91)+10;
document.write("num="+num+"<br>");
//5. pow(x,y) 幂运算 x的y次方
document.write(Math.pow(2,3)+"<br>");

3 Date类(掌握)

3.1 构造方法

在这里插入图片描述

3.2 成员方法

在这里插入图片描述

//构造方法 ****************掌握
let date=new Date();
//成员方法
document.write(`年份:${date.getFullYear()}<br>`);
document.write(`月份:${date.getMonth()}<br>`);
document.write(`日期:${date.getDate()}<br>`);
document.write(`小时:${date.getHours()}<br>`);
document.write(`分钟:${date.getMinutes()}<br>`);
'document.write(`年月日时分秒:${date.toLocaleString()}<br>`); //年月日时分秒
'document.write(`年月日:${date.toLocaleDateString()}<br>`); //年月日
'document.write(`时分秒:${date.toLocaleTimeString()}<br>`); //时分秒

4 String类

4.1 构造方法

在这里插入图片描述

4.2 成员方法

在这里插入图片描述

//2. 直接赋值
let s1 = "hello";
document.write(`${s1}<br>`);// hello
//属性
//1. length   获取字符串的长度
document.write(`${s1.length}<br>`);// 5
//成员方法
//1. charAt(index)     获取指定索引处的字符
document.write(`${s1.charAt(2)}<br>`);// l
//2. indexOf(value)    获取指定字符串出现的索引位置
document.write(`${s1.indexOf("ll")}<br>`);// 2
//3. substring(start,end)   根据指定索引范围截取字符串(含头不含尾)
document.write(`${s1.substring(2,4)}<br>`);// ll
//4. split(value)   根据指定规则切割字符串,返回数组
document.write(`----------------------<br>`);// hello
let s2 = "张三,23,男";
let splits = s2.split(",");
for (let s of splits) {
  document.write(`${s}<br>`);//
}
document.write(`----------------------<br>`);// hello
//5. replace(old,new)   使用新字符串替换老字符串
let s3 = "你会不会跳伞啊?让我落地成盒。你妹的。";
let s=s3.replace("你妹的","***");
document.write(`${s}<br>`);

5 RegExp类

  正则表达式:是一种对字符串进行匹配的规则。

5.1 匹配的规则

在这里插入图片描述

5.2 构造方法和成员方法

在这里插入图片描述

//1.验证手机号
//规则:第一位1,第二位358,第三到十一位必须是数字。总长度11
let regExp = new RegExp("[1][358][0-9]{9}");
document.write(regExp.test("16578907890")+"<br>"); //false
//2.验证用户名
//规则:字母、数字、下划线组成。总长度4~16
//regExp=/^[0-9a-zA-Z_]{4,16}$/;  //直接量方式不能使用引号引起来,正则是一个对象不是字符串。
regExp=/^\w{4,16}$/;  //直接量方式不能使用引号引起来,正则是一个对象不是字符串。
document.write(regExp.test("sfsdfa")+"<br>"); //true

6 Array类

  表示数组对象,构造方法为:Array();一般定义数组使用[]方式定义。
  成员方法:
在这里插入图片描述

let arr = [1,2,3,4,5];
//1. push(元素)    添加元素到数组的末尾
arr.push(6);  //等价于arr[5]=6;
document.write(arr + "<br>"); //1,2,3,4,5,6

//2. pop()         删除数组末尾的元素
arr.pop();
document.write(arr + "<br>");  //1,2,3,4,5

//3. shift()       删除数组最前面的元素
arr.shift();
document.write(arr + "<br>"); //2,3,4,5

//4. includes(元素)  判断数组中是否包含指定的元素
document.write( arr.includes(3)+ "<br>"); //true
//5. reverse()      反转数组元素
arr.reverse();
document.write(arr + "<br>"); //5,4,3,2

//6. sort()         对数组元素排序
arr.sort();  //升序
document.write(arr + "<br>"); //2,3,4,5
arr.sort((m,n)=>n-m);  //传递比较器,降序
document.write(arr + "<br>"); //5,4,3,2

7 Set集合类

  JavaScript中的Set集合,元素唯一,存取顺序一致。

构造方法和成员方法

在这里插入图片描述

// Set()   创建集合对象
let set = new Set();
// add(元素)   添加元素
set.add(10);
set.add(20);
set.add(20); //重复了就不会添加进去
set.add(30);
// size属性    获取集合的长度
document.write(`size=${set.size}<br>`);  //3
// keys()      获取迭代器对象
for (let m of set) {
  document.write(`m=${m}<br>`); //10
}
// delete(元素) 删除指定元素
let flag = set.delete(20);
document.write(`flag=${flag}<br>`);
//打印结果
for (let m of set) {
  document.write(`m=${m}<br>`); //10
}

8 Map集合类

  JavaScript 中的 Map 集合,key 唯一,存取顺序一致。

构造方法和成员方法

在这里插入图片描述

// Map()   创建Map集合对象
let map = new Map();
// set(key,value)  添加元素
map.set("name","田宇豪");
map.set("gender","女");
map.set("age",30);

// size属性     获取集合的长度
document.write(`size=${map.size}<br>`);
// get(key)     根据key获取value
document.write(`name=${map.get("name")}<br>`);
document.write(`gender=${map.get("gender")}<br>`);
document.write(`age=${map.get("age")}<br>`);

// entries()    获取迭代器对象
var entries = map.entries();
for (let entry of entries) {
  document.write(`${entry[0]},${entry[1]}<br>`);
}

// delete(key)  根据key删除键值对
map.delete("age")
var entries = map.entries();
for (let entry of entries) {
  document.write(`${entry[0]},${entry[1]}<br>`);
}

9 JSON类(掌握)

  JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。
  简洁和清晰的层次结构使得JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于计算机解析和 生成,并有效的提升网络传输效率。
在这里插入图片描述
在这里插入图片描述

//定义商品对象
let products=[
  {"key":"笔记本电脑","qre":"906390"},
  {"key":"笔记本子","qre":"937799"},
  {"key":"笔记本文具","qre":"400132"},
  {"key":"笔记本散热器","qre":"105018"},
  {"key":"笔记本支架","qre":"179625"},
  {"key":"笔记本自营","qre":"934656"},
  {"key":"笔记本游戏本","qre":"705309"},
  {"key":"笔记本包","qre":"872031"},
  {"key":"笔记本华为","qre":"7400"},
  {"key":"笔记本硬盘","qre":"129374"},
  {"key":"笔记本键盘","qre":"703076"},
  {"key":"笔记本联想","qre":"149953"},
  {"key":"笔记本内存条","qre":"97605"},
];
//1.将商品对象转换为JSON格式的字符串
let json = JSON.stringify(products);
document.write(json+"<br>");
document.write(typeof (json)+"<br>"); 

//2.将JSON格式字符串解析成JS对象
let arr=JSON.parse(json);
for (let p of arr) {
  document.write(p.key+"<br>");
}

10 案例-表单校验(掌握)

//1 给form表单添加一个onsubmit事件
document.querySelector("#regist").onsubmit=function () {
  //2 获取用户名和密码输入框中的内容
  let username = document.querySelector("#username").value;
  let password = document.querySelector("#password").value;
  //3 校验用户名,如果不符合阻止提交,请输入4到16位的纯字母
  let regExp=/^[a-zA-Z]{4,16}$/;
  if(!regExp.test(username)){
    //校验失败
    alert("用户名不符合要求,请输入4到16位的纯字母😣");
    return false;// 阻止提交
  }
  //4 校验密码,如果不符合阻止提交,请输入6位纯数字的密码
  regExp=/^\d{6}$/;
  if(!regExp.test(password)){
    //校验失败
    alert("密码不符合要求,请输入6位纯数字的密码😣");
    return false;// 阻止提交
  }
  //return false表示阻止提交,return true表示允许提交,不写默认允许提交
  //5 都符合就允许提交
  return true;
}

【第三章】BOM对象【了解】

1 window对象

   一次性定时器

//设置一次性定时器
setTimeout(要执行的代码字符串或者函数对象,毫秒值);
		//let d1 = setTimeout("fun()",2000); //✅
		//let d1 = setTimeout("fun",2000); //❌
    let d1 = setTimeout(fun,2000); //✅
    // let d1 = setTimeout(fun(),2000);  // ❌,立刻调用fun()方法,然后将方法的返回值传递给setTimeout()方法。
//取消一次性定时器
//clearTimeout(d1);

  循环定时器

//设置循环性定时器
setInterval(要执行的代码字符串或者函数对象,毫秒值);
		//let d1 = setInterval("fun()",2000); //✅
		//let d1 = setInterval("fun",2000); //❌
    let d1 = setInterval(fun,2000); //✅
    // let d1 = setInterval(fun(),2000);  // ❌,立刻调用fun()方法,然后将方法的返回值传递给setInterval()方法。

//取消一次性定时器
//clearInterval(d1);

2 location对象【重要】

  location表示浏览器地址栏对象,封装了地址栏中的信息,可以通过href属性获取URL或者设置URL路径实现页面跳转。
  href 属性:

<body>
  <p>
    注册成功!<span id="spTime">5</span>秒之后自动跳转到首页...
  </p>
</body>
<script>
    //1.定义方法。改变秒数,跳转页面
    let num = 5;
    function showTime() {
        num--;
        if(num <= 0) {
            //跳转首页
            location.href = "index.html";
        }
        let span = document.getElementById("time");
        span.innerHTML = num;
    }
    //2.设置循环定时器,每1秒钟执行showTime方法
    setInterval("showTime()",1000);
</script>

3 案例-动态广告

//1.设置定时器,3秒后显示广告图片
setTimeout(()=>{
	document.querySelector("#ad_big").style.display="block";
},3000);
//2.设置定时器,3秒后隐藏广告图片
setTimeout(()=>{
	document.querySelector("#ad_big").style.display="none";
},6000)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值