JS 和 ES6 补充学习

简介: 【8月更文挑战第21天】

1、JS对象-自定义对象
let 对象名 = {
属性名1:属性值1,
属性名2:属性值2,
属性名3:属性值3,
函数名称:function(形参列表){},
函数名称(形参列表){}
};
2、JS对象-JSON对象
JSON概念:本质是通过JavaScript对象标记法书写的文本。

使用场景:现多用于作为数据载体,在网络中进行数据传输。

JSON定义
//两种定义
let 变量名 = {"key":value, "key":value, "key":value,...}

let json = [value,value,value];
value的数据类型为:数字、字符串、逻辑值、数组、对象、null。

js对象转为JSON字符串
let str = JSON.stringify(json);
JSON字符串转为js对象
let json = JSON.parse(str);
3、JS对象-BOM对象
概念:BOM浏览器对象模型,指的是JS将浏览器的各个组成部分封装为对象,使用对象可以操作浏览器。
组成:
Window:浏览器窗口对象
Navigator:浏览器对象
Screen:屏幕对象
History:历史记录对象
Location:地址栏对象
Window对象:浏览器窗口对象,可以直接使用,使用的时候也可以省略不写。
alert(msg):显式带有一段消息和一个确认按钮的警告框。
confirm(msg) - 对话框 -- 确认:true,取消:false
setInterval(function,毫秒值) - 定时器 --按照指定的周期(以毫秒计)循环调用函数
setTimeout(function,毫秒值) - 定时器 -- 在指定的毫秒数后调用函数
location对象:地址栏对象,获取或者设置地址栏地址,设置地址栏地址可以实现页面跳转效果。
// confirm(msg) - 对话框 -- 确认:true,取消:false
let flag=confirm("您确定要删除吗?");
if(flag){
alert("开始删除数据...");
}

    //setInterval(function,毫秒值) - 定时器 --按照指定的周期(以毫秒计)循环调用函数
    setInterval(function(){
        console.log("循环定时器执行");
    },2000);

    //setTimeout(function,毫秒值) - 定时器 -- 在指定的毫秒数后调用函数
    setTimeout(function(){
        console.log("一次定时器执行");
    },2000);

    //获取地址栏地址
    let href=location.href;
    location.href="http://www.baidu.com"//效果:会页面跳转
    console.log(href);

4、JS对象-DOM对象
1、概念
DOM是文档对象模型,将HTML的各个组成部分封装为对应的对象:

Document:整个文档对象
Element:元素对象
Attribute:属性对象
Text:文本对象
Comment:注释对象
JavaScript通过DOM,就能够对HTML进行操作:

改变HTML元素的内容
改变HTML元素的属性
改变HTML元素的样式(CSS)
对HTML DOM事件作出反应
2、DOM操作-获取元素对象
HTML中的Element对象可以通过Document对象获取,而Document对象是通过window对象获取的。
获取:使用Document对象的方法来获取(ES5提供的方法)
document.getElementById:根据id属性值获取,返回一个Element对象
document.getElementsByTagName:根据标签名获取,返回Element对象数组
document.getElementsByName:根据name属性值获取,返回Element对象数组
document.getElementsByClassName:根据class属性值获取,返回Element对象数组
获取:使用Document对象的方法来获取(ES6提供的方法)
document.querySelector("css选择器"):根据css选择器获取一个Element对象
document.querySelectorAll("css选择器"):根据css选择器获取一个Element对象数组
3、DOM操作-使用元素对象
Element:元素对象的使用(查阅文档)
常用操作:
访问内容体:元素对象.innerHTML h2.innerHTML="scc";
访问输入框内容:元素对象.value console.log(usernameInput.value);
访问属性:元素对象.属性名 img.src="img/on.gif";
访问样式:元素对象.style.样式属性名 h2.style.color="red";
步骤:
获取元素对象
操作内容、属性、样式

教育

程序员

电影
旅游
游戏


1、变量、常量、数据类型
变量可以用let定义,常量用const定义
常量定义后不能被重新赋值
// 字符串类型 string
let name="sss";
// 数字类型 number
let balance=100;
// 布尔类型 boolean
let tv=true;
// 对象 object
let boy={
name:"sss",
age:20,
weight:88.7
}
// 键值对 Map
let girl=new Map([
["name","luna"],
["age",18]
])
console.log(girl);//Map(2) {'name' => 'luna', 'age' => 18}
// 元素不重复 Set
let number=new Set([1,2,3,2,'2']);
console.log(number);//{1, 2, 3, '2'}
// 数组 Array
let arr=['a',100,'b'];
// 函数 function
function add(a,b){
console.log(a+b);
}
// 类 class
class Person{
constructor(name,age){
this.name=name;
this.age=age;
}
info(){
console.log(this.name,this.age);
}
}
let person=new Person("sss",18);
person.info();

2、函数
// 定义函数
function add(){
let i=5;
return i;
}

    // 传参
    function sub(number){
        return number-1;
    }

    // 默认值
    function getPage(page = 10){
        return page;
    }

    // 匿名函数
    let arr = function(x,y){
        return x+y;
    }

    // 箭头函数(匿名函数的一种)
    let plus = (x,y)=>{
        return x+y;
    }

    // 隐式返回
    let nun = (x,y)=> x+y;

3、数组
// 定义数组
let arr=[10,11];

    // push 向数组末尾添加一个或多个元素,并返回修改后数组的长度
    let arrlength=arr.push(12,13);

    // unshift 向数组开头添加一个或多个元素,并返回修改后数组的长度
    let arrlength2=arr.unshift(19);

    // shift 删除数组中的第一个元素,并返回被删除元素
    let delet1=arr.shift();

    // pop 删除数组中的最后一个元素,并返回被删除元素
    let delet2=arr.pop();

    // splice 删除元素,并返回包含被删除元素的数组 splice(要删除元素的索引位置,要删除的元素数量)
    let delet3=arr.splice(2,1);

    // reverse 反转数组
    arr.reverse();

    // sort 数组中的元素按首字母排序
    arr.sort();

    // 数组中的元素按数字排序
    let arr2=[1,5,6,7,2];
    arr2.sort((a,b)=>a-b);

    // filter 符合筛选条件的元素,返回一个新的数组
    let arr3=arr2.filter((value,index)=>{
        return value>5;
    })

    // concat 合并数组
    arr.concat(arr2);

    // 使用for...of遍历数组
    for (let i of arr) {
        console.log(i);
    }

    // 使用forEach遍历数组
    arr.forEach(value=>{
        console.log(value);
    })

4、Set集合、扩展运算符
// 创建Set集合
let set=new Set();
let set2=new Set(['a','b','c']);

    //add 添加新的元素
    set2.add("n");

    // delete 删除元素
    set2.delete("b");

    // has 检查Set集合是否包含指定元素
    console.log(set2.has("b"));

    // size 获取Set集合的大小
    console.log(set.size);

    // Array.from()将Set集合转换为数组
    let arr=Array.from(set2);

    // 扩展运算符...将Set集合转换为数组
    let arr2=[...set2];

    // 扩展运算符是用于展开可迭代对象(如数组、字符串等)
    let arr3="sssskkkals";
    console.log([...arr3]);//['s', 's', 's', 's', 'k', 'k', 'k', 'a', 'l', 's']

    // for...of循环遍历
    for (let ik of arr3) {
        console.log(ik);
    }

    // forEach方法遍历
    arr3.forEach((value) => {
        console.log(value);
    });

    // clear 清空Set
    set2.clear();

    // 数组去重
    let num=[1,20,392,329,1,1,3,20];
    let set3=new Set(num);

5、Map集合
// 创建Map集合
let map=new Map();
let map2=new Map([
["name","sss"],
["age",20],
["gender","girl"]
])

    //set 添加新的元素
    //在Map集合中, 每个键都是唯一的, 当使用相同的键再次调用set()方法时, 会替换原来键对应的值
    map2.set("height",170);

    // delete 删除元素
    map2.delete("gender");

    // has 检查Map集合是否包含指定元素
    console.log(map2.has("gender"));

    // size 获取Map集合的大小
    console.log(map2.size);

    // Array.from()将Map集合转换为数组
    let arr=Array.from(map2);

    // 扩展运算符...将Map集合转换为数组
    let arr2=[...map2];

    // for...of循环遍历
    //解构可以从数组或对象中提取值并赋给变量
    //[key, value] 就是一种解构语法, 用于将 Map 集合中的键值对解构为 key 和 value 两个变量
    for (let [key,value] of map2) {
        console.log(key,value0)
    }

    // forEach方法遍历
    map2.forEach((value,key) => {
        console.log(key,value);
    });

    // clear 清空Map
    map2.clear();

6、对象
// 创建对象
let person={
name:"sss",
gender:"girl",
age:26
};

    // 向对象中添加新的属性
    person.height=170;

    //  在对象中,每个键都是唯一的,当使用相同的键再次赋值时,会替换原来键对应的值
    person.age=20;

    //  删除属性
    delete person.gender;

    //  检查对象是否包含指定属性
    let i = "age" in person;
    console.log(i);

    //  获取对象属性名的数组
    Object.keys(person);

    //  获取对象的属性数量
    console.log(Object.keys(person).length);

    //  获取对象的键值对数组
    Object.entries(person);

    // 使用for...in循环遍历对象 
    // for...of 用于遍历可迭代对象[如数组、Set、Map、字符串等]
    // for...in 用于遍历对象的可枚举属性
    for (let key in person) {
        console.log(key,person[key]);
    }

    // 使用forEach方法遍历
    Object.entries(person).forEach(([key,value])=>{
        console.log(key,value);
    })

    // 清空对象
    person={};

7、类class、模板字符串、私有属性、存取器、继承
class Person{
name;
// 私有属性,仅在类内部可访问和操作的属性, 外部无法直接访问和修改

        #age;

        // 构造函数
        constructor(name,age){
            this.#age=age;
            this.name=name;
        }

        // 使用存取器getter获取私有属性
        get age(){
            return this.#age;
        }
相关文章
|
28天前
|
JavaScript
js学习--制作猜数字
js学习--制作猜数字
35 4
js学习--制作猜数字
|
27天前
|
JavaScript
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
这篇文章介绍了如何将webpack的配置文件分离成开发环境和生产环境的配置文件,以提高打包效率。
42 1
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
|
11天前
|
存储 JavaScript 前端开发
JS的ES6知识点
【10月更文挑战第19天】这只是 ES6 的一些主要知识点,ES6 还带来了许多其他的特性和改进,这些特性使得 JavaScript 更加现代化和强大,为开发者提供了更多的便利和灵活性。
15 3
|
23天前
|
JavaScript 前端开发 索引
JavaScript ES6及后续版本:新增的常用特性与亮点解析
JavaScript ES6及后续版本:新增的常用特性与亮点解析
21 4
|
26天前
|
自然语言处理 JavaScript 前端开发
JavaScript高级——ES6基础入门
JavaScript高级——ES6基础入门
19 1
|
27天前
|
JavaScript
js学习--商品列表商品详情
js学习--商品列表商品详情
15 2
|
27天前
|
JavaScript
js学习--九宫格抽奖
js学习--九宫格抽奖
15 2
|
6天前
|
前端开发 JavaScript
JavaScript新纪元:ES6+特性深度解析与实战应用
【10月更文挑战第29天】本文深入解析ES6+的核心特性,包括箭头函数、模板字符串、解构赋值、Promise、模块化和类等,结合实战应用,展示如何利用这些新特性编写更加高效和优雅的代码。
16 0
|
27天前
|
JavaScript
js学习--开屏弹窗
js学习--开屏弹窗
32 1
|
27天前
|
JavaScript
js学习--抽奖
js学习--抽奖
12 1