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

news2024/11/20 12:41:41

目录

  • 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.coloradmin.cn/o/1798756.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

100V 15A TO-252 N沟道MOS管 HC070N10L 惠海

MOS管的工作原理是基于在P型半导体与N型半导体之间形成的PN结&#xff0c;通过改变栅极电压来调整沟道内载流子的数量&#xff0c;从而改变沟道电阻和源极与漏极之间的电流大小。由于MOS管具有输入电阻高、噪声小、功耗低等优点&#xff0c;它们在大规模和超大规模集成电路中得…

【ARM Cache 及 MMU 系列文章 6.3 -- ARMv8/v9 Cache Tag数据读取及分析】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 Cache Tag 数据读取测试代码Cache Tag 数据读取 在处理器中,缓存是一种快速存储资源,用于减少访问主内存时的延迟。缓存通过存储主内存中经常访问的数据来实现这一点。为了有效地管…

java高并发实战<2>

##>>> 我们解决我们重复下单的问题 我们可以使用mysql 的唯一索引 &#xff0c;在我们的数据库层面保证不能重复下单 我可以控制是唯一的 同一个用户 针对于同一个商品只可以买一个 重复下单 优化 我们 >1.使用数据库唯一索引 一旦是 2个请求 因为mysql 有行级…

Turnitin揭露AI写作痕迹,是否会影响论述是重复率?

Turnitin&#xff08;www.checktoo.com&#xff09;为学术界提供了便捷的服务&#xff0c;以确保论文的原创性和学术诚信。然而&#xff0c;许多学生和研究人员在使用Turnitin时&#xff0c;常常会想Turnitin查论文AI率和重复率之间的关系。那么&#xff0c;使用Turnitin查重论…

CCF-GESP 等级考试 2023年9月认证C++四级真题解析

一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 第 1 题 ⼈们所使⽤的⼿机上安装的App通常指的是&#xff08; &#xff09;。 A. ⼀款操作系统B. ⼀款应⽤软件C. ⼀种通话设备D. 以上都不对 正确答案&#xff1a;B. ⼀款应⽤软件 解析&#xff1a;App是"…

【Python实战】使用postman测试flask api接口

cookie_demo.py # -*- coding: utf-8 -*- """ Time : 2024/5/28 17:14 Author : 娜年花开 File : cookie_demo.py Desc : 需求&#xff1a;用户需要先登陆&#xff0c;登陆之后&#xff0c;通过Cookie来判断是不是能够访问登录后的接口userinfo &quo…

机器学习扩展包MLXtend绘制分类模型决策边界

公众号&#xff1a;尤而小屋编辑&#xff1a;Peter作者&#xff1a;Peter 大家好&#xff0c;我是Peter~ 继续更新机器学习扩展包MLxtend的文章。本文介绍如何使用MLxtend来绘制与分类模型相关的决策边界decision_regions。 导入库 导入相关用于数据处理和建模的库&#xff…

OpenCV-最小外接圆cv::minEnclosingCircle

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 函数原型 void minEnclosingCircle(InputArray points, Point2f& center, float& radius); 参数说明 InputArray类型的…

22 - 游戏玩法分析 IV(高频 SQL 50 题基础版)

22 - 游戏玩法分析 IV 考点&#xff1a; 聚合函数 # 日期相加 date_add(min(event_date),INTERVAL 1 DAY) select round(count(distinct player_id)/(select count(distinct player_id) from Activity),2) fraction fromActivity where-- 如果日期加一天的数据能在表中…

探索800G数据中心的高速布线解决方案

随着技术的快速进步&#xff0c;数据中心正以前所未有的速度迅速发展。虽然100G和400G数据中心已经普及&#xff0c;但800G数据中心正逐渐流行并展现出增长趋势。由于对高速数据传输的需求呈指数级增长&#xff0c;因此需要高效、可靠的线缆连接解决方案。本文将介绍800G数据中…

Python 机器学习 基础 之 【常用机器学习库】 scikit-learn 机器学习库

Python 机器学习 基础 之 【常用机器学习库】 scikit-learn 机器学习库 目录 Python 机器学习 基础 之 【常用机器学习库】 scikit-learn 机器学习库 一、简单介绍 二、scikit-learn 基础 1、安装 scikit-learn 2、导入 scikit-learn 3、数据准备 4、数据分割 5、训练模…

党史馆3d网上展馆

在数字化浪潮的推动下&#xff0c;华锐视点运用实时互动三维引擎技术&#xff0c;为用户带来前所未有的场景搭建体验。那就是领先于同行业的线上三维云展编辑平台搭建编辑器&#xff0c;具有零基础、低门槛、低成本等特点&#xff0c;让您轻松在数字化世界中搭建真实世界的仿真…

MineAdmin 前端打包后,访问速度慢原因及优化

前言&#xff1a;打包mineadmin-vue前端后&#xff0c;访问速度很慢&#xff0c;打开控制台&#xff0c;发现有一个index-xxx.js文件达7M&#xff0c;加载时间太长&#xff1b; 优化&#xff1a; 一&#xff1a;使用文件压缩&#xff08;gzip压缩&#xff09; 1、安装compre…

【乐吾乐3D可视化组态编辑器】数据接入

数据接入 本文为您介绍3D数据接入功能&#xff0c;数据接入功能分为三个步骤&#xff1a;数据订阅、数据集管理、数据绑定 编辑器地址&#xff1a;3D可视化组态 - 乐吾乐Le5le 数据订阅 乐吾乐3D组态数据管理功能由次顶部工具栏中按钮数据管理打开。 在新弹窗中选择数据订阅…

【C/C++】IO流

目录 前言&#xff1a; 一&#xff0c;C语言的I/O流 二&#xff0c;C的I/O流 2-1&#xff0c;C标准IO流 2-2&#xff0c;IO流的连续输入 前言&#xff1a; “流”即是流动的意思&#xff0c;是物质从一处向另一处流动的过程&#xff0c;是对一种有序连续且具有方向性的数据…

【计算机网络】初识IP协议

前言 IP协议&#xff0c;可谓是程序猿必备的基础功之一&#xff0c;这不仅仅是因为IP协议为面试的常客&#xff0c;更是因为IP协议为整个网络协议中最重要、最常被人接触的一种协议。例如IP地址就几乎为所有人所熟知的一种概念&#xff0c;无论是浏览网页、聊天、打游戏&#x…

网络编程: 高级IO与多路转接select,poll,epoll的使用与介绍

网络编程: 高级IO与多路转接select,poll,epoll的使用与介绍 前言一.五种IO模型1.IO的本质2.五种IO模型1.五种IO模型2.同步IO与异步IO3.IO效率 二.非阻塞IO1.系统调用介绍2.验证代码 三.select多路转接1.系统调用接口2.写代码 : 基于select的TCP服务器1.封装的Socket接口2.开始写…

HarmonyOS NEXT星河版之自定义List下拉刷新与加载更多

文章目录 一、加载更多二、下拉刷新三、小结 一、加载更多 借助List的onReachEnd方法&#xff0c;实现加载更多功能&#xff0c;效果如下&#xff1a; Component export struct HPList {// 数据源Prop dataSource: object[] []// 加载更多是否ingState isLoadingMore: bool…

WebGIS常用技术体系记录

1、数据下载 &#xff08;1&#xff09;OSM下载开源矢量数据&#xff0c;数据较全&#xff0c;但是质量一般&#xff1b; &#xff08;2&#xff09;地理空间数据云下载DEM影像&#xff1b; &#xff08;3&#xff09;datav下载行政区 http://datav.aliyun.com/tools/atlas/…

了解Maven,并配置国内源

目录 1.了解Maven 1.1什么是Maven 1.2快速创建一个Maven项⽬ 1.3Maven 核⼼功能 1.3.1项⽬构建 1.3.2依赖管理 1.4Maven Help插件 2.Maven 仓库 2.1中央仓库 2.2本地仓库 3.Maven 设置国内源 1.查看配置⽂件的地址 2.配置国内源 3.设置新项⽬的setting 1.了解Ma…