Js基础

news2024/9/25 14:28:59
JS编写位置
将代码编写在html网页script标签
<script>
    // 弹出
    alert("test")
    // 控制台输出日志
    console.log("hello world")
    // 向网页输入内容,即往body中写内容
    document.write("write content")

</script>
将代码编写在外部的js文件中
<!-- js 文件路径 -->
<script src="./js/index.js"> </script>

如果script通过src引入了js文件,就不能在标签内部再编写js代码,如果有需求在下方新写一个script标签,在标签内部编写代码

将代码编写到指定属性中
<!-- 点击按钮的时候 触发js alert效果-->
<button onclick="alert('弹出')"></button>

<!-- 点击超链接的时候触发js效果 -->
<a href="javascript:alert('pop');"></a>
基本语法

单行注释

// 注释

多行注释

/*
	多行注释
*/

代码规范

JS严格区分大小写

JS中多个换行、空格会被忽略

JS中每条语句都应该以;分号结尾

JS中有自动添加分号的机制,如果不写分号,解释器会自动添加

字面量和变量

字面量就是一个值(例如1、true、"a"等具体的值),所代表的含义就是他的字面意思,在js中所有的字面量都可以直接使用

变量用来存储字面量,变量中存储的字面量可以随意修改,js使用let声明变量

声明变量
使用let关键字声明变量
// 声明变量,后续赋值
let x 
x = 100
// 声明变量直接复制
let y = 100
// 声明多个变量
let a,b,c
使用var关键字声明变量
var a
a = 1

var b = 10

var e,d,g
let 和var的区别

let

块级作用域:使用let声明的变量具有块级作用域,即变量只在其所在的代码块(如if语句块、for循环块、while循环块等)内可见

let不存在变量提升。如果在声明之前访问let声明的变量,会抛出ReferenceError错误

在同一个块级作用域内,不能重复声明同一个变量,否则会抛出SyntaxError错误

var

函数作用域:使用var声明的变量具有函数作用域。这意味着在函数内部声明的变量在整个函数内都是可见的,并且在函数外部不可访问(除非通过一些特殊情况,如将函数内部的变量赋值给全局对象)

使用var声明的变量存在变量提升。这意味着变量可以在声明之前被访问,只不过在声明之前其值为undefined

在同一个作用域内,可以多次使用var声明同一个变量,后面的声明会覆盖前面的声明

为了避免变量提升带来的混乱,最好的做法是在使用变量之前先声明它们,并且遵循良好的代码规范,将所有的变量声明放在函数或代码块的顶部,建议使用 let,以避免由于变量提升而产生的意外行为

变量的内存结构

变量中不存储任何值,而是存储值的内存地址,通过内存地址找到对应的值

如果字面量已经存在于内存当中,声明多个同样的变量不会在内存创建多个值,如果有值,则直接使用,没有再进行创建

image-20240924170916047

常量

使用const声明常量,常量只能赋值一次,后续不能修改

常量声明之后,常量对应的内存地址,被锁死

除了常规的常量外,一些对象类型的数据,如果不希望被修改,也会声明为常量

const TEST = 10
标识符

所有可以由我们自主命名的内容,都可以认为是一个标识符,比如变量名、函数名、类名

使用标识符的命名规范:

只能包含字母、数字、下划线、$,不能以数字开头

不能是js中的关键字和保留字,也不建议使用内置的函数或者类名作为变量名

命名规范使用驼峰命名法

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

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

相关文章

原腾讯云AI产品线项目经理李珊受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 原腾讯云AI产品线项目经理、资深项目管理专家李珊女士受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾&#xff0c;演讲议题为&#xff1a;AI助力项目经理的决策支持系统。大会将于10月26-27日在北京举办…

生态布局再进一步!拓数派 PieCloudDB Database 与 openEuler 完成兼容互认证

随着信息技术的快速发展&#xff0c;国产化自主创新已成为国家战略的核心部分。拓数派自主研发的云原生虚拟数仓 PieCloudDB 与国产操作系统 openEuler 已完成相互兼容性测试&#xff0c;并获得 openEuler 技术测评证书。 目前&#xff0c;拓数派已成功与华为鲲鹏、麒麟软件、龙…

基于Java+Mysql实现的PC端图书管理系统软件

Library_system 图书管理系统。用Java实现的PC端软件。使用MySql作为DBMS操作本地数据库&#xff0c;用JDBC连接Java和数据库。实现图书管理系统的基本功能 项目介绍 该项目主要实现了图书管理系统几个主要的基本功能&#xff0c;做这小项目是为了简单学习数据库设计、包括E…

系统架构师-面向服务架构(SOA)全解

1、为什么需要SOA架构 1.1 系统集成问题 异构系统整合 例如&#xff0c;一个企业可能同时拥有用 Java 开发的企业资源规划&#xff08;ERP&#xff09;系统、用 C# 开发的客户关系管理&#xff08;CRM&#xff09;系统以及用 Python 开发的数据分析系统。通过 SOA&#xff0…

9月24日笔记

内网信息收集 本机基础信息收集 当通过web渗透或者其他方式活动服务器主机权限之后&#xff0c;需要以该主机作为跳板&#xff0c;对内网环境进行渗透&#xff0c;对于攻陷的第一台主机&#xff0c;其在内网中所处的网络位置、当前登录的用户、该用户有什么样的权限、其操作系…

微信小程序开发第八课

一 公告 1.1 微信小程序端 #js###const api require("../../config/settings.js") Page({data: {noticeList: [{title: 公告标题1,create_time: 2024-04-25,content: 公告内容描述1&#xff0c;公告内容描述1&#xff0c;公告内容描述1。, // 可以根据实际情况添加…

几个将ppt文件压缩变小的方法!

几个将ppt文件压缩变小的方法&#xff01;在构建集文字、图像、视频及数据表于一体的综合PPT演示文稿时&#xff0c;一个常见挑战是随着内容的不断丰富&#xff0c;文件体积也随之膨胀&#xff0c;这往往源于直接嵌入未经优化的多媒体资源及设计上的冗余元素&#xff0c;如繁复…

数字人实战第五天——Dinet 训练自己的数字人

一、简介 DINet 是一个形变修复网络&#xff0c;专门用于解决高分辨率人脸视觉配音中的难题。它的设计目的是为了提升视觉配音的保真度和细节丰富性&#xff0c;特别是在少样本学习的情境下&#xff0c;即在训练数据较少的情况下依然能够实现较好的配音效果。 DINet的技术实现…

html TAB切换按钮变色、自动生成table

<!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 1px solid #ccc; padding: 1px; marg…

【专题总结】【一文解决】多继承下的构造函数执行顺序

多继承下的构造函数执行顺序 派生类构造函数执行顺序如下 ①调用基类构造函数→调用顺序按它们被继承时【从左至右】被说明的次序 ②调用子对象的构造函数→调用顺序按它们在【类中说明次序】 ③调用派生类的构造函数 【典型题1】13浙工大卷二读程序4题 【分析】下面①classC:p…

Mybatis Mapper 代理开发

文章目录 1, 实体类2、将Mapper接口写好3、UserMapper.xml 配置文件4、mybatis-config.xml 配置文件5、编写代码 Mybatis Mapper 代理开发 总的来说&#xff0c;有这几点&#xff1a; 定义域SQL映射文件同名的Mapper接口&#xff0c;并且将Mapper接口和SQL映射文件位置在同一目…

OpenCV图像分割(2)分水岭算法图像分割函数watershed()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 使用分水岭算法执行基于标记的图像分割。 该函数实现了分水岭算法的一种变体&#xff0c;即无参数基于标记的分割算法&#xff0c;在文献 [186]…

GPG(GNU Privacy Guard)简介

GPG&#xff08;GNU Privacy Guard&#xff09;简介 加密基础 对称加密 对称加密是一种加密方式&#xff0c;其中加密和解密使用相同的密钥。常见的对称加密算法包括AES和DES。这种方法的优点是速度快&#xff0c;但缺点是密钥分发和管理比较困难&#xff0c;一旦密钥泄露&a…

网络安全-jsp绕过

一、思路(这里给出jsp的WebShell样本) 1.1 加载字节码getshell <% page import"com.sun.org.apache.bcel.internal.util.ClassLoader" %> <html> <body> <h2>BCEL字节码的JSP Webshell</h2> <%String bcelCode "$$BCEL$$$l…

零基础转行学网络安全怎么样?能找到什么样的工作?

网络安全对于现代社会来说变得越来越重要&#xff0c;但是很多人对于网络安全的知识却知之甚少。那么&#xff0c;零基础小白可以学网络安全吗&#xff1f;答案是肯定的。 零基础转行学习网络安全是完全可行的&#xff0c;但需要明确的是&#xff0c;网络安全是一个既广泛又深入…

常用的10款加密软件排行榜(2024年办公文件加密干货收藏)

随着数据泄露事件的增加和隐私安全意识的提升&#xff0c;文件加密已经成为企业和个人保护敏感信息的必备手段。无论是防止外部攻击&#xff0c;还是内部数据泄露&#xff0c;文件加密工具都是重要的防护措施。以下是2024年最常用的10款办公文件加密软件&#xff0c;帮助你在工…

全新热门电商API接口,实现闲鱼商品详细搜索功能

近年来&#xff0c;电商行业蓬勃发展&#xff0c;API&#xff08;Application Programming Interface&#xff09;接口已经成为电商平台的重要组成部分。API接口不仅可以实现平台间的数据交互&#xff0c;还可以为开发者提供丰富的功能&#xff0c;满足用户多样化的需求。在这个…

吴师兄:非科班程序员,创作出Github标星75.3K的宝藏项目,一周爆火……

这是《开发者说》的第18期&#xff0c;今天我们采访的是在Github上传LeetCode动画题解&#xff0c;获得75.3K标星宝藏项目的程序员吴师兄。 吴师兄从985大学毕业&#xff0c;从通信工程外包零基础转码程序员&#xff0c;逐渐进入一些中厂和大厂&#xff0c;工资也从三四千起步…

靶向捕获探针设计软件包

&#x1f3c6;本文收录于《全栈Bug调优(实战版)》专栏&#xff0c;主要记录项目实战过程中所遇到的Bug或前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&…

什么是容性负载箱?

容性负载箱是用于模拟电网中感性负载的装置&#xff0c;通常由电容器、电抗器等元件组成。在电力系统中&#xff0c;负载箱被广泛应用于测试和评估各种电气设备的性能&#xff0c;如变压器、发电机、开关设备等。容性负载箱的主要作用是模拟实际负载对电网的影响&#xff0c;以…