第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需要准备一个编译器和游览器,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 值地址每次都一样?
文章目录 前言现象无限循环相同地址 原因推荐阅读 前言 循环语句是一种常用的控制结构,在 Go 语言中,除了 for 关键字以外,还有一个 range 关键字,可以使用 for-range 循环迭代数组、切片、字符串、map 和 channel 这些数据类型。…...
小研究 - JVM 垃圾回收方式性能研究(三)
本文从几种JVM垃圾回收方式及原理出发,研究了在 SPEC jbb2015基准测试中不同垃圾回收方式对于JVM 性能的影响,并通过最终测试数据对比,给出了不同应用场景下如何选择垃圾回收策略的方法。 目录 4 垃圾回收器性能比较 4.1 测试结果 5 结语 …...
java根据poi解析excel内容
一.HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook Apache POI包中的HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook的区别如下: HSSFWorkbook:一般用于操作Excel2003以前(包括2003)的版本,扩展名是.xls。 XSSFWorkbook:一…...

实验报告-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口,以及wan口 配置lan口桥接 按实际情况来设置了 单拨(PPOE拨号) 多拨(内外网设置点击基于物理网卡的混合模式) 后续步骤 pve连接虚拟机ikuai的网络以及其他虚拟机连接ikuai的网…...

Android 面试题 ANR 五
🔥 什么是 ANR 🔥 ANR(Application Not Responding )应用无响应的简称,是为了在 APP卡死时,用户 可以强制退出APP的选择,从而避免卡机无响应问题,这是Android系统的一种自我保护机制。 在Android中…...
实训笔记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 游游的二进制树
题目描述 游游拿到了一棵树,共有nnn个节点,每个节点都有一个权值:0或者1。这样,每条路径就代表了一个二进制数。 游游想知道,有多少条路径代表的二进制数在[l,r][l,r][l,r]区间范围内? (请注意…...
收发存和进销存有什么区别?
一、什么是收发存和进销存 1、收发存 收发存是供应链管理中的关键概念,用于描述企业在供应链中的物流和库存管理过程。 收发存代表了企业在采购、生产和销售过程中的物流活动和库存水平。 收(Receiving) 企业接收供应商送达的物料或产品…...
小程序 账号的体验版正式版的账号信息及相关配置
siteinfo.js // 正式环境 const releaseConfig {appID: "",apiUrl: "",imgUrl: "" }; // 测试环境(包含开发环境和体验环境) const developConfig {appID: "",apiUrl: "",imgUrl: "" }…...
AIGC(Artificial Intelligence Generated Content)和 Web3对比,未来发展
一、AIGC(Artificial Intelligence Generated Content)行业 历史背景 AIGC(Artificial Intelligence Generated Content)是指利用人工智能技术生成的内容。随着人工智能技术的不断发展,AIGC 行业逐渐兴起。早期的 AIG…...

机器学习之Boosting和AdaBoost
1 Boosting和AdaBoost介绍 1.1 集成学习 集成学习 (Ensemble Learning) 算法的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。 集成学习通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学…...
汇编语言预定义寄存器和协处理器
ARM汇编器对ARM的寄存器和协处理器进行了预定义(包括APCS对r0~r15寄存器的定义),所有的寄存器和协处理器名都是大小写敏感的。 (1)预定义寄存器名 下面列出了被ARM汇编器预定义的寄存器名。 r0ÿ…...

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

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

网络运维基础问题及解答
前言 本篇文章是对于网络运维基础技能的一些常见问题的解答,希望能够为进行期末复习或者对网络运维感兴趣的同学或专业人员提供一定的帮助。 问题及解答 1. 列举 3 种常用字符编码,简述怎样在 str 和 bytes 之间进行编码和解码。 答:常用的…...
【RabbitMQ】之保证数据不丢失方案
目录 一、数据丢失场景二、数据可靠性方案 1、生产者丢失消息解决方案2、MQ 队列丢失消息解决方案3、消费者丢失消息解决方案 一、数据丢失场景 MQ 消息数据完整的链路为:从 Producer 发送消息到 RabbitMQ 服务器中,再由 Broker 服务的 Exchange 根据…...

插入排序算法
插入排序 算法说明与代码实现: 以下是使用Go语言实现的插入排序算法示例代码: 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…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...