深入理解JS语法与变量

news2024/11/18 22:52:15

深入理解JS语法与变量

  • 前言
  • 初识JavaScript
    • JavaScript的语言风格和特性
  • JavaScript的书写位置
  • 认识输出语句
  • 学会处理报错
    • REPL 环境
  • 变量
    • 定义变量
    • 改变变量
    • 变量的合法命名
    • 变量的默认值
    • 变量的常见错误
    • 等号表示赋值
    • 同时声明多个变量
  • 变量声明提升
    • 注意事项
  • 结语

前言

在现代Web开发中,JavaScript扮演着至关重要的角色。它的语法和变量是理解这门语言的关键。就像学习一门新语言一样,JavaScript的语法规则和变量概念可能会让人感到挑战,但同时也散发着强大的魅力。让我们一同揭开JavaScript的神秘面纱,探索这门语言的奇妙之处。

初识JavaScript

前端三层
在这里插入图片描述
JavaScript是一种高级、解释型的编程语言,具有轻量级、跨平台的特性。以下是JavaScript的主要历史里程碑:

  1. 诞生(1995年):

    • JavaScript由Netscape公司的Brendan Eich在1995年创建。最初命名为"LiveScript",后来与Sun Microsystems合作,改名为JavaScript。
  2. 浏览器战争(1995-2001年):

    • JavaScript迅速在Netscape Navigator浏览器中流行起来,并很快成为网页开发的核心技术。
    • 微软推出了JScript,这是他们在Internet Explorer中的JavaScript实现。这导致了一系列的“浏览器战争”时期,其中各浏览器尝试通过引入自己的技术来吸引开发者。
  3. ECMAScript标准化(1997年):

    • 为了规范JavaScript,ECMAScript标准制定组织成立,并发布了ECMAScript 1.0标准。ECMAScript定义了JavaScript的核心语法和功能。
  4. DOM和BOM(Document Object Model和Browser Object Model):

    • W3C制定了DOM和BOM标准,这些标准定义了JavaScript与文档对象和浏览器对象的交互方式,使开发者能够动态地操作和更新网页内容。
  5. Ajax的兴起(2005年):

    • Ajax(Asynchronous JavaScript and XML)的兴起标志着JavaScript在网页上实现异步数据传输的能力。这使得网页可以在不重新加载整个页面的情况下更新部分内容,提升了用户体验。
  6. Node.js的出现(2009年):

    • Ryan Dahl在2009年发布了Node.js,这是一个基于JavaScript运行的服务器端平台。Node.js的出现使得JavaScript可以用于服务器端开发,从而实现了全栈开发。
  7. ES6(ECMAScript 2015):

    • ECMAScript 2015引入了大量新特性,包括let和const关键字、箭头函数、类、模块等。这些特性使得JavaScript更加现代化、强大和易于维护。
  8. JavaScript框架和库的崛起:

    • 随着时间的推移,许多JavaScript框架和库如Angular、React和Vue等崛起,简化了前端开发的复杂性,并推动了单页面应用程序(SPA)的流行。
  9. 现代JavaScript(2020年以后):

    • JavaScript持续发展,不断推出新的语言特性和功能,以满足不断变化的开发需求。近年来,TypeScript等衍生语言也受到了广泛关注。

JavaScript已经成为前端开发的核心技术之一,同时在服务器端和移动应用开发中也有着广泛的应用。

JavaScript的语言风格和特性

在这里插入图片描述

JavaScript的书写位置

在这里插入图片描述

认识输出语句

在这里插入图片描述
alert() 是内置函数,函数就是功能的“封装”调用函数需要使用圆括号
console是JS的内置对象,通过“打点”可以调用它内置的log“方法”,所谓“方法”就是对象能够调用的函数。

学会处理报错

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

REPL 环境

在这里插入图片描述

变量

变量是计算机语言中能储存计算结果或能表示值抽象概念
变量不是数值本身,它们仅仅是一个用于存储数值的容器

定义变量

要想使用变量,第一步就是声明它,并给它赋值 eg: let a = 5 ;

改变变量

变量的值可以被改变,改变变量值不再需要书写let了

let a = 10;        //定义变量a并赋初始值为10
a = 18;            // 更改变量a的值为18
console.log(a);    // 18

变量的合法命名

在JavaScript中,变量的命名必须遵循一些规则和约定。以下是一些关于JavaScript变量命名的规则:

  1. 标识符的组成:

    • 变量名必须以字母(a-z、A-Z)或者下划线(_)或者美元符号($)开头。
    • 后续的字符可以是字母、数字(0-9)、下划线或美元符号。
  2. 大小写敏感:

    • JavaScript是区分大小写的,因此myVariablemyvariable是两个不同的变量。
  3. 保留字:

    • 不能使用JavaScript的保留字作为变量名。例如,varfunctionif等是JavaScript的保留字,不能用作变量名。
  4. 合理和描述性:

    • 命名应该具有描述性,能够清晰地表达变量的用途。这有助于代码的可读性和维护性。
    • 避免使用单个字符(除非是计数器或循环变量),而是选择有意义的名称。
  5. 驼峰命名法:

    • 推荐使用驼峰命名法(Camel Case)来命名变量,特别是在多个单词组成的变量名中,第一个单词小写,后续单词首字母大写。例如:myVariableName

示例:

// 合法的变量名
var firstName;
var lastName;
var myVar;
var _underscoreVar;
var $dollarVar;
var camelCaseExample;

// 不合法的变量名
// var 1stVariable; // 不能以数字开头
// var my-variable; // 不能使用连字符
// var var; // 不能使用保留字

遵循这些规则,可以确保你的JavaScript变量名是合法的,并且代码易读易维护。

变量的默认值

一个变量只定义,但没有赋初值,默认值是undefined
一个变量只有被var / let 定义,并赋初值之后,才算正式初始化完成

var a;
console.log(a);   // undefined
a = 10;
console.log(a);   // 10

变量的常见错误

不用var / let 定义,而直接将值赋予它,虽不引发报错,但会产生作用域问题。

a = 10;
console.log(a);   // 能输出10

尝试使用一个既没有被var定义过,也没有赋过值的字符,就会产生引用错误。

console.log(b);  // ×

等号表示赋值

var a = 10;
a = a + 1;
console.log(a);   // 11

同时声明多个变量

使用逗号同时声明和初始化两个变量

var a = 0 , b = 0;

变量声明提升

变量声明的提升:你可以提前使用一个稍后才声明的变量,而不会引发异常
在执行所有代码前,JS有预解析阶段,会预读所有变量的定义
在这里插入图片描述

注意事项

变量声明的提升是JavaScript的特性,所以经常出面试题
在实际开发时,不要刻意使用变量声明提升特性。一定要先定义并给变量赋初值,然后再使用变量

结语

JavaScript语法与变量是深入学习这门语言的关键。通过这篇博客,你将建立起对JavaScript基础的牢固理解,并掌握一些高级特性。无论是面对初学者的入门挑战,还是对于有经验者的深度探讨,希望这篇文章能为你提供有益的指导,让你更加游刃有余地在JavaScript的编程世界中驰骋。

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

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

相关文章

Vue构建项目断点调试过程问题总结

Vue构建项目断点调试过程问题总结 问题背景 前端开发过程中,碰到问题时需要debug,快速分析和解决问题。一般除了console.log的方式打印日志外,更方便直观的方式就是打断点debug。本文对vue项目debug过程可能碰到的问题进行总结,…

Kafka(二)原理详解

一 、kafka核心总控制器(Controller) 在Kafka集群中会有一个或者多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。 作用:leader副…

FireAlpaca:轻量级、免费的Mac/Win绘图软件,让你的创意如火燃烧!

FireAlpaca是一款轻量级、免费的绘图软件,适用于Mac和Win系统,让你的创作过程更加快捷、简便。无论是绘制漫画、插图、设计作品还是进行简单的图片编辑,FireAlpaca都能满足你的需求。 首先,FireAlpaca具有直观友好的用户界面&…

国辰智企资产管理系统:实现资产精细化管理的首选

在市场竞争日益激烈、金融环境不断变化的背景下,有效的资产管理已成为企业保持竞争优势和实现财务目标的关键。传统资产管理方法已显不足以适应现代经济环境的快速变化。为了迎接这一挑战,越来越多企业纷纷采用先进的资产管理系统,以提高效率…

【面试突击】微信亿级朋友圈的社交系统设计

微信亿级朋友圈的社交系统设计 先来说一下业务需求吧: 每个用户可以发朋友圈,可以点赞,评论可以设置权限,不看某些人朋友圈、不让某些人看你的朋友圈可以刷朋友圈中其他人的动态 对于这样的系统设计,主要从业务来考虑…

Springboot项目启动报错:Command line is too long问题解决

启动项目报错:Error running ‘xxxxxxxx’: Command line is too long. Shorten command line for ‘xxxxxxxx’ or also for Application default configuration 方法一 点击提示中的:default:然后在弹出窗口中选择:JAR xxxx xxx&#xff0…

搭建k8s集群实战(一)系统设置

1、架构及服务 Kubernetes作为容器集群系统,通过健康检查重启策略实现了Pod故障自我修复能力,通过调度算法实现将Pod分布式部署,并保持预期副本数,根据Node失效状态自动在其他Node拉起Pod,实现了应用层的高可用性。 …

手势识别MATLAB代码

手势识别是智能设备常用的需求, 下面我们用MATLAB来识别手部的形态: 主程序main.m clc;clear all;close all;%清除命令行和窗口 imimread(DSC05815.JPG); [skin,bwycbcr,w,h] hand_segmentation(im); im1bwycbcr; % se strel(ball,[1 1 1;1 1 1;1 1 1]); im1 imdilate(im…

HarmonyOS鸿蒙学习笔记(22)@Builder实战

Builder标签是一种更轻量的UI元素复用机制,下面通过一个简单的例子来具体说明: 比如如下布局效果:上面是一个轮播的Swiper,下面是一个Grid 布局代码如下: build() {Navigation() {Scroll() {Column({ space: CommonConstants.CO…

html+css浮动小练习

以下是代码&#xff1a; <!DOCTYPE html> <!-- 2024.1.23 --> <html lang"en"> <head><meta charset"UTF-8"><title>浮动布局练习</title><style>.leftfix{float: left;}.rightfix{float:right;}/* 问题…

Leetcode—24. 两两交换链表中的节点【中等】

2023每日刷题&#xff08;八十七&#xff09; Leetcode—24. 两两交换链表中的节点 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x),…

如何进行H.265视频播放器EasyPlayer.js的中性化设置?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#xff0c;可支持H.264与H.265编码格式&#xff0c;性能稳定、播放流畅&#xff0c;能支持WebSocket-FLV、HTTP-FLV&#xff0c;HLS&#xff08;m3u8&#…

HTML 入门手册(二)

目录 HTML 入门手册(一) 10-表单 11-input标签 11.1文本框 (text) 11.2密码框 (password) 11.3单选按钮 (radio) 11.4复选框 (checkbox) 11.5普通按钮 11.6提交按钮 (submit) 11.7重置按钮 (reset) 11.8隐藏域 (hidden) 11.9文件上传 (file) 11.10数字输入 (numbe…

Power Apps 向Power Automate传一个数组参数

Power Apps传Power Automate数组参数 背景Power Apps传参方法画布开发我们现在power apps中设置一个集合**ArrCollect**准备一个按钮 Power Automate接收总结画布流 背景 我们通常会从Power Apps界面传递参数给Flow中&#xff0c;但是很多时候仅仅是一个字符串类型的已经不适用…

超融合系统疑难故障定位与解决实践 3 例(含信创技术栈)

当 IT 系统出现故障&#xff0c;问题定位往往是运维人员最头疼的环节。尤其是超融合系统&#xff0c;由于整体涉及的技术栈比较复杂&#xff0c;且有越来越多的用户基于信创环境进行部署&#xff0c;非常考验厂商和技术人员的专业能力&#xff1a;厂商研发和售后工程师不仅应能…

web安全学习笔记【07】——非http\https抓包

#知识点&#xff1a; 1、Web常规-系统&中间件&数据库&源码等 2、Web其他-前后端&软件&Docker&分配站等 3、Web拓展-CDN&WAF&OSS&反向&负载均衡等 ----------------------------------- 1、APP架构-封装&原生态&H5&flutter…

2024年了你还在用百度翻译?手把手教会你使用AI翻译!一键翻译网页和PDF文件!

一些结论 沉浸式翻译是一款免费的AI驱动的双语网页翻译扩展工具。 主要功能包括&#xff1a;一键网页翻译&#xff0c;PDF翻译&#xff0c;输入框翻译&#xff0c;鼠标悬停翻译等多种翻译场景。 目前核心功能均免费使用。 沉浸式翻译是什么&#xff1f; 沉浸式翻译是一款免费的…

低噪声放大器LNA 之 噪声系数

​ 一、噪声系数的定义 在定义噪声系数之前&#xff0c;先看一个放大器输入输出端信噪比&#xff08;信号功率与噪声功率之比&#xff0c;写作SNR&#xff09; 对比图&#xff1a; ​​从上图可用看出&#xff0c;从输入端到输出端&#xff0c;信号和噪声功率都得到了放大&…

5G网络变压器应用领域

5G网络变压器在多个应用领域发挥着重要作用。以下是一些主要的应用领域&#xff1a; 1. **通信基站&#xff1a;** 5G网络变压器在通信基站中扮演关键角色。它们用于转换电力&#xff0c;确保通信基站设备的正常运行。稳定的电力供应对于保障高速、高频率的5G通信至关重要。 …

计算机网络-以太网链路聚合简介

一、网络可靠性是什么&#xff1f; 网络的可靠性指当设备或者链路出现单点或者多点故障时保证网络服务不间断的能力。 实际工作中网络需要保证可靠性&#xff0c;实现冗余设计。会从三个层次实现&#xff1a; 链路冗余 单板冗余 整机设备冗余 网络的可靠性指当设备或者链路出现…