JavaScript高级教程

这篇教程详细介绍了JavaScript的高级特性,包括箭头函数的使用、数组常用方法如forEach、map、every等,深入讲解了面向对象编程,特别是ES6中的新特性如类、构造函数、继承和this指针的应用。此外,还涵盖了原型模式、原型继承以及数据去重等核心概念。
摘要由CSDN通过智能技术生成

JavaScript高级教程

箭头函数

  • 箭头函数是匿名函数,一般做为参数传递

    //以前的函数格式
    let test = function (a,b){
         
        let sum = a + b 
        return sum
     }
     // 简写成以下格式  
     let test = (参数) => {
         函数体}
    
  • 可以简记成把function变成了符号=>,然后位置放在了参数的右边

  • 注意点:

    1. 如果函数体只有一句,那么可以省略{},同时默认会返回函数体的结果,不能写return

    2. 如果只有一个参数,那么可以省略()

    3. 如果没有参数,()也不能省略

  • 剪头函数返回对象需要加return{},如果一定要忽略return的话,就在花括号外面加个括号({})

     const func4 = (num) => {
         
            return {
          a: 123 };
          };
     console.log(func4());
    
    const func7=(num)=>({
         a:123});
    
  • 各种形式的写法

    1. 没有形参、没有返回值、业务只有一行代码 大括号都可以省略

      const func3 = () => console.log('执行业务1');
      
    2. 只有一个形参、没有返回值、业务只有一行代码

      形参只有一个的时候,括号可以省略

      const func4 = (num) => console.log(num + 1);
      const func4 = num => console.log(num + 1);
      
    3. 两个或者多个参数(括号不能省略)、没有返回值、业务只有一行代码

      const func5 = (a,b) =>console.log(a + b)
      
    4. 没有形参,有返回值 业务两行代码

      const func6 = () => {
             
            let a = 100
            return a + 10
      }
      console.log(func6())  //结果110
      
    5. 没有形参、有返回值,业务一行代码

      const func7 = () => {
             
           return 100 +200
      }
      console.log(func7());  //结果300
      

数组常见的方法

方法 描述
every() 检测数值元素的每个元素是否都符合条件。
filter() 检测数值元素,并返回符合条件所有元素的数组。
find() 返回符合传入测试(函数)条件的数组元素。
findIndex() 返回符合传入测试(函数)条件的数组元素索引。
forEach() 数组每个元素都执行一次回调函数。
includes() 判断一个数组是否包含一个指定的值。
indexOf() 搜索数组中的元素,并返回它所在的位置。
isArray() 判断对象是否为数组。
join() 把数组的所有元素放入一个字符串。
map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
reduce() 将数组元素计算为一个值(从左到右)。
reverse() 反转数组的元素顺序。
some() 检测数组元素中是否有元素符合指定条件。
sort() 对数组的元素进行排序。

forEach()

  • 数组每个元素都执行一次回调函数
  • for循环可以通过 break来打断、 forEach不能通过break打断
forEach(数组的值,数组的下标)
function forEach() {
   
    const arr = ['a','b','c','d','e']
    //分别打印
   /* arr.forEach(function(value,index) {
        console.log(`值是:${value}  下标是:${index}`)
    })*/
   //可以简写成以下
    arr.forEach((value,index) =>
        console.log(`值是:${
     value}  下标是: ${
     index}`)   
  )
}

map()

  • map 根据原来的数组 来返回新的数组
  • 也会循环数组 在循环的回调函数中可以返回新的数据 组装成新的数组
const list=[10,11,12];
const newList=list.map(value=>value+1);
console.log(newList);// [11,12,13]
const objectArr=[{
   name:"悟空"},{
   name:"八戒"}];
const newObjectArr=objectArr.map(value=>{
   
    // 给对象增加属性
    value.color="red"; 
    return value
})
console.log(newObjectArr);// [{name:"悟空",color:"red"},{name:"八戒",color:"red"}]

every()

  • 会返回 true或者false
  • 如果数组中每一个元素都符合条件,every返回true
const arr = [1, 6, 3, 4];
// const result = arr.every((value) => {
   
//    if (value < 5) {
   
//      return true;
//    } else {
   
//      return false;
//    }
//  });
//可以简写以下格式
 const result = arr.every((value) => value < 5)
 console.log(result);  //false
  • every 如果是空数组,调用every 直接返回true
let arr=[];
const result=arr.every(value=>console.log(12));
console.log(result);// result = true

some()

  • 数组中只要有一个元素符合条件,some返回true
const arr = [1, 3, 4, 6, 2];
// 这个数组里面有没有元素大于6的
const result = arr.some((value) => value > 6);
console.log(result);  //false

filter()

  • 过滤出满足条件的数据到新的数组
const arr = [1, 2, 3, 4, 5, 6, 7];
//筛选出奇数
const newArr = arr.filter((value) => value % 2 !== 0);
console.log(newArr);  //[ 1, 3, 5, 7 ]

set()

  • 在set对象中会过滤重复的数据
const arr = ['a','b',1,2,3]
 //使用构造函数new一个set对象出来,同时传入数组数据
 const set = new Set(arr)
// 给set添加数据的时候 使用add方法,在set对象中会过滤重复的 
 set.add(1)
 set.add(2)
 set.add(4)
 // 把对象转换为数组
 let newArr = [...set] 
 console.log(newArr)

面向对象

对象在内存中的示意图

img

创建对象的方式

字面量
  • 简单粗暴
  • 不适合创建多个同样类型的对象的场景
  • 不方便维护
const obj ={
    
    name:"悟空",
    height:100
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
欢迎您继续学习Javascript高级教程。我还将向你们展示<br>Javascript的许多神奇功能,使你能够制作真正对多媒体应用<br>程序。 <br>今天我们将学习一项很有用而且很有趣的内容:cookies - 这<br>是用来记录访问过你的网页的人的信息。利用Cookies你能记录<br>访问者的姓名,并且在该访问者再次访问你的站点时向他发出<br>热情的欢迎信息。你还可以利用cookie记忆用户端的特点 - 如<br>果访问者的所接入的网线的速度慢,cookie可以自动告诉你在<br>给其发送网页的时候只发送尽可能少的图片内容。<br><br>只要你在合理的范围内使用cookies(不要用它探询用户的个人<br>隐私),cookies还是相当实用得。所以我要向你们介绍cookies<br>的工作原理,但是在正式开始之前,我们先谈两个JavaScript<br>内容:有趣的字符串处理以及相关数组。>><br>由于cookies牵扯到向用户的硬盘写盘和读取信息,所以就涉及<br>一个保密性的问题.如果你需要大量什么cookies,你应该阅读<br>一下Marc Slayton写的cooikies揭密以及重新考察cookies.这<br>些文章将告诉你cookie的实质和作用范围以及其内在的局限性.<br>其最重要的局限性在于:不是每个人的浏览器都欢迎cookies.<br>即便是用户的浏览器欢迎cookies,但用户也有可能拒绝cookies<br>的访问(大部分人还是欢迎的)每个域名只分配20个cookies,<br>所以要节省着什么它们.Cookies不得大于4 KB,当然4,000字<br>节的容量是足够的了.<br><br>cookie路径和域 这是掌握cookie最后的一个障碍:缺省情况下cookie只能被在同一个Web服务器上同一个路径下设置了该cookie的网页读取.<br><br>对象和方法的识别 <br>最佳的方法是你先确定某一段代码具备什么功能,然后搞清楚<br>浏览器具备什么功能。 <br><br>对象给我们组织信息提供了一个很好的手段。首先我们看<br>看现实生活中的对象。比如说,一只猴子就是一个对象。它有<br>高度,宽度,毛发等等属性。所有的猴子都有相同的这些属性<br>类型,是属性的值的不同才使一只猴子与其它猴子区别开来。<br>猴子也有自己的方法,如玩儿play(),吃eat(),睡sleep()等。<br><br>对象很好理解还因为它能够保持有关词的“感觉”。例如<br>JavaScript中的聚焦方法focus(),很显然就是使什么东西成为<br>焦点。当聚焦方法作用到窗口对象时,它使该窗口弹到前面。<br>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈闲之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值