前端秘法基础式终章----欢迎来到JS的世界

news2025/1/13 17:42:19

目录

一.JavaScript的背景

二.JavaScript的书写形式

1.行内式

2.嵌入式

3.外部式

三.JS中的变量

1.变量的定义

2.JS动态类型变量

2.1强类型和弱类型

3.JS中的变量类型

四.运算符

五.if语句和三元表达式和Switch语句和循环语句

六.数组

1.创建获取数组元素

2.新增数组元素

七.函数

1.函数的声明和调用

2.作用域及作用域链

八.对象

1.对象的创建

1.1字面变量创建

1.2使用new Object创建

1.3构造函数创建对象

1.4class构造对象

1.5static修饰

1.6对象的继承


一.JavaScript的背景

JavaScript 是一种高级编程语言,通常用于网页开发和网页交互。它可以让网页变得更加动态和交互性强,例如实现动画效果、表单验证、数据交互等。
 
JavaScript 可以直接嵌入到 HTML 页面中,通过浏览器执行,从而实现网页的各种功能。它也可以用于开发桌面应用程序、移动应用程序等。

JavaScript 有以下几个特点:
 
- 解释性语言:JavaScript 代码不需要编译,直接由浏览器解释执行。
- 面向对象:它支持面向对象编程的特性,如类、对象、继承等。
- 事件驱动:通过监听和响应网页上的各种事件(如点击、鼠标移动等)来触发相应的 JavaScript 代码执行。
- 跨平台:由于 JavaScript 主要在浏览器中运行,所以它可以在各种操作系统和设备上运行。

二.JavaScript的书写形式

1.行内式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="button" value="          js         " onclick="alert('welcome to js!')">
</body>
</html>

注意这里onclick中的双引号和单引号可互换,既可以单引号包含双引号,又可以双引号包含单引号,和Python中的单双引号用法相似

2.嵌入式

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

</body>

<script>alert('welcome ton js!')</script>

</html>

通过script标签引入JS代码

3.外部式

通过JS文件引入

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

</body>

<script src="JScode/JS01.js"></script>

</html>

需要注意的是css在引入的时候是link标签搭配href属性,而JS在引入的时候则是script标签搭配src属性

三.JS中的变量

1.变量的定义

var a = 0;

let a = 0;

上述两种定义变量的方法都行,其中let是在var的基础上做一些优化和改进

2.JS动态类型变量

与Python一样,JS中的变量属于动态类型变量,它的变量类型可以随着数据类型的改变而改变

2.1强类型和弱类型

强类型是指数据类型的转变需要进行强制转换

弱类型是指数据类型转变不需要强转,JS,Python是常见的弱类型语言

3.JS中的变量类型

需要特别注意的是infinity表示正无穷,nan表示不是数字,undefined表示变量未定义,null表示该变量为空,两者在逻辑判断上是相等的,都为false,不过null是空对象指针,类型为object,undefined是未定义,返回类型为undefined

四.运算符

运算符与C语言大致相同,需要注意的是等号

一个等号表示赋值

两个等号表示比较内容是否相同,不考虑数据类型,也就是1==true是返回true

三个等号考虑数据类型

五.if语句和三元表达式和Switch语句和循环语句

用法与C语言相同

这里讲一下调试技巧

打开网页,进入开发者工具,进入console控制台

按Ctrl+shift+r进入调试模式,按f11逐步进行

六.数组

1.创建获取数组元素

创建数组可以采用字面变量创建:let arr = [1, 2, 3];

也可以new一个数组对象let arr = new Arry();

利用数组下标获取元素即可

2.新增数组元素

修改数组长度

let a = new Array(1, 2, 3);

a.length = 5;

console.log(a);

我们可以看到最后有两个空位,数据类型为undefined

直接通过下标赋值

let a = new Array(1, 2, 3);

a[3] = 5;

console.log(a);

通过push追加

let a = new Array(1, 2, 3);

let newa = new Array();

for(i = 0; i < a.length; i++){

    newa.push(a[i]);

}

console.log(newa);

七.函数

1.函数的声明和调用

function Add(x, y){

    return x + y;

}

let Min = function(x, y){

    return x * y;

}

两种写法都可以,第二种是直接将函数给到一个变量,可以不用书写函数名,通过变量直接调用

2.作用域及作用域链

JS中会出现函数套函数的情况,那么内层函数可以使用外层函数的变量,但外层函数得不到内层函数的变量,因为变量的搜索遵循由内到外

八.对象

其实就类似于C语言中的结构体(但它们也有一些本质的区别,可以抽象的理解)

1.对象的创建

1.1字面变量创建

let people = {

    name:"zhangsan",

    age:16,

    gender:"male"

}

console.log(people);

类似于Python中的字典,通过键值对创建

1.2使用new Object创建

let People = new Object()

People.name = "zhangsan";

People.age = 16;

console.log(People);

1.3构造函数创建对象

function people(name, age, gender){

    this.name = name;

    this.age = age;

    this.gender = gender;

}

let people1 = new people("zhansan", 16, "male");

console.log(people1);

1.4class构造对象

es6中开始支持用class去构建对象,弥补了上述方法无法继承的缺陷

class people{

    constructor(name, age){

        this.name = name;

        this.age = age;

    }

    Say(){

        console.log("hello");

    }

}

let zhangsan = new people("zhangsan", 16);

console.log(zhangsan);

zhangsan.Say();

1.5static修饰

此时不论是属性还是方法都不属于对象,而属于类,在调用的时候要基于类名去调用

class people{

    constructor(name, age){

        this.name = name;

        this.age = age;

    }

    Say(){

        console.log("hello");

    }

    static Say1(){

        console.log("hehe");

    }

}

let zhangsan = new people("zhangsan", 16);

console.log(zhangsan);

zhangsan.Say();

people.Say1();

1.6对象的继承

class people{

    constructor(name, age){

        this.name = name;

        this.age = age;

    }

    Say(){

        console.log("hello");

    }

    static Say1(){

        console.log("hehe");

    }

}

class student extends people{

    constructor(name, age, num){

        super(name, age);

        this.num = num;

    }

}

通过extends指定你所要继承的属性所属的类,通过super指定你要继承的具体属性

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

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

相关文章

消息队列-RabbitMQ:MQ作用分类、RabbitMQ核心概念及消息生产消费调试

1、MQ 的相关概念 1&#xff09;什么是 MQ MQ (message queue)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&#xff0c;只不过队列中存放的内容是 message 而已&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递消息。在互…

Linux 驱动开发基础知识——APP 怎么读取按键值(十二)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;Vir2021GKBS &#x1f43c;本文由…

【算法 - 动态规划】最长公共子序列问题

在上两篇文章中&#xff0c;我们将 暴力递归 逐步修改成为 动态规划 &#xff0c;并介绍了有严格 dp表依赖 和无表依赖结构的解题方法。其中&#xff0c;前篇文章中的纸牌博弈问题属于 [L , R]上范围尝试模型。该模型给定一个范围&#xff0c;在该范围上进行尝试&#xff0c;套…

【AI数字人-论文】AD-NeRF论文

文章目录 NeRFAD-NeRF模型NeRF体渲染个体NeRF表示背景和姿态编辑 loss 参考 NeRF 将一个连续的场景表示为一个输入为5D向量的函数&#xff0c;这个函数为NeRF函数&#xff0c;它的输入由一个空间点的3D位置 x ( x , y , z ) \mathbf{x} \left( x, y, z \right) x(x,y,z)和它…

C# Winfrom实现的肺炎全国疫情实时信息图

运行结果&#xff1a; using System; using System.Drawing; using System.Text; using NSoup; using NSoup.Nodes; using System.IO; using System.Net; using System.Text.RegularExpressions; using System.Windows.Forms;namespace Pneumonia {public partial class MainFo…

IO 作业 24/2/20

一、思维导图 二、习题 #include <myhead.h> int main(int argc, const char *argv[]) {FILE *fpNULL;FILE *fqNULL;pid_t pidfork();if(pid>0){if((fpfopen("./text.txt","r"))NULL){perror("fopen error");return -1;} if((f…

unity学习(33)——角色选取界面(原版)

10ARPG网络游戏编程实践&#xff08;十&#xff09;&#xff1a;角色选择UI及创建面板制作&#xff08;一&#xff09;&#xff08;流畅&#xff09;_哔哩哔哩_bilibili 角色选择界面教程中是这样的&#xff01;&#xff08;这个美工肯定是不能拿出去卖的&#xff0c;但是是有…

命令行窗口文本复制到 Word 格式保持不变

命令行窗口文本复制到 Word 格式保持不变 References 标题栏右键 -> 编辑 -> 标记 / 全选 标题栏右键 -> 编辑 -> 复制 粘贴到 Notepad 中&#xff0c;语言栏设置对应语言&#xff0c;格式可以保持不变 复制文本粘贴到 Excel 中 选中 Excel 中文本复制&#xf…

LeetCode21.合并两个有序链表

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 &#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 思路 创建一个新的链表头节点&#xff08;dummyNode&#xff09;和一个…

NVIDIA Corporation 在 GitHub 的官方主页

NVIDIA Corporation 在 GitHub 的官方主页 References https://github.com/NVIDIA References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

Prometheus 教程

目录 一、简介二、下载安装1、安装 prometheus2、安装 alertmanager3、安装 grafana4、安装 node_exporter5、安装 mysqld_exporter 一、简介 Prometheus 是一个开源的系统监控和警报工具。它最初由 SoundCloud 开发&#xff0c;并于 2012 年发布为开源项目。Prometheus 专注于…

服务器遭受 DDoS 攻击的常见迹象有哪些?

服务器遭受 DDoS 攻击的现象很常见&#xff0c;并且有时不容易预防&#xff0c;有部分原因是它们的形式多种多样&#xff0c;而且黑客手段越来越隐蔽。如果您怀疑自己可能遭受 DDoS 攻击&#xff0c;可以寻找多种迹象。以下是 DDoS 攻击的5个常见迹象&#xff1a; 1.网络流量无…

星宸科技SSC369G 双4K高性价比AI IPC方案

一、方案描述 SSC369G 双4K高性价比AI IPC方案采用主芯片SSC369G&#xff0c;内核为CA55四核最高主频为1.5Ghz处理器。SOC内置集成一个64位的四核RISC处理器&#xff0c;先进的图像信号处理器&#xff08;ISP&#xff09;&#xff0c;高性能的H.265/H.264/MJPEG视频编解码器&a…

基于stm32F103的蜂鸣器周期发声实验

蜂鸣器作为一种声音报警器件,应用广泛。本实验基于stm32F103单片机,通过控制蜂鸣器的IO口电平电压,使其周期性地进行电平翻转,从而驱动蜂鸣器发出周期性的鸣叫声。该实验主要运用了stm32的GPIO和定时器TIM的相关功能,不仅可以巩固这些外设的使用,也可以通过改变时间参数,控制蜂…

利用iSCSI服务部署IP SAN网络存储服务

一、配置环境&#xff08;Vmware WorkStation虚拟环境&#xff09; 服务端与客户端OS&#xff1a;openEuler 22.03-LTS CPU&#xff1a;1U1C 内存&#xff1a;2G 硬盘&#xff1a;5个SCSI磁盘&#xff0c;其中一个作为系统盘&#xff0c;另外四个配置为RAID5阵列 服务器IP…

【论文精读】ESViT

摘要 基于transformer的SSL方法在ImageNet线性检测任务上取得了最先进的性能&#xff0c;其关键原因在于使用了基于对比学习方法训练单尺度Transformer架构。尽管其简单有效&#xff0c;但现有的基于transformer的SSL&#xff08;自监督学习&#xff09;方法需要大量的计算资源…

网络协议汇总

1.HTTP协议 1.认识URL 平时我们俗称的 "网址" 其实就是说的 URL URL中的字符只能是ASCII字符&#xff0c;但是ASCII字符比较少&#xff0c;而URL则常常包含ASCII字符集以外的字符&#xff0c;如非英语字符、汉字、特殊符号等等&#xff0c;所以要对URL进行转换。这个…

举例说明什么是人机耦合

在呼叫中心行业&#xff0c;人机耦合是指将计算机自动化技术与人工服务相结合&#xff0c;以提高呼叫中心的效率和服务质量。具体来说&#xff0c;它包括通过智能语音识别、自然语言处理、机器学习等技术实现自动应答、自动导航、自动响应等功能&#xff0c;以及将人工客服与智…

企业级 文件传输加密应用,干货分享

企业级 文件传输加密应用 简历一直在投&#xff0c;一直无音讯&#xff0c;今天我又从硬盘里翻出一个 好玩的加密软件&#xff0c;这个是 2017年的时候和荷兰某世界500强公司合作的小项目。 今天分享给大家 。 文章目录 企业级 文件传输加密应用1.目的2.软件介绍3.下载好 安装…

C++:C++入门基础

创作不易&#xff0c;感谢三连 &#xff01;&#xff01; 一、什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff…