关于JavaScript技术的基础内容汇总

目录

  • JavaScript 基础知识
  • 1. JavaScript 基本语法
  • 2. 变量和常量
  • 3. 数据类型
  • 4. 运算符
  • 5. 控制结构
  • 6. 函数
  • 7. 对象
  • 8. 数组
  • 9. 事件处理
  • 10. DOM 操作

JavaScript 基础知识

学习 JavaScript(简称 JS)是前端开发的重要组成部分,它是一种动态的、弱类型的脚本语言,用于实现网页的交互功能。以下是学习 JavaScript 过程中需要掌握的基本概念、符号和对应的意义。
在这里插入图片描述

1. JavaScript 基本语法

  • 语句和分号

    • 语句是 JavaScript 程序的基本单位。每个语句通常以分号(;)结束,但在许多情况下,分号可以省略。
    • 示例:let x = 5;
  • 注释

    • 单行注释:以 // 开头。
      // 这是一个单行注释
      
    • 多行注释:以 /* 开头,以 */ 结束。
      /*这是一个多行注释
      */
      

2. 变量和常量

  • 变量声明
    • var:声明一个变量(不推荐使用,可能引发作用域问题)。
    • let:声明一个块级作用域的变量(推荐使用)。
    • const:声明一个块级作用域的常量,一旦赋值不能再改变。
    • 示例:
      var a = 10;
      let b = 20;
      const c = 30;
      

3. 数据类型

  • 基本数据类型

    • Number:数字类型。
      let num = 42;
      
    • String:字符串类型。
      let str = "Hello, world!";
      
    • Boolean:布尔类型。
      let isTrue = true;
      
    • Undefined:未定义类型。
      let undef;
      
    • Null:空值类型。
      let empty = null;
      
  • 复合数据类型

    • Object:对象类型。
      let obj = { name: "Alice", age: 25 };
      
    • Array:数组类型。
      let arr = [1, 2, 3, 4, 5];
      
    • Function:函数类型。
      function greet() {console.log("Hello!");
      }
      

4. 运算符

  • 算术运算符

    • +:加法。
    • -:减法。
    • *:乘法。
    • /:除法。
    • %:取模。
    • ++:自增。
    • --:自减。
    • 示例:
      let x = 10;
      let y = x + 5; // 15
      
  • 赋值运算符

    • =:赋值。
    • +=:加赋值。
    • -=:减赋值。
    • *=:乘赋值。
    • /=:除赋值。
    • %=:模赋值。
    • 示例:
      let x = 10;
      x += 5; // x 现在是 15
      
  • 比较运算符

    • ==:相等。
    • !=:不等。
    • ===:严格相等(值和类型都相等)。
    • !==:严格不等(值和类型都不相等)。
    • >:大于。
    • <:小于。
    • >=:大于或等于。
    • <=:小于或等于。
    • 示例:
      let x = 5;
      let y = 10;
      console.log(x < y); // true
      
  • 逻辑运算符

    • &&:与。
    • ||:或。
    • !:非。
    • 示例:
      let x = true;
      let y = false;
      console.log(x && y); // false
      

5. 控制结构

  • 条件语句

    • if 语句
      if (condition) {// 执行代码块
      }
      
    • if...else 语句
      if (condition) {// 执行代码块
      } else {// 执行代码块
      }
      
    • if...else if...else 语句
      if (condition1) {// 执行代码块
      } else if (condition2) {// 执行代码块
      } else {// 执行代码块
      }
      
  • 循环语句

    • for 循环
      for (let i = 0; i < 10; i++) {console.log(i);
      }
      
    • while 循环
      let i = 0;
      while (i < 10) {console.log(i);i++;
      }
      
    • do...while 循环
      let i = 0;
      do {console.log(i);i++;
      } while (i < 10);
      
  • switch 语句

    let x = 2;
    switch (x) {case 1:console.log("One");break;case 2:console.log("Two");break;default:console.log("Other");break;
    }
    

6. 函数

  • 函数声明
    function add(a, b) {return a + b;
    }
    
  • 函数表达式
    const add = function(a, b) {return a + b;
    };
    
  • 箭头函数
    const add = (a, b) => a + b;
    

7. 对象

  • 创建对象

    let person = {name: "John",age: 30,greet: function() {console.log("Hello, " + this.name);}
    };
    
  • 访问对象属性

    console.log(person.name); // John
    console.log(person["age"]); // 30
    
  • 修改对象属性

    person.name = "Jane";
    

8. 数组

  • 创建数组

    let numbers = [1, 2, 3, 4, 5];
    
  • 访问数组元素

    console.log(numbers[0]); // 1
    
  • 数组方法

    • push:在数组末尾添加一个元素。
      numbers.push(6);
      
    • pop:移除数组末尾的元素。
      numbers.pop();
      
    • shift:移除数组第一个元素。
      numbers.shift();
      
    • unshift:在数组开头添加一个元素。
      numbers.unshift(0);
      
    • forEach:对数组的每个元素执行一次提供的函数。
      numbers.forEach(function(number) {console.log(number);
      });
      

9. 事件处理

  • 添加事件监听

    document.getElementById("myButton").addEventListener("click", function() {alert("Button clicked!");
    });
    
  • 移除事件监听

    function clickHandler() {alert("Button clicked!");
    }
    document.getElementById("myButton").addEventListener("click", clickHandler);
    document.getElementById("myButton").removeEventListener("click", clickHandler);
    

10. DOM 操作

  • 选择元素

    • getElementById
      document.getElementById("myElement");
      
    • getElementsByClassName
      document.getElementsByClassName("myClass");
      
    • querySelector
      document.querySelector(".myClass");
      
  • 修改元素内容

    document.getElementById("myElement").innerText = "New content";
    document.getElementById("myElement").innerHTML = "<b>New content</b>";
    
  • 修改元素样式

    document.getElementById("myElement").style.color = "red";
    
  • 创建和添加元素

    let newElement = document.createElement("div");
    newElement.innerText = "Hello, World!";
    document.body.appendChild(newElement);
    ``
    

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/349832.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【总线】AMBA总线架构的发展历程

目录 引言 发展历程 第一代AMBA&#xff08;AMBA 1&#xff09; 第二代AMBA&#xff08;AMBA 2&#xff09; 第三代AMBA&#xff08;AMBA 3&#xff09; 第四代AMBA&#xff08;AMBA 4&#xff09; 第五代AMBA&#xff08;AMBA 5&#xff09; AMBA协议简介 ASB&#x…

【Linux】常见指令的使用

文章目录 which指令stat 指令wc指令echo指令tree 指令whoami指令clear指令alias指令ls指令pwd指令cd 指令touch指令mkdir指令&#xff08;重要&#xff09;rmdir指令 && rm 指令&#xff08;重要&#xff09;man指令&#xff08;重要&#xff09;cp指令&#xff08;重要…

Redis原理篇——分布式锁

Redis原理篇——分布式锁 分布式锁是什么&#xff1f;分布式锁有哪些特性&#xff1f;分布式锁常用实现方式Redis 实现分布式锁一、简单的 Redis 锁二、带过期时间的 Redis 锁三、加上 Owner 的 Redis 锁四、Lua 脚本确保原子性 分布式锁是什么&#xff1f; 分布式锁是在分布式…

数据中台:生产制造产业链的“智慧大脑”!

在当今激烈竞争的生产制造领域&#xff0c;数据中台正扮演着至关重要的角色&#xff0c;它就像是产业链的“智慧大脑”&#xff0c;引领着产业的发展方向&#xff01;数据中台在生产制造产业链、生态链中起到以下关键作用&#xff1a; 1. 数据整合与共享&#xff1a;将产业链各…

R可视化:R语言基础图形合集

R语言基础图形合集 欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 基础图形可视化 数据分析的图形可视化是了解数据分布、波动和相关性等属性必…

物业客服“逆袭”记:从被质疑到被点赞,只因用了这款小程序

作为物业服务企业来说&#xff0c;物业客服人员是物业公司的核心部门。客服人员不仅仅要进行各部门之间的工作协调沟通&#xff0c;而且也是物业与业主沟通的主要桥梁。但是&#xff0c;往往客服人员经常被传统的报修方式所困扰&#xff0c;导致业主对物业客服人员存在质疑与谩…

Linux:多线程的操作

多线程操作 进程与线程线程的创建 create_pthread创建线程池给线程传入对象的指针 线程等待 pthread_join退出线程 pthread_exit线程等待参数 retval 与 线程退出参数 retval 线程中断 pthread_cancel获取线程编号 pthread_self线程分离 pthread_detach 进程与线程 进程是资源…

OpenCV读取和显示和保存图像

# 导入 OpenCV import cv2 as cv # 读取图像 image cv.imread(F:\\mytupian\\xihuduanqiao.jpg) # 创建窗口 #显示图像后&#xff0c;允许用户随意调整窗口大小 cv.namedWindow(image, cv.WINDOW_NORMAL) # 显示图像 cv.imshow(image, image)# 将图像保存到文件 success cv…

Linux之网络编程

Linux之网络编程 TCP协议 TCP(Transmission ControlProtocol) : 传输控制协议&#xff0c;是一个 面向连接的、可靠的、基于字节流的传输层的协议。TCP 协议建立的是一种点到点的&#xff0c;一对一的可靠连接协议 特点&#xff1a; 数据无丢失数据无失序数据无错误数据无重…

Zynq7000 系列FPGA模块化仪器

• 基于 XilinxXC7Z020 / 010 / 007S • 灵活的模块组合 • 易于嵌入的紧凑型外观结构 • 高性能的 ARM Cortex 处理器 • 成熟的 FPGA 可编程逻辑 &#xff0c;基于 IP 核的软件库 FPGA 控制器 Zynq7000 系列模块是基于 Xilinx XC7Z020/010/007S 全可编程片上系统 (SoC) 的…

Opengauss开源4年了,都谁在向其贡献代码?

2020 年 6 月 30 日&#xff0c;华为将Opengauss正式开源&#xff0c;截止目前已经过去4年时间&#xff0c;社区力量对这款数据库产品都起到了哪些作用&#xff0c;谁的代码贡献更大一些&#xff1f; 根据社区官网信息统计&#xff0c;截止目前&#xff08;2024年6月12日&…

【Java基础】OkHttp 超时设置详解

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

光纤跳线(又称光纤连接器)的种类

光纤跳线&#xff08;又称光纤连接器&#xff09;&#xff0c;也就是接入光模块的光纤接头&#xff0c;也有好多种&#xff0c;且相互之间不可以互用。SFP模块接LC光纤连接器&#xff0c;而GBIC接的是SC光纤连接器。下面对网络工程中几种常用的光纤连接器进行详细的说明&#x…

数字化制造案例分享以及数字化制造能力评估(34页PPT)

资料介绍&#xff1a; 通过全面的数字化企业平台和智能制造技术的应用&#xff0c;制造型企业不仅提升了自身的竞争力&#xff0c;也为整个制造业的数字化转型提供了借鉴。同时&#xff0c;数字化制造能力的评估是企业实现数字化转型的关键环节&#xff0c;需要从技术变革、组…

【C++】STL中list的使用

前言&#xff1a;在前面学习的 过程中我们学习了STL中的string,vector&#xff0c;今天我们来进一步的学习STL中的list的使用方法。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:高质量&#xff23;学习 &#x1f448; &#x1f4af;代…

Flowable-决策表设计器

✨✨✨ 最好用的Flowable决策表设计器 ✨✨✨ 最好用的Flowable流程设计器 本文中内容和案例出自贺波老师的书《深入Activiti流程引擎&#xff1a;核心原理与高阶实战》&#xff0c;书中的介绍更全面、详细&#xff0c;推荐给大家。 深入Activiti流程引擎

今年的就业环境不容乐观,你想好怎么应对了吗

今年的就业环境不容乐观&#xff0c;你想好怎么应对了吗 毕业生进入职场的历程往往充满挑战和未知&#xff0c;尤其是在当前经济环境下&#xff0c;失业问题愈发凸显。本文通过分享几位年轻人的真实经历&#xff0c;剖析大学生及职场人士面临的困境&#xff0c;并提供应对策略…

QT信号与槽/窗口组件优化

使用手动连接&#xff0c;将登录框中的取消按钮使用第二中连接方式&#xff0c;右击转到槽&#xff0c;在该槽函数中&#xff0c;调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断u界面上输入的账号是否为"admin"&#xff0c;…

简单聊一下Oracle,MySQL,postgresql三种锁表的机制,行锁和表锁

MySQL&#xff1a; MySQL使用行级锁定和表级锁定。行级锁定允许多个会话同时写入表&#xff0c;适用于多用户、高并发和OLTP应用。表级锁定只允许一个会话一次更新表&#xff0c;适用于只读、主要读取或单用户应用。 比如mysql开启一个窗口执行 begin; update xc_county_a…

渗透测试和红蓝对抗是什么?二者之间有何区别?

在网络安全这个庞大的体系中&#xff0c;渗透测试、红蓝对抗是比较常见的专业名词&#xff0c;承担着非常重要的作用&#xff0c;那么什么是渗透测试、红蓝对抗?红蓝对抗和渗透测试有什么区别?小编通过这篇文章为大家介绍一下。 渗透测试 渗透测试&#xff0c;是通过模拟黑…