JavaScript基本语法

news2024/9/20 18:37:22

1.JavaScript词法结构

所谓词法结构是指一套基础性规则,用来描述如何使用这门语言来编写程序,包括如下几项:

ü 字符集unicode

ü 区分大小写 (true和TRUE)

ü 忽略空白字符(空格、制表符和换行符)

ü 注释

ü 标识符和关键字(保留字)

解释:

命名:英文命名;

空白:由于js会忽略这些空白字符,那么我们在书写代码的时候,就可以更好的利用缩进、换行和空格更好的组织我们的代码,使其更加清晰。一般建议缩进4格

换行:js中一条语句以分号结束;但js中换行也表示一条语句的结束;因此在js中分号可以省略;但不建议省略。

注释非常重要。注释在编程语言中比重50%。

在js中,注释有如下两种写法:(重点)

ü 单行://

ü **多行: ** /**/

注意:

ü 注释的内容是不会被浏览器解析,是一个解释说明的信息,只是提供给程序员看

ü 多行注释不能嵌套使用

标识符和关键字(保留字)

在实际编写js的过程中,需要定义大量的变量和函数,来实现所需功能。其实这些变量和函数的名称就是标识符。

标识符的命名规则:(重点)

1)由数字、字母、下划线或$(美元符)组成;

2)不能以数字开头;并且区分大小写;

3)不能用关键字,保留字命名;

4)建议驼峰命名;

关键字:在js中已经有特殊意义的词;如:var typeof if for

保留字:将来可能会成为关键字的。如name;

关于关键字和保留字,可以参考http://www.runoob.com/js/js-reserved.html

小驼峰:从第二个单词开始,每个单词首字母大写 如: myAge

大驼峰: 每一个单词的首字符都大写;如:MyAge

最佳实践:标识符(如变量、函数)命名采用小驼峰式命名方法

2.变量和值

(1).变量概念(变量名和值)

先看代码:

**变量:**变量是一个可以存储单个可变信息的容器;

变量是由两个部分构成的:

ü 变量名:一般来说,等号左边的内容为变量名

ü 变量值:一般来说,等号右边的内容为变量值

(2).如何声明变量

关键字:声明变量的关键字是var

a. 单独声明

一次性声明一个变量,每一个变量需要使用一个var。

![img](file:Users/sairitsutakara/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image020.jpg)

b. 一次性声明多个

只需要一个var关键字,然后就可以声明多个变量。

c. 重复声明 (了解)

在js中,是允许重复声明变量的,不会出错。如下:

 

d. 遗漏声明 (了解)

在js中,允许遗漏声明,不会出错,如下:

(3).全局变量、局部变量

全局和局部是指变量的生效范围,在哪些地方能够起作用,能使用的。

全局和局部是以函数作为分界线的。

注意:javascript中没有常量

在js中,变量的值是可以改变的,也就是可以变化的。如下:

常量则是值某个标识符的值一旦确定,就不能改变。但是js中不支持。

最佳实践:

ü 总是使用var来声明一个变量

变量要先声明后使用

3、三种输出方式:

**1、 ** **alert(); ** 弹出框

 

**2、 ** **console.log(); ** 在控制台输出;

 

**3、 ** **document.write(); ** 在页面输出;

**区别 ** **:**document.write()识别标签,其他两种不识别

4.简单的dom操作

什么是dom操作?

u DOM是一个使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式的平台和语言中立的接口

u 在HTML和JavaScript的学习中,DOM操作可谓时重中之重

Dom树

 

DOM节点的分类:

u DOM节点分为三大类:元素(标签)节点、属性节点、文本节点;

节点之间的关系:

u 由DOM树我们可以看到,文本节点、属性节点属于元素节点的子节点

u 在操作元素节点和文本节点前,一定要先获取到元素节点

查找dom节点:

通过ID名查找dom元素

**语法 ** **:**document.getElementById(“id名”)

功能:找页面中对应id名的元素;

返回值:dom元素

返回值类型:object;

说明:getELementById()前面必须的document对象(即文档对象)

​ 如果页面中没有这个id元素,返回null;

 

通过标签名找元素

语法1:document.getElementsByTagName(“标签名”)

功能:获取页面中所有指定标签;

返回值:返回一个类数组(即一个集合);换句话说,就是将页面中所有的指定标签放在一个方括号的集合里面

获取具体的某个元素;

 

元素内容

获取元素的内容

语法:元素.innerHTML;

说明:获取到的内容都是string 类型;

修改设置元素的内容

语法:元素.innerHTML = ‘内容’

说明:会覆盖;

元素的行内样式

获取元素的行内样式 style

语法:元素.style.css属性;

注意:复合属性需要转驼峰;

设置元素的行内样式

语法:元素.style.css属性 = 属性值;

补充

元素的html属性;

获取元素的html属性

语法:元素.html属性

Eg: 元素.id 元素.src 元素.alt 元素.value 等;

设置修改元素的html属性

语法:元素.属性 = 属性值;

初始

 

修改后

 

小结:

\1. js中严格区分大小写

\2. js中每一条语句以分号结尾。(可以省略,但不建议)

\3. js中注释分为 单行 // 多行/**/

\4. 标识符的命名规则(重点)

\5. 变量:可以存储单个可变信息的容器

\6. Var是声明变量的关键字(重点)

\7. 变量的赋值

\8. 通过id名查找dom元素(重点)

\9. 通过标签吗查找dom元素(重点)

\10. 通过innerHTML属性获取或设置元素的内容(重点)

\11. 通过style属性获取或设置元素的行内样式(重点)

\12. 获取设置元素的html标准属性(重点)

\13. 通过className属性获取或设置元素的类名(重点)

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

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

相关文章

UG鼠标和键盘操作

UG鼠标和键盘操作角色操作鼠标操作选择放大/缩小旋转平移确认适合窗口正视于X/Y/Z视图显示样式九宫图设置键盘操作ESCF8角色操作 角色包含了用户的自定义配置,包括内容、演示、快捷键、工具栏等,通过:菜单-首选项-用户界面-角色 进行导入导出…

【C语言程序设计】实验 8

目录 1. 整数排序 2. 二维数组按每行数据之和升序 3. 字符串排序 4. 二维数组各行元素之和 5. 二位整数数组交换两行 6. 插入排序 7. 10进制转2进制&#xff0c;8进制和16进制数&#xff08;数组&#xff09; 1. 整数排序 【问题描述】从键盘输入n(0<n<21)个整…

微服务同时接入多个Kafka

准备工作 自己搭建一个Kafka 从官方下载Kafka&#xff0c;选择对应Spring Boot 的版本&#xff0c;好在Kafka支持的版本范围比较广&#xff0c;当前最新版本是3.2.1,支持2.12-3.2.1 范围的版本&#xff0c;覆盖了Spring Boot 2.0x-Spring Boot 3.0.x。Apache Kafka 解压安装 …

CMake中target_compile_definitions的使用

CMake中的target_compile_definitions命令用于向target添加编译定义&#xff0c;其格式如下&#xff1a; target_compile_definitions(<target><INTERFACE|PUBLIC|PRIVATE> [items1...][<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) 指定在编译给定的<…

网络原理初识

网络原理初识 文章目录网络原理初识网络发展历程独立模式网络互联IP地址端口号网络协议OSI七层TCP/ IP协议封装与分用封装一.应用层二.传输层三.网络层四.数据链路层五.物理层分用六.物理层七.数据链路层八.网络层九.传输层十.应用层网络发展历程 独立模式 一开始电脑之间是相…

【InnoDB ClusterSet】快速部署

快速部署 InnoDB ClusterSet 文章目录快速部署 InnoDB ClusterSet前言前期准备架构设计部署过程1. 使用配置账号通过 MySQL Shell 连接到 InnoDB Cluster 任一成员2. 为主 InnoDB Cluster 实例设置变量3. 创建以当前集群作为主集群的 ClusterSet4. 为每个独立服务器实例添加配置…

382. 链表随机节点-哈希表法

382. 链表随机节点-哈希表法 给你一个单链表&#xff0c;随机选择链表的一个节点&#xff0c;并返回相应的节点值。每个节点 被选中的概率一样 。 实现 Solution 类&#xff1a; Solution(ListNode head) 使用整数数组初始化对象。 int getRandom() 从链表中随机选择一个节点…

Vue Element动态生成的表单如何用 el-form 校验

<el-form :model"dynamicValidateForm" ref"dynamicValidateForm" label-width"100px" class"demo-dynamic"><el-form-item prop"email" label"邮箱" :rules"[{ required: true, message: 请输入…

研究良久,终于发现了他代码写的快且bug少的原因

前言 读者诸君&#xff0c;今日我们适当放松一下&#xff0c;不钻研枯燥的知识和源码&#xff0c;分享一套高效的摸鱼绝活。 我有一位程序员朋友&#xff0c;当时在一个团队中开发Android应用&#xff0c;历经多次考核后发现&#xff1a; 在组内以及与iOS团队的对比中: 他的任…

java项目请求url存在特殊字符 400错误

java项目请求url特殊字符 400错误 1 现象 请求路径带特殊字符&#xff0c;就会400错误&#xff0c;这就泄露了服务器版本和报错信息&#xff0c;无疑是敏感信息泄露&#xff0c;实属安全漏洞。 补充项目环境&#xff1a;springmvc、tomcat 8.5.59 2 原因 经排查和报错信息…

STM32--ADC模数转换器

学习江科大自化协stm32教程记录的笔记 ADC模数转换器 ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁 DAC是数字-模拟转换器&#xff0c;但是P…

AI 助你轻松剪视频 # AutoCut

如果你还在犯愁每次剪视频都要反复听才能下手&#xff0c;不妨试试AutoCut , AI 大神李沐开源的一个剪辑神器&#xff0c;使用 Python 开发&#xff0c;它可以通过字幕来剪切视频。AutoCut 对你的视频自动生成字幕。然后你选择需要保留的句子&#xff0c;AutoCut 将对你视频中对…

C语言:变量的深入理解

文章目录一.什么是变量C语言中为什么要有类型&#xff1f;C语言中的类型为什么有这么多种呢&#xff1f;定义变量的本质为什么需要定义变量定义变量的本质定义变量时的规则二.深刻理解signed/unsigned定义的变量1.运算时的符号位2.数据的存储情况3.unsigned定义时的小细节三.大…

Android 13 VTS HIDL interface 解析

Android 13 VTS Introduction Android 13已经发布&#xff0c;VTS testcase发生很多变化&#xff0c;在此博客中对其每个测试项目进行流程介绍。 这里先对VTS 做一个介绍&#xff1a; VTS是vendor test suite简称&#xff0c;意为供应商测试套件。目的是确保Vendor层实现的兼容…

Spring Boot自动装配原理

Spring Boot自动装配原理1.Spring Boot 入口2.SpringBootApplicationSpringBootConfigurationComponentScanEnableAutoConfiguration判断自动装配开关是否打开获取EnableAutoConfiguration注解中的 exclude 和 excludeName获取需要自动装配的所有配置类最后3.总结1.Spring Boot…

Github访问量过百万!阿里内部至尊级分布式事务手册,实至名归

分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说&#xff0c;就是一次大的操作由不同的小操作组成&#xff0c;这些小的操作分布在不同的服务器上&#xff0c;且属于不同的应用&#xff0c;分布式…

[附源码]JAVA毕业设计养生药膳推荐系统(系统+LW)

[附源码]JAVA毕业设计养生药膳推荐系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

[LeetCode周赛复盘] 第 323 场周赛20221211

[LeetCode周赛复盘] 第 323 场周赛20221211 一、本周周赛总结二、 [Easy] 6257. 删除每行中的最大值1. 题目描述2. 思路分析3. 代码实现三、[Medium] 6258. 数组中最长的方波1. 题目描述2. 思路分析3. 代码实现四、[Medium] 6259. 设计内存分配器1. 题目描述2. 思路分析3. 代码…

web前端期末大作业【足球网页】学生网页设计作业源码

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

基于C++实现(控制台)单位职工管理系统(数据结构)【100010017】

1需求分析 1.1 问题描述 对单位的职工进行管理&#xff0c; 包括插入、 删除、 查找、 排序等功能。 1.2 问题要求 职工对象数不必很多&#xff0c; 便于一次读入内存&#xff0c; 所有操作不经过内外存交换。 &#xff08;1&#xff09; 由键盘输 入职工对象&#xff0c;…