当前位置: 首页 > news >正文

第2章 JavaScript语法

准备工作

  • 编写js需要准备一个编译器和游览器,js必须通过HTML/XHTML文档编写

js的编写位置

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>...</script>
</head>
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!--  外部引入js --><script src="./index.js"></script>		
</head>
<body>// 更为推荐的编写位置,这样能使浏览器更快地加载页面<script src="./index.js"></script>	
</body>

编程语言

  • 程序设计语言分为解释型和编译型两大类
  • 编译型语言需要一个编译器把语言编写出来的源代码翻译为直接在计算机上执行的文件。
  • 解释型语言需要一个解释器,对于js而言游览器中的JavaScript解释器将直接读入源代码并执行
  • 用编译型语言编写的代码有错误,这些错误在代码编译阶段就能被发现。而解释型语言代码中的错误只能等到解释器执行到有关代码时才能被发现。
  • 与解释型语言相比,编译型语言往往速度更快,可移植性更好,但它们的学习曲线也往往相当陡峭。

语法

语句

  • 只有按照正确的语法编写出来的语句才能得到正确的解释。
first statement;		// 语句最后最好加上;号

注解

  • 注解不会被JavaScript解释器去解释并执行,注解是给程序员看的
// 		// 单行注解,快捷键ctrl+/
/* */   // 多行注解,快捷键alt+shift+a

变量

  • 会变的事物叫做变量
a=10;	// 默认为var a=10
b=20;	// var b=20
  • 声明变量
// 方式一
var a;
var b;// 方式二
var a,var b;
  • 变量赋值
// 方式一
var a=10;
var b=20;// 方式二
var a=10,b=20;// 方式三
var a;
var b;
a=10;
b=20;
  • 变量区分大小写,必须由下划线和数字(不能再开头),字母组成,尽量遵循小驼峰命名法(首个字母小写后面大写),变量不能和关键字重名

数据类型

  • 必须声明数据类型的语言叫做强类型语言,不用声明的叫弱类型语言(js)
  • 弱类型语言意味着程序员可以在任意时刻改变变量的类型
var str="123";	// 字符串类型
str=33			// 数值类型

1. 字符串

  • 字符串可以用双引号和单引号声明
  • 如果字符串中要用引号遵循外双内单,外单内双
var str1="aaa";
var str2='bbb';

2. 数值

var a=10;
var b=-10;
var c=10.3;

3. 布尔值

var flag1=true;
var flag2=false;

4. 数组

  • js的数组能够存储多个不同类型的数据
  • 数组就是有序集合一般用数字表示索引
// 声明数组
var arr1=Array(4);	// 表示声明了一个长度为4的数组
var arr2=Array();	// 不确定长度声明
var arr3=[];			// 简写声明// 数组添加值,分别在第0个位置到第3个位置添加1
arr1[0]=1;
arr1[1]=true;
arr1[2]=1;
arr1[3]=1;
var ar2=Array(1,2,false,4);	// 自动匹配对应的位置并且添加值
arr3=[1,2,"123",false];		// 赋值

5. 对象

  • 对象就是无序集合一般用字符串表示索引
  • 数组和对象可以配合使用
// 声明对象
var obj1=Object();
var obj2={};// 对象赋值
obj1.name="zhangsan";
obj2={name:"zhangsan"};

操作

算数运算符

// 赋值运算符
var a=10;	
var b=20;// 基本运算符
a+b;	// 30
a-b; 	// -10
a*b;	// 200
a/b;	// 0.5;
a%b;	// 10;// 其他运算符用法类似
a+=1;	// a=11
...// 先用后变,先变后用
a++;
++a;
a--;
--a;// 字符串与运算符
var  str="123";str+321					// 123321
str+"true"					// 123true

比较运算符

  • 可以使用全等(===)来同时比较值和类型
var a=10;
var b=20;a==b	// false
a!=b	// true
a>=b	// false
a<=b	// true

逻辑运算符

var a=10;
var b=20;// 并且
a>=10&&b>=20	// true
a>=10&&b>20		// false// 或
a>=10||b>20		// true// 取反
!true			// false

条件语句

  • 选择一种满足条件的语句执行
  • if()里面必须是bool类型或者运算结果为bool类型
if(true){...
}else if(true){...
}else{...
}switch(num){case 1:...break;case 2:...break;default:...
}

循环语句

  • 满足条件会一直执行
while(true){...
}for(let i=1;i<=10;i++){...
}

函数

  • 用于封装常用的代码块,提高代码复用率
  • 全局作用域是可以在整个js文件中调用,局部作用域只能在函数中/代码块中调用,如果变量名相同遵循就近原则
// 定义函数
function add(a,b){return a+b;
}// 调用函数
var c=add(10,20)		// 30

对象

  • 对象中的成员可以是属性也可以是方法
	obj.name		// 通过.调用对象内部的属性obj.say()		// 通过.调用对象内部的方法
  • 内置对象,js内部已经定义好的对象
const arr=new Array()
arr.length		// 返回数组的长度const date=new Date()
data.getDay()	// 当前当日...

相关文章:

第2章 JavaScript语法

准备工作 编写js需要准备一个编译器和游览器&#xff0c;js必须通过HTML/XHTML文档编写 js的编写位置 <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docume…...

【Golang】Golang进阶系列教程--为什么 Go for-range 的 value 值地址每次都一样?

文章目录 前言现象无限循环相同地址 原因推荐阅读 前言 循环语句是一种常用的控制结构&#xff0c;在 Go 语言中&#xff0c;除了 for 关键字以外&#xff0c;还有一个 range 关键字&#xff0c;可以使用 for-range 循环迭代数组、切片、字符串、map 和 channel 这些数据类型。…...

小研究 - JVM 垃圾回收方式性能研究(三)

本文从几种JVM垃圾回收方式及原理出发&#xff0c;研究了在 SPEC jbb2015基准测试中不同垃圾回收方式对于JVM 性能的影响&#xff0c;并通过最终测试数据对比&#xff0c;给出了不同应用场景下如何选择垃圾回收策略的方法。 目录 4 垃圾回收器性能比较 4.1 测试结果 5 结语 …...

java根据poi解析excel内容

一.HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook Apache POI包中的HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook的区别如下: HSSFWorkbook&#xff1a;一般用于操作Excel2003以前&#xff08;包括2003&#xff09;的版本&#xff0c;扩展名是.xls。 XSSFWorkbook&#xff1a;一…...

实验报告-Sublime配置默认语法,以配置Verilog语法为例

实验报告-Sublime配置默认语法,以配置Verilog语法为例 1,下载Verilog语法环境2,Sublime配置语法工作环境,以Verilog语法环境为例。3,打开一个新的Sublime,验证编辑器配置Verilog为默认语法成功!4,Sublime汉化1,下载Verilog语法环境 参考文献: 1,Sublime Text 4加载…...

pve安装ikuai并设置,同时把pve的网络连接到ikuai虚拟机

目录 前因 前置条件 安装ikuai 进入ikuai的后台 配置lan口&#xff0c;以及wan口 配置lan口桥接 按实际情况来设置了 单拨&#xff08;PPOE拨号&#xff09; 多拨(内外网设置点击基于物理网卡的混合模式) 后续步骤 pve连接虚拟机ikuai的网络以及其他虚拟机连接ikuai的网…...

Android 面试题 ANR 五

&#x1f525; 什么是 ANR &#x1f525; ANR(Application Not Responding )应用无响应的简称&#xff0c;是为了在 APP卡死时&#xff0c;用户 可以强制退出APP的选择&#xff0c;从而避免卡机无响应问题&#xff0c;这是Android系统的一种自我保护机制。 在Android中&#xf…...

实训笔记7.28

实训笔记7.28 7.28笔记一、Hive的基本使用1.1 Hive的命令行客户端的使用1.2 Hive的JDBC客户端的使用1.2.1 使用前提1.2.2 启动hiveserver21.2.3 使用方式 1.3 Hive的客户端中也支持操作HDFS和Linux本地文件 二、Hive中DDL语法2.1 数据库的管理2.1.1 创建语法2.1.2 修改语法2.1.…...

C 游游的二进制树

题目描述 游游拿到了一棵树&#xff0c;共有nnn个节点&#xff0c;每个节点都有一个权值&#xff1a;0或者1。这样&#xff0c;每条路径就代表了一个二进制数。 游游想知道&#xff0c;有多少条路径代表的二进制数在[l,r][l,r][l,r]区间范围内&#xff1f; &#xff08;请注意…...

收发存和进销存有什么区别?

一、什么是收发存和进销存 1、收发存 收发存是供应链管理中的关键概念&#xff0c;用于描述企业在供应链中的物流和库存管理过程。 收发存代表了企业在采购、生产和销售过程中的物流活动和库存水平。 收&#xff08;Receiving&#xff09; 企业接收供应商送达的物料或产品…...

小程序 账号的体验版正式版的账号信息及相关配置

siteinfo.js // 正式环境 const releaseConfig {appID: "",apiUrl: "",imgUrl: "" }; // 测试环境&#xff08;包含开发环境和体验环境&#xff09; const developConfig {appID: "",apiUrl: "",imgUrl: "" }…...

AIGC(Artificial Intelligence Generated Content)和 Web3对比,未来发展

一、AIGC&#xff08;Artificial Intelligence Generated Content&#xff09;行业 历史背景 AIGC&#xff08;Artificial Intelligence Generated Content&#xff09;是指利用人工智能技术生成的内容。随着人工智能技术的不断发展&#xff0c;AIGC 行业逐渐兴起。早期的 AIG…...

机器学习之Boosting和AdaBoost

1 Boosting和AdaBoost介绍 1.1 集成学习 集成学习 (Ensemble Learning) 算法的基本思想就是将多个分类器组合&#xff0c;从而实现一个预测效果更好的集成分类器。 集成学习通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型&#xff0c;各自独立地学…...

汇编语言预定义寄存器和协处理器

ARM汇编器对ARM的寄存器和协处理器进行了预定义&#xff08;包括APCS对r0&#xff5e;r15寄存器的定义&#xff09;&#xff0c;所有的寄存器和协处理器名都是大小写敏感的。 &#xff08;1&#xff09;预定义寄存器名 下面列出了被ARM汇编器预定义的寄存器名。 r0&#xff…...

【前缀和】974. 和可被 K 整除的子数组

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 974. 和可被 K 整除的子数组 题目:示例:题解: 题目: 示例: 题解: 本题与560.和为K的子数组高度相似 同样的,本题利用了前缀和的定理.当(pre[i]-…...

linux页框回收之shrink_node函数源码剖析

概述 《Linux内存回收入口_nginux的博客-CSDN博客》前文我们概略的描述了几种内存回收入口&#xff0c;我们知道几种回收入口最终都会调用进入shrink_node函数&#xff0c;本文将以Linux 5.9源码来描述shrink_node函数的源码实现。 函数调用流程图 scan_control数据结构 str…...

网络运维基础问题及解答

前言 本篇文章是对于网络运维基础技能的一些常见问题的解答&#xff0c;希望能够为进行期末复习或者对网络运维感兴趣的同学或专业人员提供一定的帮助。 问题及解答 1. 列举 3 种常用字符编码&#xff0c;简述怎样在 str 和 bytes 之间进行编码和解码。 答&#xff1a;常用的…...

【RabbitMQ】之保证数据不丢失方案

目录 一、数据丢失场景二、数据可靠性方案 1、生产者丢失消息解决方案2、MQ 队列丢失消息解决方案3、消费者丢失消息解决方案 一、数据丢失场景 MQ 消息数据完整的链路为&#xff1a;从 Producer 发送消息到 RabbitMQ 服务器中&#xff0c;再由 Broker 服务的 Exchange 根据…...

插入排序算法

插入排序 算法说明与代码实现&#xff1a; 以下是使用Go语言实现的插入排序算法示例代码&#xff1a; package mainimport "fmt"func insertionSort(arr []int) {n : len(arr)for i : 1; i < n; i {key : arr[i]j : i - 1for j > 0 && arr[j] > …...

Linux标准库API

目录 1.字符串函数 2.数据转换函数 3.格式化输入输出函数 4.权限控制函数 5.IO函数 6.进程控制函数 7.文件和目录函数 1.字符串函数 2.数据转换函数 3.格式化输入输出函数 #include<stdarg.h>void test(const char * format , ...){va_list ap;va_start(ap,format…...

从零开始写扫雷游戏:C语言完整实现教程

# 从零开始写扫雷游戏&#xff1a;C语言完整实现教程## 写在前面还记得Windows XP时代那个经典的小游戏吗&#xff1f;每一次点击都让人心跳加速&#xff0c;生怕触发那颗隐藏的地雷。今天&#xff0c;让我们一起用C语言重新实现这个经典游戏。通过这个项目&#xff0c;你将学到…...

值得收藏的27个Linux文档编辑命令

Linux col命令Linux col命令用于过滤控制字符。在许多UNIX说明文件里&#xff0c;都有RLF控制字符。当我们运用shell特殊字符">"和">>"&#xff0c;把说明文件的内容输出成纯文本文件时&#xff0c;控制字符会变成乱码&#xff0c;col指令则能有效…...

SAP HR数据维护避坑指南:HR_INFOTYPE_OPERATION函数调用前后的缓存与锁管理详解

SAP HR数据维护避坑指南&#xff1a;HR_INFOTYPE_OPERATION函数调用前后的缓存与锁管理详解 在SAP HR模块的日常开发与运维中&#xff0c;数据维护操作看似简单却暗藏玄机。许多开发者在调用HR_INFOTYPE_OPERATION函数进行人事信息类型操作时&#xff0c;常常忽略前后必要的缓存…...

量子计算如何革新自然语言处理的语义分析

1. 量子计算与自然语言处理的交叉探索量子计算与自然语言处理的结合正在开辟一个全新的研究领域。作为一名长期关注量子计算应用的从业者&#xff0c;我见证了这项技术从理论构想逐步走向实际验证的过程。量子计算利用量子比特&#xff08;qubit&#xff09;的叠加态和纠缠特性…...

LoftQ量化技术终极指南:如何在4bit精度下高效微调大语言模型

LoftQ量化技术终极指南&#xff1a;如何在4bit精度下高效微调大语言模型 【免费下载链接】peft &#x1f917; PEFT: State-of-the-art Parameter-Efficient Fine-Tuning. 项目地址: https://gitcode.com/gh_mirrors/pe/peft 在大语言模型(LLM)微调的实践中&#xff0c;…...

C251编译器变量分配与内存空间解析

1. C251编译器变量分配问题解析最近在Keil C251开发环境中遇到一个有趣的现象&#xff1a;编译器似乎将部分变量分配到了特殊功能寄存器(SFR)的内存空间。查看链接器生成的MAP文件时&#xff0c;发现如下信息&#xff1a;0000DDH 0000EAH 00000EH BYTE UNIT EDATA …...

开源Agent框架能跑通Demo,但离企业生产还差五个能力

2026年AI行业的现象很有意思。开源社区里Agent框架层出不穷&#xff0c;每隔几周就有一个新项目冲上GitHub热榜&#xff0c;演示视频做得赏心悦目——AI Agent流畅地调用工具、搜索网页、生成报告&#xff0c;评论区一片惊叹。但如果你去问那些真正在生产环境中大规模部署Agent…...

hccl:昇腾 NPU 的“多卡通信库”

hccl&#xff1a;昇腾 NPU 的“多卡通信库” 之前帮朋友看多 NPU 训练的代码&#xff0c;发现他自己手写了很多通信算子&#xff08;AllReduce/Broadcast/AllGather 等&#xff09;——在多 NPU 之间传数据&#xff0c;光写通信层就写了 3,000 行&#xff0c;而且还不稳定&…...

基于RK3568嵌入式主板的智能炒菜机方案:从硬件选型到系统集成实战

1. 项目概述&#xff1a;当嵌入式主板“掌勺”智能厨房最近几年&#xff0c;智能厨电赛道卷得厉害&#xff0c;从智能电饭煲到自动炒菜机&#xff0c;大家都在琢磨怎么让做饭这件事变得更“傻瓜”。我接触过不少这类项目&#xff0c;发现一个核心痛点&#xff1a;很多所谓的“智…...

曝GPT-5.5用上“全球最快芯片”,Claude慌了

120B模型飙到2000 token/秒&#xff0c;CFO更放话已在跑GPT-5.5&#xff01;Cerebras 560亿美元IPO首日暴涨68%&#xff0c;但SemiAnalysis万字拆解直指死穴。 SemiAnalysis&#xff0c;硅谷最硬核的芯片分析机构&#xff0c;4月份光是AI工具的订阅费就烧到了年化1000万美元。…...