原生 JavaScript基本内容和常用特性详解

原生 JavaScript(也称为 Vanilla JS)指的是不依赖于任何框架或库的纯 JavaScript。以下是原生 JavaScript 的一些基本内容和常用特性详解。

目录

1. 数据类型

2. 变量声明

3. 控制结构

4. 函数

5. 对象和数组

6. 事件处理

7. DOM 操作

8. Promise 和异步编程

9. 模块化

10. JSON 操作


1. 数据类型

JavaScript 有七种基本数据类型:

  • 原始类型

    • Number:数字类型,例如 42 或 3.14
    • String:字符串类型,例如 'Hello' 或 "World"
    • Boolean:布尔类型,只有两个值:true 或 false
    • Undefined:未定义的类型,表示变量未被赋值。
    • Null:表示无值的类型,表示“空”。
    • Symbol:ES6 引入的独特且不可变的数据类型,通常用于对象属性的标识。
    • BigInt:用来表示大于 2^53 - 1 的整数。
  • 引用类型

    • Object:对象类型,是键值对的集合。
    • 数组(Array):特殊的对象,用于存储有序的数据集合。
    • 函数(Function):也是对象,可以被调用。

2. 变量声明

使用 varlet 和 const 声明变量。

  • var:函数作用域或全局作用域,允许重复声明。
  • let:块作用域,不允许重复声明。
  • const:块作用域,不允许重新赋值,必须在声明时初始化。
var a = 10;
let b = 20;
const c = 30;

3. 控制结构

JavaScript 提供了多种控制结构,如条件语句和循环语句。

  • 条件语句:
if (a > b) {console.log('a is greater than b');
} else if (a < b) {console.log('a is less than b');
} else {console.log('a is equal to b');
}
  • 循环语句:
// for 循环
for (let i = 0; i < 5; i++) {console.log(i);
}// while 循环
let i = 0;
while (i < 5) {console.log(i);i++;
}

4. 函数

JavaScript 中的函数也是一种对象,支持高阶函数(即可以接收函数作为参数的函数)。

  • 声明函数:
function add(x, y) {return x + y;
}// 箭头函数
const sum = (x, y) => x + y;

5. 对象和数组

  • 对象的创建:
let person = {name: 'Alice',age: 25,greet() {console.log(`Hello, my name is ${this.name}`);},
};person.greet(); // Hello, my name is Alice
  • 数组的创建和访问:
let fruits = ['apple', 'banana', 'cherry'];
console.log(fruits[0]); // apple
fruits.push('date'); // 添加元素

6. 事件处理

使用原生 JavaScript 可以为 DOM 元素添加事件监听器。

let button = document.getElementById('myButton');
button.addEventListener('click', function() {alert('Button clicked!');
});

7. DOM 操作

JavaScript 可以通过 document 对象操作 HTML 文档。

  • 获取元素:
let element = document.querySelector('.myClass');
  • 修改内容和样式:
element.textContent = 'New Content';
element.style.color = 'red';
  • 创建和添加元素:
let newDiv = document.createElement('div');
newDiv.textContent = 'Hello, World!';
document.body.appendChild(newDiv);

8. Promise 和异步编程

JavaScript 中的 Promise 用于处理异步操作。

let promise = new Promise((resolve, reject) => {setTimeout(() => {resolve('Success!');}, 2000);
});promise.then(result => {console.log(result); // Success!
});

9. 模块化

使用 ES6 语法可以将代码模块化。

  • 导出模块:
// myModule.js
export const name = 'Alice';
export function greet() {console.log('Hello!');
}
  • 导入模块:
// main.js
import { name, greet } from './myModule.js';
console.log(name); // Alice
greet(); // Hello!

10. JSON 操作

JavaScript 提供了内置的 JSON 对象来处理 JSON 数据格式。

  • 字符串化和解析:
let obj = { name: 'Alice', age: 25 };
let jsonString = JSON.stringify(obj); // 转为 JSON 字符串
let parsedObj = JSON.parse(jsonString); // 解析 JSON 字符串

总结

原生 JavaScript 是构建 Web 应用的基础,能够处理 DOM 操作、事件监听、异步请求等核心功能。理解以上这些内容可以帮助你更好地使用和掌握 JavaScript,从而有效地进行 Web 开发。如果你想深入学习原生 JavaScript,可以参考 MDN 文档或其他相关教程。

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

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

相关文章

YOLOV8应用|排球垫球计数|附带全部数据集与源码(见文末百度云盘链接)

项目简介: 该项目旨在利用YOLOv8算法实现排球垫球动作的自动识别与计数。YOLOv8作为计算机视觉领域的先进目标检测算法,具备高精度和实时性的特点,非常适合用于体育训练和测试中的自动化计数。项目将排球垫球视频作为输入,通过YOLOv8算法检测视频中的排球及垫球动作,自动…

今天给在家介绍一篇基于jsp的旅游网站设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

CAN总线数据帧格式详细介绍

目录 1. CAN总线数据帧格式 2. 数据帧 2.1 帧起始 2.2 仲裁段 2.3 控制段 2.4 数据段 2.5 CRC 段 2.6 ACK段 2.7 帧结束 2.8 总结 3. 遥控帧 4. 错误帧 4.1 错误标志 4.1.1 主动错误标志 4.1.2 被动错误标志 4.2 错误界定符 5. 过载帧 6. …

Java面试要点02 - 自动装箱与拆箱的原理与性能解析

本文目录 一、引言二、自动装箱与拆箱的底层原理2.1 编译器的处理机制2.2 字节码层面的分析2.3 缓存机制的实现 三、性能影响的深度分析3.1 内存开销分析3.2 CPU开销分析 四、实际应用中的常见陷阱4.1 空指针异常陷阱4.2 包装类型的比较陷阱 五、最佳实践与优化建议5.1 性能优化…

速通LoRA:《LoRA: Low-Rank Adaptation of Large Language Models》全文解读

文章目录 总览AbstractIntroductionProblem StatementAren’t Existing Solutions Good Enough?Our MethodLow-Rank-Parametrized Update MatricesApplying LoRA to Transformer 何为高斯随机初始化Empirical ExperimentsBaselinesRoBERTa base/largeDeBERTa XXLGPT-2 medium/…

【Java学习】电脑基础操作和编程环境配置

CMD 在Windows中用命令行的方式操作计算机。 打开CMD Win R输入CMD按下回车键 Win E 进入我的电脑 常用的CMD命令 盘符名称冒号 说明&#xff1a;盘符切换 举例&#xff1a;E:回车&#xff0c;表示切换到E盘 dir 说明&#xff1a;查看当前路径下的内容 cd目录 说明&a…

索引【MySQL】

文章目录 聚簇索引 VS 非聚簇索引索引MySQL与磁盘交互的基本单位主键索引索引操作唯一索引的创建普通索引的创建复合索引 索引创建原则 聚簇索引 VS 非聚簇索引 MyISAM存储引擎 - 主键索引结构 MyISAM存储引擎同样采用B树作为索引的基本数据结构 与InnoDB存储引擎的B树不同的…

c语言数据结构与算法--简单实现队列的入队和出队

&#xff08;一&#xff09;队列的基本概念 和栈相反&#xff0c;队列(Queue)是一种先进先出&#xff08;First In First Out&#xff09;的线性表。只 允许在表的一端进行插入&#xff0c;而在另一端删除元素&#xff0c;如日常生活中的排队现象。队列中 允许插入的一端叫队尾…

【缓存策略】你知道 Cache Aside(缓存旁路)这个缓存策略吗

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

2.操作系统常见面试问题2

2.19 说说什么是堆栈溢出&#xff0c;会怎么样&#xff1f; 堆溢出&#xff08;Heap Overflow&#xff09;是指程序在运行时向堆内存区域写入了超出预定大小的数据&#xff0c;导致堆内存区域的数据结构&#xff08;如动态分配的内存块&#xff09;被破坏&#xff0c;从而引发…

基于TI AM62A+FPGA实现FPDLINK III车载摄像头解决方案

功能概述 本模块主要包含FPDLINKIII/CML收发信号与HDMI/SDI/USB信号、千兆网络信号&#xff0c;支持客户按照按照指定功能定制 当前默认功能为FPD LINK III/CML转为HDMI/SDI/UVC信号 性能参数 名称 描述 供电接口 DC12V FPD LINK RX GM8914 FPD LINK TX GM8913 千兆网…

丹摩征文活动 | SD3+ComfyUI的图像部署实践

一、前言 作为Stability AI 推出的一款革命性的文本转图像开源模型&#xff0c;Stable Diffusion 3&#xff08;简称SD3&#xff09;在图像质量、文本内容生成、理解复杂指令以及资源利用效率方面&#xff0c;都有着不俗的表现。 SD3的Medium版本&#xff0c;拥有20亿参数&am…

介绍几个提取视频文案的Coze插件

用过coze的朋友应该都知道“链接读取”这个插件&#xff0c;它不但可以读取网页内容&#xff0c;而且还可以提取视频链接的内容&#xff0c;但是对于有些平台的网址&#xff0c;它就有些无能为力了。 这里就可以用到我们今天的主角之一“字幕获取”插件。 一、字幕获取插件 从…

MIT 6.S081 Lab1: Xv6 and Unix utilities翻译

Lab1: Xv6 and Unix utilities 文章目录 Lab1: Xv6 and Unix utilities实验任务启动xv6(难度&#xff1a;Easy)sleep(难度&#xff1a;Easy)pingpong&#xff08;难度&#xff1a;Easy&#xff09;Primes(素数&#xff0c;难度&#xff1a;Moderate/Hard)find&#xff08;难度&…

YOLOv11融合ICCV[2023]动态蛇形卷积Dynamic模块及相关改进思路|YOLO改进最简教程

YOLOv11v10v8使用教程&#xff1a; YOLOv11入门到入土使用教程 YOLOv11改进汇总贴&#xff1a;YOLOv11及自研模型更新汇总 《Dynamic Snake Convolution based on Topological Geometric Constraints for Tubular Structure Segmentation》 一、 模块介绍 论文链接&#xff…

Sam Altman:年底将有重磅更新,但不是GPT-5!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

信息网络安全——AES加密算法

算法背景介绍 该算法是由美国发明的&#xff0c;1997年NIST发布算法征集公告&#xff0c;98年入围15个候选算法&#xff0c;99年进入五强&#xff0c;00年凭借安全性&#xff0c;性能&#xff0c;大小实现特性为标准最终选定&#xff0c;01年正式发布AES标准。   选择AES主要…

arm 汇编技巧

汇编标号&#xff1a;f表示forward&#xff0c; b表示backward&#xff1a; Here is an example: 1: branch 1f 2: branch 1b 1: branch 2f 2: branch 1b Which is the equivalent of: label_1: branch label_3 label_2: branch label_1 label_3: branch label_4 label_4: bra…

初始JavaEE篇 —— 文件操作与IO

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 文件介绍 Java标准库中提供操作文件的类 文件系统操作 File类的介绍 File类的使用 文件内容操作 二进制文件的读写操作…

华为网络设备这些“危险命令”,切记不能瞎操作!

在华为网络设备上&#xff0c;有一些“危险操作”命令&#xff0c;因为它们可能会对设备的正常运行、配置数据或网络安全产生重大影响。 在使用这些命令时&#xff0c;需要非常谨慎&#xff0c;确保理解其作用并备份当前配置。 删除配置或数据的命令 reset saved-configurat…