JavaScript 知识点(从基础到进阶)

news2024/12/23 14:44:06

   🌏个人博客主页:心.c

前言:JavaScript已经学完了,和大家分享一下我的笔记,希望大家可以有所收获,花不多说,开干!!!

🔥🔥🔥专题文章:密码生成器

😽感谢大家的点赞👍收藏⭐️评论✍您的一键三连是我更新的动力 💓 

目录

js的三种书写方式:

行内:

内部:

外部:

js的输入输出:

输入语法:

输入语法:

注释:

变量:

数组:

定义数组:

数组的增删改查:

数据类型:

基本数据类型:

引用数据类型:

 数据转换:

隐式转换:

显示转换:

运算符:

算数运算符:

比较运算符:

逻辑运算符: 

一元运算符:

函数:

函数声明:

函数表达式:

立即执行表达式:

箭头函数:

对象:

对象的创建:

对象增删改查: 



js的三种书写方式:

行内:
<body>
  <button onclick="alert('行内')"></button>
</body>
内部:
<body>
  <script>
    alert('内部')
  </script>
</body>
外部:

外部js标签中间不能书写东西

<body>
  <!-- 引用外部js -->
  <script src="./01.js.html"></script>
</body>

js的输入输出:

输入语法:

页面打印:

document.write('页面打印')

控制台打印:

console.log('控制台打印')

弹出界面:

  console.log('控制台打印')

 

输入语法:
 prompt('请输入信息')

注释:

单行注释:

//我是单行注释

多行注释:

/*我是多行注释*/

变量:

变量是用来储存数据的容器,简单理解就是一个盒子

    //声明并赋值一个年龄变量
    let age=18
    //输出
    alert(age)
    //声明一个年龄变量
    let age
    //赋值
    age = 18
    //输出
    alert(age)

数组:

定义数组:
let arr = [1, 2, 3, 4, 5];
console.log(arr); // 输出 [1, 2, 3, 4, 5]
数组的增删改查:

增加元素:

push ( )  向数组的末尾添加一个或多个元素

const arr = [1, 2, 3];
arr.push(4);
console.log(arr); // 输出 [1, 2, 3, 4]

unshift ( ) 向数组的开头添加一个或多个元素

const arr = [1, 2, 3];
arr.unshift(0);
console.log(arr); // 输出 [0, 1, 2, 3]

splice ( ) 可以在任意位置插入元素,并且可以同时删除元素。

const arr = [1, 2, 3];
arr.splice(1, 0, 1.5); // 在索引1的位置插入1.5
console.log(arr); // 输出 [1, 1.5, 2, 3]

删除元素:

pop()从数组的末尾移除一个元素,并返回该元素

const arr = [1, 2, 3];
const removed = arr.pop();
console.log(arr); // 输出 [1, 2]
console.log(removed); // 输出 3

shift()从数组的开头移除一个元素,并返回该元素。

const arr = [1, 2, 3];
const removed = arr.shift();
console.log(arr); // 输出 [2, 3]
console.log(removed); // 输出 1
splice()可以从数组中删除元素,并且可以同时插入元素。
const arr = [1, 2, 3, 4, 5];
arr.splice(1, 2); // 从索引1开始删除2个元素
console.log(arr); // 输出 [1, 4, 5]

修改元素:

可以直接通过索引访问和修改数组中的元素

const arr = [1, 2, 3];
arr[1] = 2.5;
console.log(arr); // 输出 [1, 2.5, 3]

查询元素:

返回数组中某个元素第一次出现的位置索引,如果不存在则返回-1

const arr = [1, 2, 3, 2, 4];
const index = arr.indexOf(2);
console.log(index); // 输出 1

数据类型:

基本数据类型:

基本数据类型是值类型,它们直接存储在栈内存中,而不是通过引用访问。当赋值给另一个变量时,复制的是具体的值,而不是引用。

1.number

表示数值,包括整数和浮点数。

let num = 42;

2.string

表示文本字符串。

let str = "Hello, world!";

3.boolean

表示逻辑值,只有truefalse两个值

let flag = true;

4.undifined

表示尚未赋值的变量或函数返回的未定义值。

let x;
console.log(x); // 输出 undefined

5.null

表示空值或空对象指针。

let nothing = null;
引用数据类型:

1.对象

对象是键值对的集合,是最常用的复合数据类型之一。对象可以包含属性(键值对)和方法(函数)。

let person = {
  name: "Alice",
  age: 30,
  sayHello: function() {
    console.log("Hello, my name is " + this.name);
  }
};

2.数组

数组是一种特殊的对象,用于存储有序的元素列表。数组的元素可以是任何类型的数据。

let numbers = [1, 2, 3, 4, 5];
let mixed = ["apple", 42, true, {name: "Alice"}];

console.log(numbers[0]); // 输出 1
console.log(mixed[3].name); // 输出 "Alice"

3.函数

函数也是一种对象,可以作为值进行传递,并且可以作为对象的属性或方法。

function greet(name) {
  console.log("Hello, " + name + "!");
}

 数据转换:

隐式转换:
    console.log(11 + 11)  //number
    console.log('11' + 11) //string
    console.log('111') //string
    console.log(+'123') //number
    console.log(+'123' + 132) //number
显示转换:
      let str = '123'
      let num = Number(str) //number
      let num1 = +str //number
      let num = 123
      let str = String(num) //string
      let str1 = num.toStrign() //string

运算符:

算数运算符:
运算符描述示例
+加法5 + 3
-减法5 - 3
*乘法5 * 3
/除法5 / 3
%取模(求余数)5 % 3
**幂运算(次方)2 ** 3
比较运算符:
运算符描述示例
==等于(值相等即可)5 == "5"
===严格等于(值和类型都相等)5 === "5"
!=不等于5 != 3
!==严格不等于5 !== "5"
<小于5 < 3
>大于5 > 3
<=小于等于5 <= 5
>=大于等于5 >= 5
逻辑运算符: 
运算符描述示例
&&逻辑与(AND)true && false
||逻辑或(OR)true && false
!逻辑非(NOT)!true
一元运算符:
++前置/后置自增++x 或 x++
--前置/后置自减--x 或 x--
+正号(强制转换为数字)+5
-负号(取反)-5
!逻辑非!true
typeof获取变量的类型typeof x
delete删除对象的属性delete obj.prop

函数:

函数声明:
function greet(name) {
    console.log("Hello, " + name + "!");
}
函数表达式:
const greet = function(name) {
    console.log("Hello, " + name + "!");
};
立即执行表达式:
(function(name) {
    console.log("Hello, " + name + "!");
})("Charlie");

箭头函数:
const greet = (name) => {
    console.log("Hello, " + name + "!");
};

对象:

对象的创建:

使用字面量方式创建:

    //定义对象
    let obj = {
      name: '阿伟',
      age: 12,
      phone: 12323232323
    }
    console.log(obj)

使用构造函数创建

const person = new Object();
2person.name = "Bob";
3person.age = 25;
对象增删改查: 

增加属性:

使用标点:

const person = {};
person.name = "Alice";
person.age = 30;

使用括号:

const person = {};
person["name"] = "Alice";
person["age"] = 30;

修改属性:

const person = {
    name: "Alice",
    age: 30
};

person.age = 31;

删除属性:

const person = {
    name: "Alice",
    age: 30
};

delete person.age;

查找对象属性:

const person = {
    name: "Alice",
    age: 30
};

const keys = Object.keys(person);
console.log(keys); // 输出 ["name", "age"]
const person = {
    name: "Alice",
    age: 30
};

const values = Object.values(person);
console.log(values); // 输出 ["Alice", 30]
const person = {
    name: "Alice",
    age: 30
};

const entries = Object.entries(person);
console.log(entries); // 输出 [["name", "Alice"], ["age", 30]]

遍历对象: 

const person = {
    name: "Alice",
    age: 30,
    city: "New York"
};

for (const key in person) {
    if (person.hasOwnProperty(key)) {
        console.log(`${key}: ${person[key]}`);
    }
}
// 输出
// name: Alice
// age: 30
// city: New York

到这里就讲完了,感谢大家的观看!!!

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

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

相关文章

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头…

【redis】数据量庞大时的应对策略

文章目录 为什么数据量多了主机会崩分布式系统应用数据分离架构应用服务集群架构负载均衡器数据库读写分离 引入缓存冷热分离架构 分库分表微服务是什么代价优势 为什么数据量多了主机会崩 一台主机的硬件资源是有上限的&#xff0c;包括但不限于一下几种&#xff1a; CPU内存…

【最新华为OD机试E卷-支持在线评测】猜字迷(100分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…

.hmallox、.rmallox勒索病毒揭秘:如何保护你的数据免受威胁

导言 .hmallox、.rmallox勒索病毒是一种加密型勒索病毒&#xff0c;以其特定的加密机制和传播方式而闻名。它主要通过钓鱼邮件或恶意下载链接感染计算机系统。一旦入侵系统&#xff0c;它会加密受害者的文件&#xff0c;并要求支付赎金以恢复数据。了解 .hmallox 、.rmallox勒…

2024数学建模国赛选题建议+团队助攻资料(已更新完毕)

目录 一、题目特点和选题建议 二、模型选择 1、评价模型 2、预测模型 3、分类模型 4、优化模型 5、统计分析模型 三、white学长团队助攻资料 1、助攻代码 2、成品论文PDF版 3、成品论文word版 9月5日晚18&#xff1a;00就要公布题目了&#xff0c;根据历年竞赛题目…

解决npm i 安装报npm ERR! code E401

1、前端去维护项目时&#xff0c;通过 git clone 下来以后&#xff0c;经常是直接 npm i 去安装项目需要的依赖&#xff0c;但是往往很多项目不是我们自己写的&#xff0c;或者从 GitHub 上面 clone 的开源项目&#xff0c;这个时候出现问题就很难处理&#xff0c;这里分享下安…

java基础-线程实现

文章目录 什么是线程线程的基本特性线程的状态线程的调度 线程的实现方式1. 继承 Thread 类2. 实现 Runnable 接口3. 使用 Callable 和 Future4. 使用 ExecutorService总结 什么是线程 线程&#xff08;Thread&#xff09;是计算机科学中的一个重要概念&#xff0c;它是操作系…

EmguCV学习笔记 C# 9.2 VideoWriter类

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

【数据结构】--初识泛型

1. 包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了一个包装类型。 1.1 基本数据类型和对应的包装类 除了 Integer 和 Character&#xff0c; 其余基本类型的包装类都是首字母…

1051 找矩阵中的鞍点

### 思路 1. 输入一个3行4列的整数矩阵。 2. 遍历每一行&#xff0c;找到每一行的最大值及其列索引。 3. 检查该列索引对应的列中是否是最小值。 4. 如果是&#xff0c;则输出该值&#xff1b;如果没有找到鞍点&#xff0c;输出“NO”。 ### 伪代码 1. 初始化一个3行4列的矩阵…

SLT—List详解

1.list概述 相较于 vector 的连续线性空间&#xff0c;list 就显得复杂很多&#xff0c;它的好处是每次插入或删除一个数据&#xff0c;就配置或释放一个元素空间。因此&#xff0c;list 对于空间的运用有绝对的精准&#xff0c;一点也不浪费。对于任何位置的元素进行插入或者元…

连续信号的matlab表示

复习信号与系统以及matlab 在matlab中连续信号使用较小的采样间隔来表四 1.单位阶跃信号 阶跃信号:一个理想的单位阶跃信号在时间 t 0 之前值为0&#xff0c;在 t 0 及之后值突然变为常数 A&#xff08;通常取 A 1&#xff09; %matlab表示连续信号,是让信号的采样间隔很小…

WebGIS面试题(第九期)

坐标系&#xff1a; 文章目录 **坐标系&#xff1a;**1、如何使用ArcGIS进行GIS坐标系转换&#xff1f;2、Cesium中的Cartesian3坐标系的原点在哪里&#xff1f;它的轴是如何定义的&#xff1f;3、如何在Cesium中使用矩阵进行坐标系转换。4、在Cesium中&#xff0c;如何将屏幕坐…

在VScode上写网页(html)

一、首先点进VScode&#xff0c;下载3个插件。 VScode安装&#xff1a;VScode 教程 | 菜鸟教程 二、新建 HTML 文件 作者运行的代码来自&#xff1a;http://t.csdnimg.cn/vIAQi 把代码复制粘贴进去&#xff0c;然后点击文件→另存为→选择html格式。 三、运行代码

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机&#xff08;二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用&#xff0c;那个马的关系&#xff0c;后面就注意&#xff0c;dp需要作为long的类型。 import java.util.Sc…

店匠科技携手Stripe共谋电商支付新篇章

在全球电商行业蓬勃发展的背景下,支付环节作为交易闭环的核心,其重要性日益凸显。随着消费者对支付体验要求的不断提高,以及跨境电商的迅猛发展,支付市场正经历着前所未有的变革与挑战。在这一充满机遇与竞争的领域,店匠科技(Shoplazza)凭借其创新的嵌入式支付解决方案—— Sho…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-39 HDMI视频输入测试

软件版本&#xff1a;VIVADO2021.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台&#xff1a;米联客-MLK-H3-CZ08-7100开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

软考(计算机技术与软件专业技术资格(水平)考试)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

《JavaEE进阶》----11.<SpringIOCDI【Spring容器+IOC详解+DI介绍】>

本篇博客会详细讲解什么是Spring。 SpringIOC SpringID 五个类注解&#xff1a;Controller、Service、Repository、Component、Configuration 一个方法注解&#xff1a;Bean 什么是Spring IOC容器 Spring 是包含众多工具的IOC容器。能装东西的容器。 1.容器 如我们之前学的 Tom…

高效传输秘籍,揭秘Rsync和SCP的优劣,助你做出明智选择!

在日常的运维工作中&#xff0c;文件传输任务频繁出现&#xff0c;而选择合适的工具能显著提高工作效率。Rsync 和 SCP 是两款常见的文件传输工具&#xff0c;但它们各具优缺点&#xff0c;适合不同的场景。本文将通过深入分析这两款工具的特性、使用场景和性能&#xff0c;帮助…