JavaScript重难点整理

1. 数据类型:


  - 原始类型:数字、字符串、布尔值、null、undefined。

let num = 10;let str = "Hello";let bool = true;let n = null;let u = undefined;

 - 引用类型:对象、数组、函数。

     let obj = { name: "John", age: 25 };let arr = [1, 2, 3, 4];let func = function() {console.log("Hello, world!");};

2. 变量和作用域:


   - 变量声明和赋值。

     var x = 5;let y = "Hello";const PI = 3.14;

 - 全局作用域和局部作用域。

     function myFunction() {let localVar = 10; // 局部变量console.log(localVar);}console.log(localVar); // 报错,局部变量在函数外不可访问

3. 运算符和表达式:


   - 算术运算符、比较运算符、逻辑运算符和位运算符。

     function myFunction() {let localVar = 10; // 局部变量console.log(localVar);}console.log(localVar); // 报错,局部变量在函数外不可访问

4. 控制流程:


   - 条件语句:if、switch。

     let num = 5;if (num > 0) {console.log("Positive");} else if (num < 0) {console.log("Negative");} else {console.log("Zero");}let color = "red";switch (color) {case "red":console.log("Red color");break;case "blue":console.log("Blue color");break;default:console.log("Other color");}

- 循环语句:for、while。

for (let i = 0; i < 5; i++) {console.log(i);}let i = 0;while (i < 5) {console.log(i);i++;}

5. 函数:


   - 函数定义和调用。

     function sayHello() {console.log("Hello, world!");}sayHello(); // 调用函数

   - 函数参数传递。

     function multiply(x, y) {return x * y;}let result = multiply(5, 3);console.log(result); // 输出 15

6. 数组和对象:


   - 数组的创建和操作

     let arr = [1, 2, 3];console.log(arr[0]); // 输出 1arr.push(4); // 添加元素到数组末尾console.log(arr.length); // 输出 4

   - 对象的创建和属性操作。

     let person = {name: "John",age: 25,};console.log(person.name); // 输出 "John"person.age = 30; // 修改属性值person.city = "New York"; // 添加新属性

7. 异步编程:


   - 回调函数。

     function fetchData(callback) {// 模拟异步操作setTimeout(function() {let data = "Data fetched";callback(data); // 调用回调函数}, 1000);}function handleData(data) {console.log(data);}fetchData(handleData);

   - Promise 和 async/await。

     function fetchData() {return new Promise(function(resolve, reject) {setTimeout(function() {let data = "Data fetched";resolve(data); // Promise 完成// reject("Error occurred"); // Promise 失败}, 1000);});}async functionhandleData() {try {let data = await fetchData(); // 等待 Promise 完成console.log(data);} catch (error) {console.log(error);}}handleData();

8. DOM 操作:


   - 选择元素和修改样式。

     let element = document.getElementById("myElement");element.style.backgroundColor = "red";

 - 添加事件监听器。

     let button = document.getElementById("myButton");button.addEventListener("click", function() {console.log("Button clicked");});

9. 错误处理和调试:


   - 捕获和处理异常。

     try {// 可能会抛出异常的代码} catch (error) {// 处理异常}```
- 使用开发者工具进行调试:现代浏览器提供了开发者工具,可以帮助调试 JavaScript 代码。
开发者工具提供了断点调试、变量查看、调用栈跟踪等功能,以帮助开发者识别和修复代码中的问题。

10. 模块化和工具链:

        模块导入和导出:JavaScript 模块化的概念允许将代码分割为独立的模块,并通过导入和导出功能在模块之间共享代码。

模块导出:使用 export 关键字将函数、变量或类等导出为模块的一部分。

// mathUtils.js
export function multiply(x, y) {return x * y;
}

模块导入:使用 import 关键字将其他模块中的函数、变量或类等导入到当前模块中使用。

// main.js
import { multiply } from "./mathUtils";
console.log(multiply(5, 3)); // 输出 15
  • 构建工具(如 Webpack、Babel)的使用:构建工具是用于处理 JavaScript 代码的工具链,它们可以帮助开发者进行转译、打包、优化等操作,以提高代码的性能和可维护性。
    • Webpack:Webpack 是一个常用的模块打包工具,可将多个 JavaScript 文件打包成一个或多个浏览器可识别的文件。它还支持处理其他资源,如样式表、图像等。
    • Babel:Babel 是一个流行的 JavaScript 转译器,可将最新版本的 JavaScript 代码转换为向后兼容的代码,以便在旧版浏览器中运行。

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

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

相关文章

基于PyTorch的共享单车使用数量预测研究

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、预测模型的实现3.1数据的获取和预处理3.2划分数据集3.3构建神经网络 二、PyTorch框架三 原理2.1前馈神经网络2.1.1 BP神经网络 四 预测效果验证4.1小批量梯度下降4.2批量梯度下降4.3随机梯度下降 五 结 论目录…

信息安全与网络安全的关系

前言 说说信息安全与网络安全的关系 如果你对网络安全入门感兴趣&#xff0c;那么你需要的话可以点击这里&#x1f449;【入门&进阶全套282G学习资源包免费分享&#xff01;】 一、包含和被包含的关系 信息安全包括网络安全&#xff0c;信息安全还包括操作系统安全&…

12.2 一文读懂i2c-tools工具(i2cdetect、i2cdump、i2ctransfer)

本文主要内容: 1 i2c-tools介绍 2 安装i2c-tools工具 2.1命令行安装 2.2 源码编译安装 2.3 yocto安装 3 i2cdetect 详细示例讲解 4 i2cdump 详细示例讲解 5 i2ctransfer详细示例讲解 6 i2cget详细示例讲解 7 i2cset 详细示例讲解 一 i2c-tools介绍 简介 i2c-tools,主要用来…

NLP 快速入门

文章目录 前言NLP 历史回顾NLP任务语料的标注AI语料标注师岗位职责 TransformersHugging Face模型中文文本分类使用 NLTK 进行文本分类 参考链接开源NLP 前言 学习NLP&#xff0c;解决两个问题&#xff1a; 如何使用别人训练好的模型&#xff1f;如何基于别人的模型&#xff…

1. 一文快速学懂常用工具——Git(上)

本章讲解知识点 什么是Git?为什么要使用版本控制工具?版本控制工具的前世今生本专栏适合于软件开发刚入职的学生或人士,有一定的编程基础,帮助大家快速掌握工作中必会的工具和指令。本专栏针对面试题答案进行了优化,尽量做到好记、言简意赅。如专栏内容有错漏,欢迎在评论…

加速软件开发和交付的革命性方法-DevOps

“ 随着信息技术的快速发展&#xff0c;现代软件开发和交付已经经历了巨大的变革。DevOps&#xff08;Development和Operations的结合&#xff09;已经成为这一变革的关键推动力&#xff0c;让开发团队和运维团队之间的界限变得模糊&#xff0c;以加速软件的开发、测试和部署过…

算法刷题-二叉树

算法刷题-二叉树 199. 二叉树的右视图 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 思路 广度优先搜索&#xff0c;答案就是二叉树的最右侧的节点 遍历每层的时候&#xff…

K-means(K-均值)算法

K-means&#xff08;k-均值&#xff0c;也记为kmeans&#xff09;是聚类算法中的一种&#xff0c;由于其原理简单&#xff0c;可解释强&#xff0c;实现方便&#xff0c;收敛速度快&#xff0c;在数据挖掘、聚类分析、数据聚类、模式识别、金融风控、数据科学、智能营销和数据运…

Spring-cloud-openfeign拦截器RequestInterceptor接口

RequestInterceptor接口位于包io.github.openfeign-core下&#xff0c;使用Spring Cloud Feign的时候会自动依赖这个包 下面的代码会在每次调用Feign1的m1方法时&#xff0c;向HTTP头追加键值对武汉3:晴川历历汉阳树 FeignClient(value "feignA", url "XXX或…

SpringBoot整合自签名SSL证书,转变HTTPS安全访问(单向认证服务端)

前言 HTTP 具有相当优秀和方便的一面,然而 HTTP 并非只有好的一面&#xff0c;事物皆具两面性&#xff0c;它也是有不足之处的。例如&#xff1a; 通信使用明文&#xff08;不加密&#xff09;&#xff0c;内容可能会被窃听。不验证通信方的身份&#xff0c;因此有可能会遭遇…

【Kubernetes 基本概念】Kubernetes 的架构和核心概念

目录 一、Kurbernetes1.1 简介1.2 为什么要用K8s?1.3 K8s的特性 二、Kurbernetes集群架构与组件三、Kurbernetes的核心组件3.1 Master组件3.1.1 Kube-apiserver3.1.2 Kube-controller-manager3.1.3 Kube-scheduler 3.2 配置存储中心——etcd3.3 Node组件3.3.1 Kubelet3.3.2 Ku…

Python图像处理【15】基于非锐化掩码锐化图像

基于非锐化掩码锐化图像 0. 前言1. 使用 scikit-image filters 模块执行非锐化掩码2. 使用 PIL ImageFilter 模块执行非锐化掩码3. 使用 SimpleITK 执行拉普拉斯锐化4. 使用 OpenCV 实现非锐化掩码小结系列链接 0. 前言 非锐化滤波器是一个简单的锐化算子&#xff0c;通过从原…

https的加密流程

文章目录 一、两种加密方式二、https的加密流程2.1对称加密2.2非对称加密2.3中间人攻击问题2.4使用证书来校验客户端收到的公钥是否是服务器生成的公钥2.4.1证书的校验2.4.2证书的校验所得到的效果 一、两种加密方式 https在http的基础之上引入了加密机制(加密层)。https加密的…

Android数据对象序列化原理与应用

序列化与反序列化 序列化是将对象转换为可以存储或传输的格式的过程。在计算机科学中&#xff0c;对象通常是指内存中的数据结构&#xff0c;如数组、列表、字典等。通过序列化&#xff0c;可以将这些对象转换为字节流或文本格式&#xff0c;以便在不同的系统之间进行传输或存…

基于模型预测控制的三相逆变器仿真研究

摘 要 基于模型预测控制的三相逆变器应用广泛&#xff0c;比如电子设备、电力系统、工业等行业&#xff0c;都会运用到基于模型预测控制的三相逆变器系统或工具。更高效率和更高精度的基于模型预测控制的三相逆变器一直是研究的热点。在我们日常生活中&#xff0c;基于模型预测…

SQL IN 运算符

SQL IN 运算符 IN 运算符允许您在 WHERE 子句中指定多个值。 IN 运算符是多个 OR 条件的简写。 SQL IN 语法 SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...); 或者 SELECT column_name(s) FROM table_name WHERE column_name IN (SELE…

docker中安装rabbitMq并配置启动

目录 1. 拉取镜像并安装&#xff08;此处实例安装的是最新版&#xff09;2.查看docker中已安装的镜像和版本3.启动RabbitMq4.配置管理端5.安装完成 1. 拉取镜像并安装&#xff08;此处实例安装的是最新版&#xff09; docker pull rabbitmq2.查看docker中已安装的镜像和版本 …

uni-app微信小程序打开第三方地图

需求 小程序中有个按钮点击以后会调用手机中第三方地图进行导航。参数 位置信息 经度 与纬度。 实现方法 uni.openLocation({latitude: Number(地址纬度),longitude: Number(地址经度),name: 地址名称,address: 地址详情,success: function (res) {console.log(打开系统位置地…

FPGA与ASIC有什么差异?二者该如何选用?

前言 对于一个数字电路的新手来说&#xff0c;这可能是会经常遇到的一个问题&#xff1a;FPGA和ASIC之间的区别是什么? 接下来本文将尝试讲解 “什么是FPGA&#xff1f;” 和 “什么是ASIC&#xff1f;”&#xff0c;然后讲述一些关于FPGA和ASIC的问题&#xff0c;例如它们之间…

【嵌入式】【GIT】如何迁移老的GIF到新的仓库时使用LFS功能并保持LOG不变

一、正常迁移流程 假设有仓库 ssh://old/buildroot-201902 需要迁移到新的仓库 ssh://old/buildroot-201902时,我们可以使用以下命令来完成: # 下载老的仓库 git clone ssh://old/buildroot-201902 # 向新的仓库上传所有的tags git push ssh://new/buildroot-201902 --tag…