JavaScript基本语法

文章目录

  • 1. JavaScript 是什么
    • 1.1 JavaScript 和 HTML 和 CSS 之间的关系
    • 1.2 JavaScript 运行过程
    • 1.3 JavaScript 的组成
  • 2. JavaScript 的书写形式
    • 2.1 行内式
    • 2.2 内嵌式
    • 2.3 外部式
  • 3. 变量的使用
    • 3.1 静态变量和动态变量
  • 4. 基本数据类型
    • 4.1 undefined 未定义数据类型
    • 4.2 null 空值类型
  • 5. 数组
    • 5.1 新增数组元素
      • 5.1.1 通过修改 length 新增
      • 5.1.2 通过下标新增
      • 5.1.3 使用 push 进行追加元素
    • 5.2 删除数组中的元素
  • 6. 输入输出
    • 6.1 输入: prompt
    • 6.2 输出: alert
    • 6.3 输出: console.log
  • 7. 函数
    • 7.1 语法格式
    • 7.2 函数表达式
  • 8. 作用域
    • 8.1 作用域链
  • 9. 对象
    • 9.1 使用 字面量 创建对象
    • 9.2 使用 new Object 创建对象
    • 9.3 使用 构造函数 创建对象
    • 9.4 class关键字创建对象

1. JavaScript 是什么

JavaScript (简称 JS),是世界上最流行的编程语言之一。是一个脚本语言,通过解释器运行,主要在客户端(浏览器)上运行,现在也可以基于 node.js 在服务器端运行。
在这里插入图片描述

1.1 JavaScript 和 HTML 和 CSS 之间的关系

在这里插入图片描述

1.2 JavaScript 运行过程

在这里插入图片描述
在这里插入图片描述
浏览器分成渲染引擎 + JS 引擎。
在这里插入图片描述
JS 引擎逐行读取 JS 代码内容,然后解析成二进制指令,再执行。

1.3 JavaScript 的组成

在这里插入图片描述
光有 JS 语法,只能写一些基础的逻辑流程。但是要想完成更复杂的任务, 完成和浏览器以及页面的交互,那么久需要 DOM API 和 BOM API。

2. JavaScript 的书写形式

2.1 行内式

直接嵌入到 html 元素内部
在这里插入图片描述
在这里插入图片描述
我们点击这个按钮没有反应。
在这里插入图片描述
在这里插入图片描述
此时再按就会有反应了。注意:JS 中字符串常量可以使用单引号表示,也可以 使用双引号表示。HTML 中推荐使用双引号,JS 中推荐使用单引号。

2.2 内嵌式

写到 script 标签中
在这里插入图片描述

2.3 外部式

写到单独的 .js 文件中
在这里插入图片描述
在这里插入图片描述
注意:这种情况下 script 标签中间不能写代码。必须空着(写了代码也不会执行)

3. 变量的使用

在这里插入图片描述
var和let 是 JS 中的关键字,表示这是一个变量。= 在 JS 中表示 “赋值”,相当于把数据放到内存的盒子中。初始化的值如果是字符串,那么就要使用单引号或者双引号引起来。
我们这里推荐使用let,因为let出现的比var晚,意味着避免了var定义变量的缺陷。如果使用let定义变量,此时变量的生命周期、作用域基本和java相同
在这里插入图片描述

3.1 静态变量和动态变量

动态类型意味着代码在执行的过程中,变量类型可以随时发生变化。
静态类型意味着变量定义的时候是什么类型,在运行中就是什么类型

JS 的变量类型是程序运行过程中才确定的(运行到 = 语句才会确定类型),随着程序运行, 变量的类型可能会发生改变。这一点和 C Java 这种静态类型语言差异较大,C, C++, Java, Go 等语言是静态类型语言。一个变量在创建的时候类型就确定了,不能在运行时发生改变。如果尝试改变, 就会直接编译报错。

4. 基本数据类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.1 undefined 未定义数据类型

如果一个变量没有被初始化过,结果就是 undefined 类型
在这里插入图片描述undefined 和字符串进行相加,结果进行字符串拼接:
在这里插入图片描述
undefined 和数字进行相加,结果为 NaN:
在这里插入图片描述

4.2 null 空值类型

在这里插入图片描述
注意:null 和 undefined 都表示取值非法的情况,但是侧重点不同。null 表示当前的值为空(相当于有一个空的盒子)。undefined 表示当前的变量未定义 (相当于连盒子都没有)。

5. 数组

在这里插入图片描述
注意: JS 的数组不要求元素是相同类型,这一点和 C, C++, Java 等静态类型的语言差别很大。

5.1 新增数组元素

5.1.1 通过修改 length 新增

在这里插入图片描述

5.1.2 通过下标新增

在这里插入图片描述
此时这个数组的 [0] 和 [1] 都是 undefined。

5.1.3 使用 push 进行追加元素

在这里插入图片描述

5.2 删除数组中的元素

在这里插入图片描述

6. 输入输出

6.1 输入: prompt

弹出一个输入框:
在这里插入图片描述
在这里插入图片描述

6.2 输出: alert

弹出一个警示对话框, 输出结果:
在这里插入图片描述
在这里插入图片描述

6.3 输出: console.log

在控制台打印一个日志(供程序员看):
在这里插入图片描述
注意: 在 VSCode 中直接输入 “log” 再按 tab 键, 就可以快速输入 console.log
需要打开浏览器的开发者工具(F12) => Console 标签页 才能看到结果:
在这里插入图片描述

7. 函数

7.1 语法格式

在这里插入图片描述

7.2 函数表达式

在这里插入图片描述
此时形如 function() { } 这样的写法定义了一个匿名函数,然后将这个匿名函数用一个变量来表示。后面就可以通过这个 add 变量来调用函数了。
arguments叫做:类数组对象,当我们在js中在调用一个函数的时候,我们经常会给这个函数传递一些参数,js把传入到这个函数的全部参数存储在一个叫做arguments的里面

8. 作用域

某个标识符名字在代码中的有效范围。
在这里插入图片描述
在这里插入图片描述
这样写的结果是:101,原因是:在JS中,如果定义一个变量不使用let和var,则得到一个全局变量。

8.1 作用域链

在这里插入图片描述
举个例子:
在这里插入图片描述
这里的结果是10。执行 console.log(num) 的时候, 会现在 test2 的局部作用域中查找 num. 如果没找到, 则继续去 test1 中查找。如果还没找到, 就去全局作用域查找。大家只需要记住一个点就行:就近原则。

9. 对象

9.1 使用 字面量 创建对象

使用 { } 创建对象:
在这里插入图片描述
在这里插入图片描述
使用对象的属性和方法:

// 1. 使用 . 成员访问运算符来访问属性 `.` 可以理解成 "的"
console.log(student.name);
// 2. 使用 [ ] 访问属性, 此时属性需要加上引号
console.log(student['height']);
// 3. 调用方法, 别忘记加上 ()
student.sayHello();

9.2 使用 new Object 创建对象

在这里插入图片描述
注意:使用 { } 创建的对象也可以随时使用 student.name = " "; 这样的方式来新增属性。

9.3 使用 构造函数 创建对象

前面的创建对象方式只能创建一个对象,而使用构造函数可以很方便 的创建 多个对象。使用构造函数可以把相同的属性和方法的创建提取出来, 简化开发过程。
在这里插入图片描述
在这里插入图片描述
举个例子:
在这里插入图片描述

9.4 class关键字创建对象

这个关键字在ES6之前是没有的。
在这里插入图片描述
这里构造函数用一个constructor来表示,方法也不需要加function

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

加密世界危机四伏,普通用户该如何应对钓鱼陷阱

据区块链安全公司 Scam Sniffer 称,加密货币网络钓鱼活动在 2023 年有所增加,诈骗者利用钱包盗取恶意软件从受害者那里窃取了近 3 亿美元。金额很惊人是不是?只是没想到素以小心谨慎为口号冲浪的我也栽了一回。还原一下事情经过: …

【LV12 DAY11 硬件控制原理】

CPU通过读写控制器的寄存器从而达到控制硬件的目的

4.2V线性500mA充电管理芯片WT4054

4.2V线性500mA充电管理芯片WT4054 WT4054,一款强大而小巧的锂电池充电IC,为你的便携式设备提供无忧充电。其SOT-23-5L封装小巧轻便,所占空间极小,而其强大的功能将为你的设备提供稳定、高效的电量供应。 这款充电器拥有众多令人惊…

jsES6+新语法

目录 模板字符串标签模板字符串 函数增强默认值与解构剩余参数rest和arguments 箭头函数 展开语法SymbolSetSet方法weakSetweakSet常用方法 MapMap常用方法weakMapweakMap常用方法 PromiseProxy/Reflect迭代器与生成器ES6新增方法includes**Object.valuesObject.entriespadStar…

【C++】几种常用的类型转换

类型转换 c语言中的类型转换C的类型转换static_castreinterpret_castconst_castdynamic_cast c语言中的类型转换 在C语言中我们经常会遇到类型转化的问题,主要分为两种:显式类型转换和隐式类型转换。 显式类型转换:就是程序员使用强制类型转…

Java-字符串-String类

1 需求 1.1 Field Summary 1.2 Constructor Summary public String() : 空构造public String(byte[] bytes) : 把字节数组转成字符串public String(byte[] bytes,int index, int length) : 把字节数组的一部分转成字符串public String(char[] value) : 把字符数组转成字符串p…

学生备考护眼灯哪个牌子好性价比高?2024最新台灯分享

现在越来越多90后家长有了孩子,而年轻家长也更加重视孩子们的成长健康,特别是小孩子的近视率越来越高,家长们就会选择护眼台灯来为孩子的视力保驾护航。但很多家长在选购时,面对各式各样的台灯却又陷入迷茫,究竟该怎么…

高校电力能耗监测精细化管理系统,提升能源利用效率的利器

电力是高校不可离开的重要能源,为学校相关管理人员提供在线用能查询统计等服务。通过对学校照明用电、空调用电等数据的采集、监控、分析,为学校电能管理制定合理的能源政策提供参考。同时,也可以培养学生的节能意识,学校后勤电力…

大模型学习第二课

学习目标: 浦语大模型趣味Demo 学习内容: 学习时间: 20240108 学习产出: InternLM介绍 大模型:人工智能领域钟参数数量巨大、拥有庞大计算能力和参数规模的模型。InternLM模型全链条开源,7B,…

[SpringBoot]接口的多实现:选择性注入SpringBoot接口的实现类

最近在项目中遇到两种情况,准备写个博客记录一下。 情况说明:Service层一个接口是否可以存在多个具体实现,此时应该如何调用Service(的具体实现)? 其实之前的项目中也遇到过这种情况,只不过我采…

企业一体化管理建设:制造业如何应对信息孤岛和流程断点?-亿发

未来,制造业将成为市场经济的重要支柱。缺乏制造业的支持,整个供应链将受到市场波动的冲击。因此,改革传统的制造业生产和管理方式是市场经济转型的不可或缺的条件。数字化转型趋向于多领域、多行业,企业若要实现长远发展&#xf…

服务器故障与管理口与raid

一,服务器常见故障 1,系统不停重启进入不了系统 排查是否是硬件故障,系统盘是否损坏(硬盘灯红色,黄色,绿色) 查看系统第一启动项是那种方式(硬盘 网络网卡 光驱 U盘) bios 是否双系统&#x…

面向对象软件设计与分析40讲(36)软件开发过程模型之增量模型

文章目录 1 概念2 优点3 缺点4 适用范围1 概念 增量模型强调将整个项目划分为多个增量或阶段,并在每个增量中逐步构建和交付系统的功能。每个增量是对系统的一个部分进行开发、测试和交付,形成一个可用的子系统。 以下是增量过程模型的主要特点和步骤: 划分增量:根据项目…

2024前端炫酷源码分享(附效果图及在线演示)

分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 GSAP-火箭动画特效 GSAP 火箭动画 当氮气充足的情况下 火箭会冲出 并继续飞行 图片…

基于Spring Boot+Vue的课堂管理系统(前后端分离)

该项目完全免费 介绍 基于Spring BootVue的课堂管理系统。前后端分离。包含教师授课管理、学生选退课、聊天室、签到、笔记管理模块等。 技术架构 SpringBoot MyBatis Redis WebSocket VueCLI Axios Element UI 项目特点: 1、后台使用MyBatis连接数据库&…

2024年1月7日15:09:50

2024年1月7日15:09:55复习:我今天学了有价值的东西,那就是在瓦罗兰特拿到了三杀 2024年1月7日15:11:10学习了如何使用vivopad2的键盘 可以稍微用一下 2024年1月7日15:17:58 学习一个编程的题目 2024年1月7日15:31:27不用机械键盘打字效率就是比不用低…

DC电源模块的安全性能评估及认证标准

BOSHIDA DC电源模块的安全性能评估及认证标准 DC电源模块的安全性能评估和认证标准主要涉及以下方面: 1. 安全标准:DC电源模块需要符合国际电工委员会(IEC)和国家标准的相关规定,如IEC 60950-1(信息技术…

(一)看参考手册学stm32基于hal库,点灯时钟配置

(一)看参考手册学stm32基于hal库,点灯时钟配置 这篇文章主要是个人的学习经验,想分享出来供大家提供思路,如果其中有不足之处请批评指正哈。 废话不多说直接开始主题,本人是基于STM32F407VET6芯片&#xf…

静态网页设计——个人图书馆(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1VN4y1q7cz/?vd_source5f425e0074a7f92921f53ab87712357b 源码:https://space.bilibili.co…

Java多线程并发篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、JAVA 并发知识库二、Java中实现多线程有几种方法三、继承 Thread 类四、实现 Runnable 接口。前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了…