JS基础:JS语法规范详解(最全!)

news2024/11/24 12:35:02

你好,我是云桃桃。

一个希望帮助更多朋友快速入门 WEB 前端的程序媛。

云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端基础路线”,可获取完整web基础路线导图。

308篇原创内容-更多前端系列内容可以go公众.h:云桃桃

后台回复“前端基础路线”可获取前端基础学习路线

后台回复“前端基础题”可得到前端基础100题汇总,持续更新中

后台回复“前端电子书”可获取20+本精选电子书

前言

今天我们聊聊 JS 的语法。

JS 语法就像是一套规则和指南,它告诉我们如何用正确的方式书写 JavaScript 代码。就像我们在玩游戏时需要遵守游戏规则一样,编写 JavaScript 代码也需要遵守语法规则。

例如,在 JS 中,我们需要用特定的方式来定义变量、使用函数、控制流程等等。如果我们不遵守这些语法规则,代码就可能无法正常运行,或者会出现错误。

好,那我们一起来看看吧。

一、变量声明与赋值

首先,我们来了解如何声明变量和给它们赋值。在 JavaScript 中,使用var关键字来声明变量,=用于为变量赋值。在下面代码中,messge 是变量,它 被赋值为 Hi!

var message
message = 'Hi!'

二、数据类型

JavaScript 有两种类型的值:字面量和变量。

1、字面量

在 JavaScript 中,字面量指的是在代码中直接表示数据值的特殊语法结构。它们是创建数据结构的快捷方式,不需要通过函数或构造器。以下是 JavaScript 中 7 种常见字面量。

  • 数字(Number)字面量

数字字面量可以是整数或浮点数,也可以是科学计数法表示的数值。

let pi = 3.14159 // 圆周率,一个浮点数
let largeNumber = 123456789 // 一个整数
let scientificNotation = 1.23e6 // 科学计数法表示的数
  • 字符串(String)字面量

字符串是由双引号" "或单引号' '包围的文本。它们用于存储如名字、句子或其他形式的文本。比如。

let name = 'Alice Smith' // 使用双引号
let greeting = 'Hello, World!' // 使用单引号
  • 表达式字面量

表达式字面量是由运算符连接的值,它们可以直接计算结果。

let sum = 5 + 7 // 加法运算
let product = 10 * 20 // 乘法运算
  • 数组(Array)字面量

数组字面量用于定义一个数组,元素可以是任意数据类型。

let numbers = [1, 2, 3, 4, 5] // 一个数字数组
let colors = ['red', 'green', 'blue'] // 一个字符串数组
  • 对象(Object)字面量

对象字面量用于创建一个对象,它由一系列的键值对组成。

let person = {
  firstName: 'John',
  lastName: 'Doe',
  age: 30,
  hobbies: ['reading', 'gaming', 'sports']
} // 一个表示人的JSON对象
  • 函数(Function)字面量

函数字面量用于定义一个函数,它可以包含参数和函数体。

let myGreeting = function (name) {
  return 'Hello, ' + name + '!'
} // 一个简单的函数

let result = myGreeting('桃') // 使用函数并打印结果
  • 正则表达式(RegExp)字面量

正则表达式字面量用于定义一个正则表达式对象。

let regex = /^hello/ // 一个正则表达式,匹配以"hello"开头的字符串

2)变量

变量则像是一个空的盒子,我们可以在里面放入任何我们想要的东西。变量的值可以在程序运行过程中改变。例如,我们可以定义一个变量 x,并将其赋值为 5,然后在后续的代码中,我们可以将 x 的值修改为其他的值。

下面是一个简单的例子:

let x = 5 // 定义一个变量 x,并将其赋值为 5
let y = 'hello' // 定义一个变量 y,并将其赋值为 "hello"
let z = true // 定义一个变量 z,并将其赋值为 true

在这个例子中,x、y、z 都是变量,它们的值分别为 5、"hello"和 true。这些变量的值可以在程序运行过程中根据需要进行修改。

三、操作符

JavaScript 提供了多种操作符来进行数学计算和赋值,比如数字运算符+,-,*,/,%来运算,使用赋值运算符=来赋值给变量。

var x = 5
var y = 10
var sum = x + y // 使用加法运算符
var product = x * y // 使用乘法运算符

四、控制流程

控制流程语句,如下案例中,if和循环for,控制代码的执行流程。

for (var i = 0; i < 5; i++) {
  console.log(i) // 从0打印到4
}

五、注释

注释是代码中的特殊文本,它们不会被执行,而是用来解释代码。

// 这是一个单行注释
/*
这是一个多行注释
可以用来描述更长的代码段
*/

六、标识符和命名规则

在 JavaScript 中,标识符是用于命名变量、函数等的名称。它们必须以字母、下划线_或美元符号$开始,可以包含字母、数字、下划线或美元符号。

var firstName = 'John'
var _age = 30
var $salary = 5000

为了避免混淆和错误,有一些命名规则需要注意:

  • 只能包含字母、数字、下划线和美元符号

  • 不能以数字开头:例如,123myVariable 就是不合法的标识符。

  • 区分大小写:jsWord 和 jsword 是不一样的变量,写的时候要注意。

var jsWord = 'hello!'
var jsword = 30
  • 避免使用关键字:例如,var、if、for、while 等都是 JavaScript 的关键字,不能作为标识符使用。

  • 尽量使用有意义的名称:例如,myAge 比 a 更具描述性。

  • 采用驼峰命名法:对于多个单词组成的标识符,首字母小写,后面的每个单词首字母大写,例如 myFirstFunction。

var firstNameVal = 'John'
var lastName = 'Doe'
var masterCardNumber = '1234-5678-9101-1114'

如图。

图片

遵循这些规则可以提高代码的可读性和可维护性,让你的代码更容易理解和修改。

OK,本文完。

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

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

相关文章

2024/5/4 英语每日一段

But something is slowing that rocket down: lack of access to the types of data used to train robots so they can interact more smoothly with the physical world.It’s far harder to come by than the data used to train the most advanced AI models like GPT—mos…

jdk环境安装

jdk安装 创建软件安装的目录 mkdir -p /bigdata/{soft,server} /bigdata/soft 安装文件的存放目录 /bigdata/server 软件安装的目录 把安装的软件上传到/bigdata/soft 目录 解压到指定目录 -C :指定解压到指定目录 tar -zxvf /bigdata/soft/jdk-8u241-linux-x64.tar.gz -C /b…

快速编写测试用例(超详细~)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 当你学会了如何设计测试用例之后&#xff0c;接下来便是开始用例…

234234235

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

TypeScript学习日志-第二十天(模块解析)

模块解析 一、ES6之前的模块规范 前端模块化规范是有很多的&#xff0c;在es6模块化规范之前分别有一下的模块化规范 一、Commonjs 这是 NodeJs 里面的模块化规范 // 导入 require("xxx"); require("../xxx.js"); // 导出 exports.xxxxxx function() …

复写零(双指针)

下面的解法需要手动画图&#xff0c;举例去体会&#xff0c;只有自己手动去做了&#xff0c;才会有所收获。 class Solution {public void duplicateZeros(int[] arr) {int n arr.length;//先找到最后一个元素的位置;//至于为什么要直接先设dest 为-1&#xff0c;这是经过研究…

X 推出 Stories 功能,由 Grok AI 生成新闻摘要

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

框架漏洞RCE-1

一、前提 1、命令执行漏洞&#xff1a;直接调用操作系统命令。攻击者构造恶意命令&#xff0c;将命令拼接到正常的输入中&#xff0c;达到恶意攻击的目的。 (1)、常见命令执行函数 PHP&#xff1a;exec、shell_exec、system、passthru、popen、proc_open、反引号等 ASP.N…

虚拟键代码

虚拟键代码 虚拟键码 (Winuser.h) - Win32 apps | Microsoft Learn 在Windows操作系统中&#xff0c;虚拟键代码&#xff08;Virtual-Key Codes&#xff09;是一组用来表示键盘上按键的数值。这些代码通常用于Windows API函数&#xff0c;以便程序能够识别和处理键盘输入。 虚拟…

嵌入式系统应用-拓展-FLASH之操作 SFUD (Serial Flash Universal Driver)之KEIL应用

这里已经假设SFUD代码已经移植到工程下面成功了&#xff0c;如果读者对SFUD移植还不了解。可以参考笔者这篇文章&#xff1a;SFUD (Serial Flash Universal Driver)之KEIL移植 这里主要介绍测试和应用 1 硬件设计 这里采用windbond 的W25Q32这款芯片用于SFUD测试。 W25Q32是…

IP地址类型

这些IP地址中有IPv4和IPv6地址,以及一些是链路本地地址(通常用于本地网络中的通信),而另一些则是可以被路由的公共或私有IP地址。 这里是您提供的IP地址的一些简要说明: IPv6 链路本地地址:以fe80:开头的地址是IPv6链路本地地址。这些地址仅用于同一链路(如以太网段或无…

ue引擎游戏开发笔记(33)——武器与角色的匹配,将新武器装备到角色身上

1.需求分析&#xff1a; 武器能出现在世界中&#xff0c;完成了第一步&#xff0c;下一步需要角色和武器适配&#xff0c;即不论角色跑动&#xff0c;射击等&#xff0c;武器和角色都相匹配&#xff0c;将武器装备到角色身上。 2.操作实现&#xff1a; 1.首先先把角色原有的武…

【LeetCode刷题】739. 每日温度(单调栈)

1. 题目链接2. 题目描述3. 解题方法4. 代码 1. 题目链接 739. 每日温度 2. 题目描述 3. 解题方法 用一个栈st保存每个数的下标&#xff0c;同时创建一个数组res保存结果&#xff0c;初始值都为0。循环遍历题目中的数组temperature。如果temperature[i] > st.top()&#x…

国密SSL证书助力政务领域网络和通信安全

2024年4月中旬&#xff0c;中国密码学会密评联委会发布了政务领域若干典型场景密码应用与安全性评估实施指南&#xff0c;以供相关单位开展商用密码应用与安全性评估工作参考。指南对网络和通信安全的密码应用实施做出了指引&#xff0c;其中&#xff1a; 《政务领域政务云 密…

Discourse 清理存储空间的方法

Discourse 使用一段时间以后会发现硬盘空间占用非常多。 主要是因为 Docker Image 的问题&#xff0c;如果升级次数越多&#xff0c;空间占用越多。 运行下面的命令&#xff1a; ./launcher cleanup 能够帮助你清理 Discourse 占用的空间。 如下面代码所示&#xff1a; […

OpenNJet应用引擎——云原生时代的Web服务新选择

文章目录 OpenNJet应用引擎——云原生时代的Web服务新选择引言&#xff1a;数字化转型的推动力&#xff1a;OpenNJet应用引擎为什么选择OpenNJet&#xff1f; OpenNJet的核心优势1. 云原生功能增强2. 安全加固3. 代码重构与性能优化4. 动态加载机制5. 多样化的产品形态6. 易于集…

高项-案例分析万能答案(作业分享)

项目管理&#xff1a;每天进步一点点~ 活到老&#xff0c;学到老 ヾ(◍∇◍)&#xff89;&#xff9e; 何时学习都不晚&#xff0c;加油 一、通用问题原因: 1.项目经理管理经验不足&#xff0c;没有及时发现和解决xx方面的问题。 2.项目管理计划没有得到关键干系人的评审确…

TypeScript学习日志-第十九天(namespace命名空间)

namespace命名空间 一、基本用法 namespace 所有的变量以及方法必须要导出才能访问&#xff0c;如图&#xff1a; 二、 嵌套 namespace 可以进行嵌套使用&#xff0c;如图&#xff1a; 它也必须需要导出才能访问 三、合并 当我们出现两个同名的 namespace 它就会合并这两…

Spring Security + JWT 实现登录认证和权限控制

Spring Security JWT 实现登录认证和权限控制 准备步骤 准备好一些常用的工具类&#xff0c;比如jwtUtil&#xff0c;redisUtil等。引入数据库&#xff0c;mybatis等&#xff0c;配置好controller&#xff0c;service&#xff0c;mapper&#xff0c;保证能够正常的数据请求。…

泛微E9开发 限制整型、日期型、附件型字段的取值范围

1、功能背景 在用户进行输入时&#xff0c;通过控制输入数据的范围来实现实际效果&#xff0c;如上级管理者对下级员工进行年度评分时&#xff0c;只能输入1~100分&#xff0c;现在表单中新增三种类型不同的字段&#xff0c;具体如下所示&#xff1a; 2、展示效果 限制整数的…